Skip to content

Commit b93d3dd

Browse files
authored
docs: Revise README formatting and content for clarity
1 parent 86c0da4 commit b93d3dd

1 file changed

Lines changed: 64 additions & 20 deletions

File tree

README.md

Lines changed: 64 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
## 📧 Fullstack Project: Authentication & Email Verification <br/> <br/> <p align="right">[![SecOps: CodeQL Analysis](https://img.shields.io/badge/Analysis-CodeQL--SecOps-F5F5F5?style=for-the-badge&logo=postgresql&logoColor=black&labelColor=A9A9A9)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p> <p align="right">[![Real-World Integration Tests](https://img.shields.io/badge/Tests-Real--World%20Integration-FFD700?style=for-the-badge&logo=postgresql&logoColor=FFD700&labelColor=010B13)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p> <p align="right">[![Continuous Integration (CI/CD) Tests](https://img.shields.io/badge/Tests-CI--Continuous%20Integration-FFFFFF?style=for-the-badge&logo=postgresql&logoColor=003366&labelColor=FFFDD0)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p>
1+
## <p align="center">📧 Fullstack Project: Authentication & Email Verification </p> <br/> <p align="center">[![SecOps: CodeQL Analysis](https://img.shields.io/badge/Analysis-CodeQL--SecOps-F5F5F5?style=for-the-badge&logo=postgresql&logoColor=black&labelColor=A9A9A9)](https://github.com/Clic-stack/Auth-Mailer-API/actions)[![SecOps: DAST Dynamic Scan](https://img.shields.io/badge/Scan-DAST%20Dynamic--SecOps-003366?style=for-the-badge&logo=postgresql&logoColor=FFFFFF&labelColor=000033)](https://github.com/Clic-stack/Auth-Mailer-API/actions) [![Real-World Integration Tests](https://img.shields.io/badge/Tests-Real--World%20Integration-FFD700?style=for-the-badge&logo=postgresql&logoColor=FFD700&labelColor=010B13)](https://github.com/Clic-stack/Auth-Mailer-API/actions) [![API Contract: Postman Validation](https://img.shields.io/badge/Validation-API%20Contract--Postman-50C878?style=for-the-badge&logo=postgresql&logoColor=E5E5E5&labelColor=006400)](https://github.com/Clic-stack/Auth-Mailer-API/actions)[![Continuous Integration (CI/CD) Tests](https://img.shields.io/badge/Tests-CI--Continuous%20Integration-FFFFFF?style=for-the-badge&logo=postgresql&logoColor=003366&labelColor=FFFDD0)](https://github.com/Clic-stack/Auth-Mailer-API/actions)
2+
</p>
23

3-
4-
> [!TIP]
5-
> Quick Setup Note: This project includes enviroment variables and configures instructions into .env.example file for development and testing environments, (remember all enviroment values is with your credentials). This facilitates rapid deployment and ensures the test suite runs out-of-the-box without extra security overhead.
4+
> [!TIP] <p align="justify">
5+
> Quick Setup Note: This project includes environment variables and configures instructions into .env.example file for development and testing environments, (remember all environment values must be filled with your credentials). This ensures a seamless local setup and allows the test suite to run out-of-the-box without extra security overhead.
66
[![Auth Mailer API CI/CD](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml)
77
[![SecOps: CodeQL Analysis](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/codeql.yml/badge.svg?branch=main&event=push)](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/codeql.yml)
88
[![SecOps: DAST Dynamic Scan](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/dast.yml/badge.svg?branch=main&event=push)](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/dast.yml)
@@ -15,6 +15,7 @@ This project demonstrates secure user authentication, email verification workflo
1515
<img width="1861" height="991" alt="image" src="https://github.com/user-attachments/assets/6adfad9f-3bb0-4740-a4a4-8cefd49dfcc6" />
1616

1717
---
18+
</p>
1819

1920
## 📊 Database Architecture
2021

@@ -59,24 +60,30 @@ erDiagram
5960

6061
---
6162

62-
##🟢 Technical Quality Assurance (QA & SecOps)
63+
## 🟢 Technical Quality Assurance (QA & SecOps)
6364

64-
**What do the badges at the beginning of this project mean?**
65+
<p align="justify"> **What do the badges at the top of this project signify?**
6566
To ensure **Auth Mailer API** meets banking-grade standards, I have implemented 4 automated workflows (Pipelines) that run on every code change:
6667

6768
1. **Continuous Integration (CI - Jest):** Runs functional tests to ensure registration, login, and email delivery work perfectly.
6869
2. **Static Security (SAST - CodeQL):** A professional-grade scanner that looks for hidden vulnerabilities in the code (such as potential data theft or SQL injections).
6970
3. **Dynamic Security (DAST - OWASP ZAP):** A "simulated attack" on the live server to verify there are no open backdoors.
7071
4. **Contract Validation (Postman/Newman):** Verifies that the communication between the server and the app is always accurate and error-free.
72+
</p>
7173

7274
- **Green Badge (Passing):** The code has passed all 4 layers of auditing and is 100% safe for use.
7375
- **Red Badge (Failing):** The system detected an error or risk and automatically blocked the update to protect users.
7476

7577
**Unit Testing:** Implemented with **Jest**.
78+
7679
**Security Audit:** Automated via **CodeQL**.
80+
7781
**Vulnerability Scanning:** Performed using **OWASP ZAP**.
82+
7883
**API Testing:** Validated with **Newman (Postman CLI)**.
84+
7985
**DoS Protection:** Implemented through **Rate Limiting**.
86+
8087
**Continuous Deployment:** Automated via **Render** webhooks.
8188

8289
---
@@ -146,6 +153,8 @@ npm test
146153
---
147154

148155
## 💻🚀 Tech Stack
156+
</br>
157+
<div align="center">
149158

150159
| Frontend | Backend | Deployment | Database | Security & Testing |
151160
|---------------|---------------|------------|----------------|--------------------|
@@ -155,10 +164,13 @@ npm test
155164
| Bootstrap | Morgan | | | OWASP ZAP (DAST) |
156165
| Bootswatch | CORS | | | Newman (Postman CLI) |
157166

158-
---
167+
</br>
168+
</div>
159169

160170
## 📁 API Endpoints
161-
171+
</br>
172+
<div align="center">
173+
162174
### Public Endpoints
163175
| Method | Endpoint | Function |
164176
|--------|-------------------------|---------|
@@ -182,9 +194,13 @@ npm test
182194
| POST | `/users/reset_password/:code` | Reset password with code |
183195

184196
---
197+
</br>
198+
</div>
185199

186200
## 🗂️ API Models
187-
201+
</br>
202+
<div align="center">
203+
188204
### User
189205
| Field | Description |
190206
|-------------|-------------|
@@ -205,6 +221,8 @@ npm test
205221
| user_id| Associated user |
206222

207223
---
224+
</br>
225+
</div>
208226

209227
## 🧪 Test Coverage
210228

@@ -417,13 +435,17 @@ npm run dev
417435

418436
## 🎨Author
419437
Developed as part of the Node.js & Backend module, with the goal of consolidating skills in authentication, email workflows, frontend–backend integration, cloud deployment, and professional documentation as part of a fullstack project.
438+
</br>
439+
</br>
420440

421441
🔽 **Versión en Español** 🔽
442+
</br>
443+
</br>
422444

423-
## 📧 Proyecto Fullstack: Autenticación y Verificación por Email <br/> <br/> <p align="right">[![Continuous Integration (CI/CD) Tests](https://img.shields.io/badge/Pipeline-Integración%20Continua%20(CI)-FFFFFF?style=for-the-badge&logo=postgresql&logoColor=003366&labelColor=FFFDD0)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p> <br/> <p align="right">[![Pruebas de Integración de Escenario Real](https://img.shields.io/badge/Pruebas-Integración%20de%20Escenario%20Real-FFD700?style=for-the-badge&logo=postgresql&logoColor=FFD700&labelColor=000000)](https://github.com/Clic-stack/Auth-Mailer-API/actions)</p>
424-
445+
## <p align="center">📧 Proyecto Fullstack: Autenticación y Verificación por Email</p> <br/> <p align="center">[![SecOps: Análisis CodeQL](https://img.shields.io/badge/Análisis-CodeQL--SecOps-F5F5F5?style=for-the-badge&logo=postgresql&logoColor=black&labelColor=A9A9A9)](https://github.com/Clic-stack/Auth-Mailer-API/actions)[![SecOps: Escaneo Dinámico DAST](https://img.shields.io/badge/Escaneo-DAST%20Dinámico--SecOps-003366?style=for-the-badge&logo=postgresql&logoColor=FFFFFF&labelColor=000033)](https://github.com/Clic-stack/Auth-Mailer-API/actions) [![Pruebas de Integración Reales](https://img.shields.io/badge/Pruebas-Integración%20Real-FFD700?style=for-the-badge&logo=postgresql&logoColor=FFD700&labelColor=010B13)](https://github.com/Clic-stack/Auth-Mailer-API/actions) [![Validación de Contrato API: Postman](https://img.shields.io/badge/Validación-Contrato%20API--Postman-50C878?style=for-the-badge&logo=postgresql&logoColor=E5E5E5&labelColor=006400)](https://github.com/Clic-stack/Auth-Mailer-API/actions)[![Pruebas de Integración Continua (CI/CD)](https://img.shields.io/badge/Pruebas-Integración%20Continua--CI-FFFFFF?style=for-the-badge&logo=postgresql&logoColor=003366&labelColor=FFFDD0)](https://github.com/Clic-stack/Auth-Mailer-API/actions)
446+
</p>
425447

426-
> [!TIP]
448+
> [!TIP] <p align="justify">
427449
> Nota para Configuración Rápida: Este proyecto incluye variables de entorno e instrucciones de configuración en el archivo `.env.example` para entornos de desarrollo y pruebas, (recuerda que todos los valores deben corresponder a tus propias credenciales). Esto facilita un despliegue rápido y garantiza que la suite de pruebas funcione de inmediato (out-of-the-box) sin configuraciones de seguridad adicionales.
428450
[![Auth Mailer API CI/CD](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/ci.yml)
429451
[![SecOps: CodeQL Analysis](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/codeql.yml/badge.svg?branch=main&event=push)](https://github.com/Clic-stack/Auth-Mailer-API/actions/workflows/codeql.yml)
@@ -436,6 +458,7 @@ Este proyecto implementa flujos seguros de autenticación de usuarios, verificac
436458
<img width="1861" height="991" alt="image" src="https://github.com/user-attachments/assets/6adfad9f-3bb0-4740-a4a4-8cefd49dfcc6" />
437459

438460
---
461+
</p>
439462

440463
## 🌐 Despliegue
441464

@@ -454,24 +477,31 @@ Este proyecto implementa flujos seguros de autenticación de usuarios, verificac
454477

455478
---
456479

457-
##🟢 Garantía de Calidad Técnica y Seguridad (QA & SecOps)
480+
## 🟢 Garantía de Calidad Técnica y Seguridad (QA & SecOps)
458481

459-
**¿Qué significan los distintivos (badges) al inicio de este proyecto?**
482+
<p align="justify"> **¿Qué significan los distintivos (badges) al inicio de este proyecto?**
460483
Para garantizar que **Auth Mailer API** cumpla con estándares de nivel bancario, he implementado 4 flujos de trabajo automatizados (Pipelines) que se ejecutan en cada cambio de código:
461484

462485
1. **Integración Continua (CI - Jest):** Ejecuta pruebas funcionales para asegurar que el registro, el login y el envío de correos funcionen perfectamente.
463486
2. **Seguridad Estática (SAST - CodeQL):** Un escáner de nivel profesional que busca vulnerabilidades ocultas en el código (como posibles robos de datos o inyecciones SQL).
464487
3. **Seguridad Dinámica (DAST - OWASP ZAP):** Un "ataque simulado" al servidor en vivo para verificar que no existan puertas traseras abiertas.
465488
4. **Validación de Contrato (Postman/Newman):** Verifica que la comunicación entre el servidor y la aplicación sea siempre exacta y sin errores de datos.
489+
490+
</p>
466491

467492
- **Distintivo Verde (Passing):** El código ha superado las 4 capas de auditoría y es 100% seguro para su uso.
468493
- **Distintivo Rojo (Failing):** El sistema detectó un error o riesgo y bloqueó la actualización automáticamente para proteger a los usuarios.
469494

470495
**Pruebas Unitarias:** Implementadas con Jest.
496+
471497
**Auditoría de Seguridad:** Automatizada con CodeQL.
498+
472499
**Escaneo de Vulnerabilidades:** Realizado con OWASP ZAP.
500+
473501
**Pruebas de API:** Validadas con Newman (Postman CLI).
502+
474503
**Protección DoS:** Implementada mediante Rate Limiting.
504+
475505
**Despliegue Continuo:** Automatizado mediante **webhooks de Render**.
476506

477507
---
@@ -537,22 +567,24 @@ Este proyecto fue diseñado para:
537567

538568
## 🛡️ Seguridad y Control de Calidad
539569

540-
Este proyecto sigue un enfoque SecOps mediante pipelines automatizados:
570+
<p align="justify"> Este proyecto sigue un enfoque SecOps mediante pipelines automatizados:
541571

542572
- **SAST (Pruebas de Seguridad de Aplicaciones Estáticas):** Análisis continuo del código mediante **CodeQL** para detectar vulnerabilidades (Inyección SQL, XSS, etc.).
543573
- **DAST (Pruebas de Seguridad de Aplicaciones Dinámicas):** Escaneo activo del servidor de producción en vivo utilizando **OWASP ZAP**.
544574
- **Pruebas de Contrato de API:** Validación automatizada de rutas mediante **Newman (Postman CLI)** para garantizar la integridad de las respuestas.
545575
- **Limitación de Tasa (Rate Limiting):** Middleware implementado para mitigar ataques **DoS** (Denegación de Servicio) y de **Fuerza Bruta**.
546576

547577
---
578+
</p>
548579

549580
## 🧪 Suite de Pruebas Profesionales (CI/CD)
550-
La confiabilidad de **Auth-Mailer-API** está respaldada por un flujo de trabajo de pruebas automatizadas. Utilizando **Jest y Supertest**, el proyecto implementa **9 pruebas estratégicas** que cubren:
581+
<p align="justify"> La confiabilidad de **Auth-Mailer-API** está respaldada por un flujo de trabajo de pruebas automatizadas. Utilizando **Jest y Supertest**, el proyecto implementa **9 pruebas estratégicas** que cubren:
551582

552583
- **Flujo de Autenticación:** Validación de inicio de sesión seguro, generación de tokens JWT y cifrado de contraseñas.
553584
- **Ciclo de Vida del Usuario:** Operaciones CRUD completas para la gestión de usuarios y actualizaciones de perfil.
554585
- **Lógica de Verificación:** Garantizar que los códigos de verificación se generen y procesen correctamente.
555586
- **Flujo Automatizado:** Cada `push` o `pull request` activa el pipeline de **GitHub Actions**, asegurando la estabilidad del código antes del despliegue.
587+
</p>
556588

557589
Para ejecutar las pruebas localmente:
558590
```bash
@@ -563,6 +595,8 @@ npm test
563595
---
564596

565597
## 💻🚀 Stack Tecnológico
598+
</br>
599+
<div align="center">
566600

567601
| Frontend | Backend | Despliegue | Base de Datos | Pruebas y Seguridad |
568602
|---------------|---------------|------------|----------------|--------------------|
@@ -573,9 +607,13 @@ npm test
573607
| Bootswatch | CORS | | | Newman (Postman CLI) |
574608

575609
---
610+
</br>
611+
</div>
576612

577613
## 📁 Endpoints de API
578-
614+
</br>
615+
<div align="center">
616+
579617
### Endpoints Públicos
580618
| Método | Endpoint | Función |
581619
|--------|-------------------------|---------|
@@ -599,10 +637,14 @@ npm test
599637
| POST | `/users/reset_password/:code` | Cambiar contraseña con el código |
600638

601639
---
640+
</br>
641+
</div>
602642

603643
## 🗂️ Modelos de la API
604-
605-
### Uusuario
644+
</br>
645+
<div align="center">
646+
647+
### Usuario
606648
| Campo | Descripción |
607649
|-------------|-------------|
608650
| id | Llave Primaria |
@@ -622,6 +664,8 @@ npm test
622664
| user_id| Usuario Asociado |
623665

624666
---
667+
</br>
668+
</div>
625669

626670
## 🧪 Cobertura de Test
627671

@@ -829,7 +873,7 @@ npm run dev
829873
## 🚀 Hoja de Ruta Futura (Data & MLOps)
830874

831875
- **Pipeline ETL:** Integración para el análisis de datos históricos de inicio de sesión con el fin de detectar patrones anómalos.
832-
- **Seguridad Predictiva:** Implementación de un modelo de **Machine Learning** para calificar los riesgos de intentos de inicio de sesión basados en geolocalización y frecuencia.
876+
- **Seguridad Predictiva:** Implementación de un modelo de **Machine Learning** o ** *scoring de riesgo* ** para inicios de sesión basado en geolocalización y frecuencia.
833877
- **Dockerización:** Contenedorización de todo el stack tecnológico para permitir un escalado orquestado.
834878

835879
--

0 commit comments

Comments
 (0)