He creado un archivo generico, para poder hacer que se instalen y se generen todas las variables de entrono para poder correr el programa. Esto con el fin de poder ejecutar senciallamente el programa. La configuración correcta seria crear estos archivos manualmente para poder evitar cualquier tipo de incoveniente con las variables de entorno y DB
Note
Porfavor correr este comando una sola vez, de ser necesario volver a correr el servidor, correr npm run dev
npm run easy
Para ejecutar este programa es necesario instalar las dependencias primero
npm i
Ademas de eso, es necesario crear el archivo .env
, en donde se encuentran las variables de entorno.
touch .env
En el archivo .env
es necesario setear estas variables de entorno
MONGODB_CNN='<DB_NAME>'
JWT_SECRET='<SECRET_JWT_TOKEN>'
para ejecutar nuestra aplicacion podemos usar
npm run dev
o tambien:
npx nodemon ./src/server.js
Esta es la documentación de la API para un sistema de gestión de cursos y usuarios.
- URL:
/api/user
- Método:
GET
- Query Params:
page
- Número de página de resultados (opcional, debe ser número si se proporciona)limit
- Límite de resultados por página (opcional, debe ser número si se proporciona)role
- Filtro por rol de usuario (TEACHER
oSTUDENT
) (opcional)
- Requiere token de autenticación: No
- Permisos requeridos: Ninguno
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con arreglo de objetos de usuario
- URL:
/api/user/:id
- Método:
GET
- URL Params:
id
- ID de MongoDB del usuario (obligatorio)
- Requiere token de autenticación: No
- Permisos requeridos: Ninguno
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con objeto de usuario
- URL:
/api/user/:id
- Método:
PUT
- URL Params:
id
- ID de MongoDB del usuario (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con mensaje de confirmación
- URL:
/api/user/:id
- Método:
DELETE
- URL Params:
id
- ID de MongoDB del usuario (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con mensaje de confirmación
- URL:
/api/course
- Método:
GET
- Requiere token de autenticación: No
- Permisos requeridos: Ninguno
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con arreglo de objetos de curso
- URL:
/api/course/:id
- Método:
GET
- URL Params:
id
- ID de MongoDB del curso (obligatorio)
- Requiere token de autenticación: No
- Permisos requeridos: Ninguno
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con objeto de curso
- URL:
/api/course
- Método:
POST
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Body:
title
- Título del curso (obligatorio, mínimo 2 caracteres)description
- Descripción del curso (obligatorio, mínimo 2 caracteres )teacher
- ID de MongoDB del profesor (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 201
- Contenido: JSON con objeto de curso creado
- URL:
/api/course/:id
- Método:
PUT
- URL Params:
id
- ID de MongoDB del curso (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Body:
title
- Título del curso (opcional, mínimo 2 caracteres si se proporciona)description
- Descripción del curso (opcional, mínimo 2 caracteres si se proporciona)teacher
- ID de MongoDB del profesor (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con mensaje de confirmación
- URL:
/api/course/:id
- Método:
DELETE
- URL Params:
id
- ID de MongoDB del curso (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con mensaje de confirmación
- URL:
/api/enrollment
- Método:
GET
- Requiere token de autenticación: No
- Permisos requeridos: Ninguno
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con arreglo de objetos de inscripción
- URL:
/api/enrollment/:course
- Método:
POST
- URL Params:
course
- ID del curso de MongoDB (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Body:
student
- ID de MongoDB del estudiante (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
oSTUDENT
- Estudiante no debe estar ya inscrito en el curso
- Estudiante no debe tener 3 cursos ya inscritos
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 201
- Contenido: JSON con objeto de inscripción creado
- URL:
/api/enrollment/:course
- Método:
DELETE
- URL Params:
course
- ID del curso de MongoDB (obligatorio)
- Headers:
token
- Token JWT de autenticación (obligatorio)
- Body:
student
- ID de MongoDB del estudiante (obligatorio)
- Requiere token de autenticación: Sí
- Permisos requeridos:
- Usuario autenticado debe tener rol
TEACHER
oSTUDENT
- Usuario autenticado debe tener rol
- Respuesta exitosa:
- Código: 200
- Contenido: JSON con mensaje de confirmación
- URL:
/api/auth/login
- Método:
POST
- Body:
email
- Correo electrónico del usuario (obligatorio)password
- Contraseña del usuario (obligatorio)
- Requiere token de autenticación: No
- Respuesta exitosa:
- Código: 200
- Contenido:
user
: Objeto de usuariotoken
: Token JWT
- URL:
/api/auth/signup
- Método:
POST
- Body:
name
- Nombre de usuario (obligatorio, mínimo 3 caracteres)email
- Correo electrónico (obligatorio)password
- Contraseña (obligatorio, mínimo 3 caracteres)role
- Rol de usuario (TEACHER
oSTUDENT
)
- Requiere token de autenticación: No
- Respuesta exitosa:
- Código: 201
- Contenido: Mensaje de confirmación