Proyecto Final – Desarrollo Web Fullstack 1 (MERN)
Aplicación web fullstack desarrollada con el stack MERN (MongoDB, Express, React y Node.js) para la reservación de canchas deportivas por horario.
El sistema permite a los usuarios consultar disponibilidad, realizar reservaciones con pago ficticio y visualizar su historial.
Incluye soporte para múltiples sedes y cuenta con autenticación segura mediante JWT.
El proyecto está desplegado en Oracle Cloud Infrastructure (OCI) y accesible mediante un subdominio asignado por el instructor.
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT (Autenticación)
- bcrypt (Hash de contraseñas)
- express-validator (Validaciones)
- dotenv
- rate limiting básico
- React
- React Router
- Context API y Hooks
- Axios
- Componentes reutilizables
- Oracle Cloud Infrastructure (OCI)
- MongoDB (Atlas o instancia propia)
- Subdominio asignado
- Registro y autenticación
- Inicio de sesión con JWT
- Historial de reservaciones
- CRUD completo de canchas
- Asignación por sede
- Gestión de horarios
- Calendario de disponibilidad
- Reservación por fecha y horario
- Simulación de pago
- Prevención de traslapes
- Gestión de múltiples sedes
- Canchas asociadas a cada sede
- Contraseñas hasheadas con bcrypt
- Autenticación y autorización con JWT
- Sanitización de entradas
- Rate limiting básico
- Variables de entorno protegidas
git clone https://github.com/DavidAvalos14/CanchasFullStackI/.git
cd CanchasFullStackIcd backend
npm installCrear archivo .env :
PUERTO=5000
MONGO_URL=tu_conexion_mongodb
JWT_SECRETO=tu_secretoEjecutar servidor:
npm run devcd frontend
npm install
npm startAutenticación
POST /api/auth/registerPOST /api/auth/login
Canchas
GET /api/canchasPOST /api/canchasPUT /api/canchas/:idDELETE /api/canchas/:id
Reservaciones
GET /api/reservacionesPOST /api/reservacionesGET /api/reservaciones/usuario
Sedes
GET /api/sedesPOST /api/sedes
- Backend desplegado en Oracle Cloud Infrastructure
- Variables de entorno configuradas
- Subdominio funcional
- Logs y monitoreo básico
- Uso de Git y GitHub
- Commits distribuidos
- Participación equitativa