Loading repository data…
Loading repository data…
Organization-DevXP / repository
Este proyecto es una plantilla inicial para desarrollar APIs en Node.js. Incluye características como autenticación, cifrado de contraseñas, documentación con Swagger, y conexión a bases de datos.
Este proyecto es una API RESTful para gestionar usuarios, construida utilizando Node.js, Express y TypeScript. Permite crear, leer, actualizar y eliminar usuarios con un enfoque en autenticación JWT, roles de usuario, y manejo de contraseñas mediante bcryptjs.
JSON Web Tokens (JWT) para la autenticación de usuarios.bcryptjs para asegurar la seguridad de los datos.Swagger.Clona este repositorio:
git clone https://github.com/(usuario)/CRUD-Users-Nodejs-Express-Prisma-TS.git
Accede al directorio del proyecto:
cd CRUD-Users-Nodejs-Express-Prisma-TS
Instala las dependencias:
npm install
Crea el archivo .env con las siguientes variables de entorno (puedes usar el .env.example como guia):
# Puerto del servidor
PORT=3000
# Configuración de la base de datos MySQL
DATABASE_URL="mysql://user:password@host:port/database"
# Configuración de JWT
JWT_SECRET=yoursecretkey
# Configuracion de Swagger Server
BASE_PATH=api
VERSIONS_API=v1
BASE_URL=http://localhost
Si es necesario, ejecuta las migraciones de la base de datos (si usas Prisma):
npx prisma migrate dev
Ejecuta el siguiente comando para compilar el código TypeScript a JavaScript en la carpeta dist (según la configuración en tsconfig.json):
npm run build
Para iniciar el servidor, ejecuta el siguiente comando:
npm run start
Accede a la documentación interactiva de Swagger UI después de iniciar el servidor:
✅ La base de datos está online.
==================================================
🚀 Servidor corriendo en: http://localhost:3000
📃 Swagger Docs: http://localhost:3000/api-docs
==================================================
/auth)| Método | Endpoint | Descripción |
|---|---|---|
| POST | /auth/register | Registrar un nuevo usuario |
| POST | /auth/login | Iniciar sesión |
| POST | /auth/logout | Cerrar sesión |
/admin)| Método | Endpoint | Descripción |
|---|---|---|
| GET | /admin/allusers | Obtener todos los usuarios |
| GET | /admin/users/{id} | Obtener usuario por ID |
| GET | /admin/search | Buscar usuarios con filtros |
| PUT | /admin/users/update/{id} | Actualizar usuario |
| DELETE | /admin/users/delete/{id} | Eliminar usuario (borrado lógico) |
| PUT | /admin/users/restore/{id} | Restaurar usuario (borrado lógico) |
/users)| Método | Endpoint | Descripción |
|---|---|---|
| GET | /users | Obtener datos del usuario |
| PUT | /users/update | Actualizar usuario |
| DELETE | /users/delete | Eliminar usuario (borrado lógico) |
/auth)| Método | Endpoint | Descripción |
|---|---|---|
| POST | /auth/refresh-token | Generar nuevo token de acceso |
| POST | /auth/change-password | Cambiar contraseña autenticado |
| POST | /auth/reset-password | Solicitar recuperación de contraseña |
| POST | /auth/verify-email | Verificar email del usuario |
/users)| Método | Endpoint | Descripción |
|---|---|---|
| PATCH | /users/update-role/{id} | Cambiar rol de usuario (admin) |
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /health | Verificar estado de la API |
Este proyecto está bajo la licencia MIT.
¡Las contribuciones son bienvenidas! Si tienes sugerencias o encuentras errores, no dudes en crear un issue o enviar un pull request.