- Session validation using JWT, cache, and control checks to determine whether a user is banned or flagged as suspicious.
- Design guidelines that allow the platform to be scalable and easily maintainable.
- Automatic email alerts sent to all users with the "BACKEND DEVELOPER" role when something unusual happens.
- Detailed logs during execution of each service.
- Each request is stored in a
requeststable in the database for metrics and tracing. This could be improved by integrating Kafka, Grafana, or Prometheus, but due to time constraints, I chose to insert the records directly.
- Validación de sesión mediante JWT, caché y verificaciones de control relacionadas con si un usuario fue baneado o marcado como sospechoso.
- Lineamientos de diseño que permiten que la plataforma sea escalable y fácilmente mantenible.
- Envío automático de alertas por correo electrónico a todos los usuarios con el rol "BACKEND DEVELOPER" cuando ocurre algo inusual.
- Registros detallados durante la ejecución de cada servicio.
- Cada petición se guarda en la tabla
requestsde la base de datos para métricas y trazas. Esto podría mejorarse integrando Kafka, Grafana o Prometheus, pero por cuestiones de tiempo decidí realizar la inserción directamente.
git clone https://github.com/apps-grupo-6/backend.git
cd backend2) Then, you need to create a .env file inside the /properties directory using the provided example.env as a base.
Note: This example.env file already includes the database configuration defined in the docker-compose.yml, but you still need to fill in the missing values related to emails and JWT.
- Using the PowerShell helper tool:
.\run.ps1- Using the Bash helper tool:
./run.sh- Using Docker in the traditional way:
docker compose up -d
docker logs -f --tail 20 backend git clone https://github.com/apps-grupo-6/backend.git
cd backendNota: este example.env ya tiene configurado la base de datos con lo que se define dentro del docker-compose.yml, pero falta lo relacionado con los mails y jwt.
3) Por último, utilizando la consola, deberá iniciar el proyecto mediante alguna de las siguientes opciones:
- Utilizando nuestra herramienta mediante PowerShell:
.\run.ps1- Utilizando nuestra herramienta mediante Bash:
./run.sh- Utilizando docker de la manera tradicional:
docker compose up -d
docker logs -f --tail 20 backend docker compose down -v Then, the project should be started again.
If any modifications were made, it is recommended to check that the .initdb folder contains only the two initial files.
View the database structure on GitHub
docker compose down -v Y luego iniciar el proyecto nuevamente. En caso de haber modificado algo, revisar si en la carpeta .initdb solo están los 2 archivos iniciales.