API dummy en TypeScript/Express para el proyecto integrador “TaskFlow”. Proporciona endpoints CRUD mínimos para usuarios, tareas, metas y calendario, con respuestas de prueba (dummy). La documentación interactiva está disponible con Swagger.
- Node.js 18+ (recomendado)
- npm 9+ o yarn
- Variables de entorno (.env)
-
Clonar el repositorio
git clone <URL_DE_TU_REPO>
cd TaskFlow_Backend -
Crear archivo de entorno
cp .env.example .env
Edita .env si quieres cambiar el puerto. -
Instalar dependencias
npm install
-
Desarrollo (TS sin compilar)
npm run dev
Se levanta en el puerto definido en .env (por defecto 3001). -
Producción (compilado a dist)
npm run build
npm start
- PORT: Puerto de escucha de la API (por defecto 3001)
Ejemplo .env:
PORT=3001
dist/ (build compilado)
node_modules/
src/
app/
controllers/
auth.ts
calendar.ts
goal.ts
task.ts
users.ts
interfaces/
user.ts
middelwares/ (nota: nombre de carpeta actual)
auth.ts
models/
auth.ts
calendar.ts
goal.ts
index.ts
task.ts
users.ts
routes/
auth.ts
calendar.ts
goal.ts
index.ts
task.ts
users.ts
index.ts (punto de entrada de la app)
.gitignore
package.json
package-lock.json
swagger.config.ts
tsconfig.json
- Base URL local: http://localhost:PORT
- Health (simple): GET / → "api works"
- Swagger UI: GET /swagger
- Middleware: src/app/middelwares/auth.ts
- Autorización requerida en la mayoría de rutas (incluida /auth actualmente).
- Proveer token en query string: ?token=12345
Ejemplo: GET /users?token=12345
Nota: Respuestas dummy (no hay persistencia). Todas las rutas requieren ?token=12345 (incluyendo /auth).
POST /auth/login?token=12345
Body: { email, password } (cualquier payload)
Respuesta: { token: "jasfhj1234hk989778" }
POST /auth/signup?token=12345
Body: { name, email, password }
Respuesta: 200 OK sin cuerpo
GET /user?token=12345
Respuesta: { data: [] }
GET /tasks?token=12345
POST /tasks?token=12345
PUT /tasks/:id?token=12345
DELETE /tasks/:id?token=12345
GET /goals?token=12345
POST /goals?token=12345
PUT /goals/:id?token=12345
DELETE /goals/:id?token=12345
POST /calendar/sync?token=12345
GET /calendar/events?token=12345
-
Login (dummy)
curl -X POST "http://localhost:3001/auth/login?token=12345" -H "Content-Type: application/json" -d '{"email":"test@example.com","password":"secret"}' -
Listar tareas (dummy)
curl "http://localhost:3001/tasks?token=12345"
- UI: http://localhost:3001/swagger
- Generación: swagger-jsdoc usando swagger.config.ts
- Los endpoints son interactivos desde Swagger UI.
- npm run dev → Desarrollo (ts-node/nodemon)
- npm run build → Compilar a dist
- npm start → Ejecutar dist/index.js
- Node.js + Express (TypeScript)
- Swagger (swagger-jsdoc + swagger-ui-express)
- dotenv para variables de entorno