Este repositorio se encarga de contener el codigo de un API REST para la gestión de tareas.
Autenticación: Implementa un sistema básico de autenticación donde los usuarios puedan registrarse e iniciar sesión. Gestión de Tareas: donde se puede realizar:
- Crear una nueva tarea con un título, descripción. (Por defecto con estado Por hacer)
- Obtener todas las tareas.
- Obtener tareas filtradas por estado.
- Marcar una tarea como completada.
- Si se tiene instalado GIT en el computador se puede bajar el proyecto usando el siguiente comando
git clone https://github.com/chjuca/challenge.git
- Para la ejecucion del proyecto es necesario tener instalado
node.js
para comprobar si su computadora lo tiene instalado puede ejecutarnode -v
lo cual dara como salida la version que tiene instalada, si presenta un mensaje de error, puede instalarlo visitando el siguiente enlace https://nodejs.org/es/download/ - Se debe generar la base de datos para lo cual debemos tener instalado postgres en nuestro computador, y creamos una nueva base de datos, dentro del proyecto se encuentra un archivo llamado
init.sql
una vez dentro de la base de datos debemos ejecutarlo, esto nos permitira crear las tablas y registros de prueba. - Dentro del proyecto tammbien podemos encontrar el archivo
settings.ts
en donde declararemos las variables de entorno
export const config = {
SECRET_KEY: 'challenge', << puede ser cualqueir palabra nos servira para el jwt
POSTGRES_DB: "challenge-back", << nombre de la base de datos creada en los pasos anteriores
POSTGRES_USER: "postgres", << ususario de la base de datos
POSTGRES_PASS: "postgres", << contraseña de la abse de datos
POSTGRES_HOST: "localhost", << mantenerlo igual en pruebas locales
}
- Una vez instalado, de procede a reconstruir el archivo
./node_modules
de la siguiente manera: - En la carpeta raiz del proyecto ejecutamos el comandonpm install
- Cuando tengamos la carpeta./node_modules
regresamos a la carpeta raiz usando el comandocd ..
- Levantamos el proyecto de forma local ejecutando el comando
npm run start
- Se depe presentar en consola un mensaje con la URI donde levantamos el proyecto `http://localhost:5000/´
A continucion detallo el uso correcto de los endpoints, en cada endpoint te dejare un ejemplo del body de la consuta en caso se necesite
Permite obtener un token para la realizacion de las otra consultas (necesita body) POST: http://localhost:5000/api/login
{
"email":"ejemplo@email.com",
"password":"contraseña123"
}
Permite crear un nuevo usuario (necesita body) ** POST**: http://localhost:5000/api/users
{
"email":"ejemplo3@email.com",
"password":"contraseña1263"
}
Permite crear una nueva tarea (user_id) (necesita body) POST: http://localhost:5000/api/tasks/<user_id>
{
"title":"Nueva Tarea",
"description":"Description nueva tarea"
"user_id":"2"
}
Permite obtener todas las tareas guardadas en la base de datos GET: http://localhost:5000/api/tasks/state
Permite obtener las tareas guardadas en base filtradas por el estado (necesita body)
{
"state": 'to_do' | 'in_progress' | 'completed'
}
Permite cambiar el estado de una tarea PUT: http://localhost:5000/api/tasks/<task_id>
{
"state":"to_do"
}