puedes probar las request con la siguiente [coleccion](./src/db/postman-collections/todo-list API.postman_collection.json)
Este es el repositorio del backend de la aplicación todo-list. El backend está construido con Express.js y utiliza una base de datos PostgreSQL.
- Express.js
- PostgreSQL
- TypeScript
- express-validator
La estructura del proyecto se ve así:
.
├── .env.example
├── .eslintrc.cjs
├── .gitignore
├── .prettierrc
├── package-lock.json
├── package.json
├── server.ts
├── src
│ ├── controllers
│ │ └── task.controller.ts
│ ├── db
│ │ ├── DDL.sql
│ │ └── db-connection.ts
│ ├── middlewares
│ │ ├── check-task-exists.ts
│ │ └── valida-checks.ts
│ ├── model
│ │ └── types.ts
│ └── routes
│ └── task.routes.ts
└── tsconfig.json
Antes de ejecutar el proyecto, debes crear un archivo .env
, hay un archivo env.example
que puedes usar para probar el proyecto. Debes tener configuradas las siguientes variables de entorno (remplazar con las tuyas):
DB_USER="postgres"
DB_PASSWORD="postgres"
DB_HOST="localhost"
DB_PORT=5433
DB_NAME="db_todo_list_app_darapti"
Puedes levantar una instancia de PostgreSQL con Docker usando el siguiente comando:
docker run --name db-todo-list-app-darapti -e POSTGRES_PASSWORD=postgres -d -p 5433:5432 postgres
Este comando levanta un contenedor de PostgreSQL en el puerto 5433 y crea una base de datos llamada db_todo_list_app_darapti
.
ahora bien, necesitas crear la base de datos, para eso debemos poder correr queries dentro de la instancia de postgresql en el docker container, para eso nos apoyaremos de psql, para acceder a psql dentro de nuestra instancia docker corremos:
docker exec -it db-todo-list-app-darapti psql -U postgres -W
despues de ingresar la contraseña, deberemos crear la base de datos. podemos apoyarnos en el script sql que deje de referencia. de igual manera, debe tomar en cuenta que antes de crear las tablas debemos conectarnos a la base de datos
create database some_database;
# IMPORTANT
\c some_database;
# rest of the code creating and Updating tables ...
- Instala las dependencias del proyecto:
npm install
- Ejecuta el proyecto en modo desarrollo:
npm run dev
Esto iniciará el servidor de desarrollo y lo mantendrá en ejecución, reiniciándolo automáticamente cuando se realicen cambios en el código.
La API expone los siguientes endpoints:
GET /api/v1/task
: Obtiene todas las tareas.POST /api/v1/task
: Crea una nueva tarea.PUT /api/v1/task
: Actualiza las posiciones de múltiples tareas.GET /api/v1/task/:id
: Obtiene una tarea por su ID.PUT /api/v1/task/:id
: Actualiza una tarea por su ID.DELETE /api/v1/task/:id
: Elimina una tarea por su ID.