-
git cloneeste repo -
Instalar uv para windowns
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"o usarcurl -LsSf https://astral.sh/uv/install.sh | shen linux y macOS -
Una vez instalado
uvdesde la raiz del proyecto hacemosuv syncpara instalar las dependencias de nuestro programa.
Para el siguiente paso necesita tener una conexion a postgres local, con usuario:todo_user pass:todo_pass y haber creado una nueva tabla llamada todo_db:
-
Desde la
/backendcambiar dentro dealembic.inila lineasqlalchemy.url = postgresql://todo_user:todo_pass@db:5432/todo_dbporsqlalchemy.url = postgresql://todo_user:todo_pass@localhost:5432/todo_dbejecutar las migraciones con alembic usaralembic upgrade head -
Terminado de instalar hacemos
uv run uvicorn backend.api.app::app --workers 4Desde la raiz del proyecto. -
Usar algun cliente de Api como
Postman,Thunder Client, o ir ahttp://127.0.0.1:8000/docs#/desde el navegador.
-
git cloneeste repo -
Tener Docker Instalado en caso de Windown
Docker Desktopen caso de Linux/MacOS el Daemon deDockerd -
Desde la raiz en Linux/MacOS hacer
docker compose up --buildo en Windown Iniciar Docker Desktop.
- Registro y Usuarios
#Registrarse
curl -X POST "http://localhost:8000/auth/register" \
-H "Content-Type: application/json" \
-d '{
"username": "tu_usuario",
"password": "tu_contraseña"
}'
# Iniciar sesión y obtener token
curl -X POST "http://localhost:8000/auth/login" \
-H "Content-Type: application/json" \
-d '{
"username": "tu_usuario",
"password": "tu_contraseña"
}'
#Esto te devuelve un Token y un user IDSe debe guardar el Token en una variable de entorno o en algun lugar export TOKEN="tu_token_jwt_aqui"
2. CRUD de tasks
curl -X POST "http://localhost:8000/tasks" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"titulo": "Mi primera tarea",
"descripcion": "Esta es una descripción opcional"
}'Obtener tareas con su paginacion
NOTESE QUE LAS TAREAS VIENEN CON SU UUID y como tal este es el parametro que se necesita enviar en el [PUT,DELETE] y tasks/uuid.
# Listar primeras 5 tareas
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/tasks?limit=5&offset=0"
# Listar siguientes 5 tareas
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/tasks?limit=5&offset=5"Obtener tarea especifica
curl -H "Authorization: Bearer $TOKEN" \
"http://localhost:8000/tasks/123e4567-e89b-12d3-a456-426614174000"Actualizar Tarea
curl -X PUT "http://localhost:8000/tasks/123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"titulo": "Título actualizado",
"estado": "completada"
}'Eliminar Tarea
curl -X DELETE "http://localhost:8000/tasks/123e4567-e89b-12d3-a456-426614174000" \
-H "Authorization: Bearer $TOKEN"- Se crearon actions para probar la BD de postgres y Nuestra app , ademas se ejecutan los test automaticos cada vez que se hace un pull y se migra automaticamente
- Para Saber sobre los Test referirse a la Documentacion
- Para Saber mas sobre como se abordo las problematicas referirse a la Documentacion
- Para saber mas sobre como se implemento el CI/CD referirse a la Documentacion