El motor detrás de tu Tinder de libros: conectando lectores con sus próximas aventuras literarias.
- Descripción
- Tecnologías
- Estructura del Proyecto
- Requisitos Previos
- Visual Studio Code
- Instalación
- Configuración
- Ejecución
- API Endpoints
- Modelos de Datos
- Flujo de Trabajo con Git
- Contribución
- Enlaces Útiles
- Licencia
- Equipo
BookMatch API es el backend que impulsa nuestra innovadora plataforma para descubrir libros. Proporciona todos los servicios y puntos de acceso necesarios para que los usuarios puedan explorar, filtrar y guardar libros según sus preferencias, interactuar con otros lectores y gestionar su biblioteca personal.
Esta API RESTful está diseñada con una arquitectura modular y escalable para garantizar un rendimiento óptimo y facilitar futuras expansiones.
El backend de BookMatch está construido con las siguientes tecnologías:
- Express: ^5.1.0 - Framework web rápido y minimalista para Node.js
- MongoDB: ^6.15.0 - Driver oficial de MongoDB para Node.js
- Mongoose: ^8.13.2 - Modelado de objetos MongoDB para Node.js
- Dotenv: ^16.4.7 - Carga de variables de entorno desde archivos .env
- CORS: ^2.8.5 - Middleware para habilitar CORS (Cross-Origin Resource Sharing)
- Nodemon: ^3.1.9 - Utilidad que monitoriza cambios y reinicia automáticamente el servidor
backend/
├── config/
│ ├── db.js # Configuración de la base de datos
│ └── .env.example # Plantilla de variables de entorno
├── controllers/
│ ├── authController.js
│ ├── bookController.js
│ ├── matchController.js
│ └── userController.js
├── middleware/
│ ├── auth.js # Middleware de autenticación
│ └── errorHandler.js # Manejo centralizado de errores
├── models/
│ ├── Book.js
│ ├── Match.js
│ └── User.js
├── routes/
│ ├── auth.js
│ ├── books.js
│ ├── matches.js
│ └── users.js
├── utils/
│ ├── logger.js
│ └── validators.js
├── .env # Variables de entorno (no versionado)
├── .gitignore
├── index.js # Punto de entrada de la aplicación
├── package.json
└── README.md
Para ejecutar este proyecto, necesitarás:
- Node.js (v16.x o superior)
- MongoDB (local o conexión a MongoDB Atlas)
- Git
CRLF Se debe cambiar a modo CRLF en Visual Studio Code
- Clona el repositorio
git clone https://github.com/FSDSTR0225/TFM-backend-amarillo.git
cd TFM-backend-amarillo- Instala las dependencias
npm install- Crea un archivo .env basado en .env.example
.env
- Edita el archivo .env con tus configuraciones
PORT=3000
MONGODB_URI=mongodb://localhost:27017/bookmatch
# Añade aquí otras variables de entorno necesarias
npx nodemon POST /api/users/register- Registro de usuarioPOST /api/users/login- Inicio de sesión
GET /api/books- Listar libros con filtrosPOST /api/books/- Crear libros
{
"_id": ObjectId,
"name": "string",
"email": "string",
"password": "string",
"save": ["book_id"],
"read": [
{
"book": "book_id",
"state": "string" // estado de lectura
}
],
"preferences": [
{
"genres": ["string"],
"languages": ["string"]
}
],
"timestamp": "ISODate"
"like": ["book_id"],
"dislike": ["book_id"],
"list": ["list_id"]
}{
"_id": ObjectId,
"name": "string",
"like": NumberInt,
"dislike": NumberInt,
"state": NumberDecimal, // porcentaje de algo (¿progreso?)
"review": [
{
"user": "user_id",
"text": "string",
"rating": NumberInt
}
],
"genre":"string"
"language":"string"
"url": "string"
"timestamp": "ISODate"
}{
"_id": ObjectId,
"name": "string",
"books": ["book_id"],
"timestamp": "ISODate"
}Para mantener un desarrollo organizado y colaborativo, seguimos el siguiente flujo de trabajo con Git:
main- Código de producción establedev- Rama de desarrollo e integración
Para nuevas funcionalidades:
nombre-funcionalidadNombre-Persona
Para corrección de errores:
bugfixDescripcion-error
- Crea tu rama desde
develop - Desarrolla la funcionalidad o corrección
- Asegúrate de que tu código sigue las directrices del proyecto
- Crea un Pull Request a
develop - Después de la revisión y aprobación, se fusionará con la rama principal
¡Las contribuciones son bienvenidas! Para contribuir al proyecto:
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Haz commit de tus cambios (
git commit -m 'Add some amazing feature') - Haz push a la rama (
git push origin feature/amazing-feature) - Abre un Pull Request
Por favor, asegúrate de actualizar las pruebas según corresponda y sigue las directrices de contribución del proyecto.
- Documentación de Express
- Documentación de Mongoose
- Repositorio Frontend
- Tablero de Proyecto
- MongoDB Atlas
Este proyecto está licenciado bajo la Licencia ISC - consulta el archivo LICENSE para más detalles.
- [Pablo Pianelo]
- [Nombre ]
Desarrollado con ❤️ por el equipo de amarillo