Aplicación web que permite gestionar el inventario de productos alimenticios de manera eficiente. El sistema incluye funciones de autenticación y recuperación de contraseña mediante correo electrónico, garantizando seguridad y facilidad de uso.
- Gestión de productos alimenticios:
- Alta, edición y eliminación de productos.
- Autenticación de usuarios:
- Registro de cuentas.
- Inicio de sesión seguro.
- Recuperación de contraseña:
- Envío de enlace de restablecimiento al correo electrónico registrado.
- Generación de token de seguridad con expiración.
- Panel de administración:
- Vista general del inventario.
- Backend: Node.js + Express
- Base de datos: MySQL
- Frontend: HTML5, CSS3, JavaScript
- Email Service: Nodemailer
- Autenticación: JSON Web Tokens (JWT) / bcrypt para hashing de contraseñas
-
Clona el repositorio:
git clone https://github.com/Mat0wa3/recuperar-contrasena-con-email.git
-
Accede al proyecto:
cd recuperar-contrasena-con-email -
Instala las dependencias:
npm install
-
Crea el archivo
.envcon las variables de entorno necesarias:PORT=3000 DB_HOST=localhost DB_USER=root DB_PASSWORD=tu_clave DB_NAME=inventario JWT_SECRET=tu_secreto EMAIL_USER=tu_correo@example.com EMAIL_PASSWORD=tu_contraseña
-
Inicia el servidor:
npm run dev
-
Abre en tu navegador:
http://localhost:3000
- El usuario accede a la opción "¿Olvidaste tu contraseña?".
- Ingresa su correo electrónico registrado.
- El sistema genera un token único con expiración (por ejemplo, 1 hora).
- Se envía un enlace de restablecimiento al correo electrónico.
- El usuario accede al enlace y define una nueva contraseña.
Importante: Configura correctamente las credenciales SMTP en el
.env.
inventario-alimentos/
├── controllers/
│ ├── authController.js
│ └── productController.js
├── models/
│ └── Product.js
├── routes/
│ ├── authRoutes.js
│ └── productRoutes.js
├── views/
│ └── (archivos HTML/EJS)
├── .env
├── app.js
└── package.json
Si deseas contribuir:
- Haz un fork del proyecto.
- Crea una rama (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y commitea (
git commit -m 'Añadir nueva funcionalidad'). - Haz push a la rama (
git push origin feature/nueva-funcionalidad). - Crea un Pull Request.
Este proyecto está bajo la Licencia MIT.