RECO es una aplicación full-stack multiplataforma para la gestión integral de eventos. Combina un backend escalable con Node.js, una base de datos NoSQL en la nube y una interfaz móvil intuitiva desarrollada en React Native.
- 🔐 Autenticación segura con JWT
- 📅 CRUD completo de eventos
- 🌍 Despliegue en la nube con CI/CD
- 📱 App móvil multiplataforma (Android/iOS)
- 🔄 Comunicación en tiempo real con API REST
React Native + Expo
├── React Navigation (navegación)
├── Axios (HTTP client)
├── AsyncStorage (persistencia local)
├── Formik + Yup (formularios)
└── EAS Build (distribución)
Express.js API
├── Mongoose (MongoDB ODM)
├── JWT (autenticación)
├── Bcrypt (encriptación)
├── CORS (seguridad)
└── Render.com (hosting)
- MongoDB Atlas - Base de datos NoSQL en la nube
- Registro de usuarios
- Inicio de sesión
- Tokens JWT persistentes
- Middleware de autenticación
- Crear nuevos eventos
- Leer lista de eventos del usuario
- Actualizar detalles de eventos
- Eliminar eventos
- Validación de formularios
- Manejo de errores
┌─────────────────┐ HTTP/REST ┌──────────────────┐
│ │ ──────────────> │ │
│ React Native │ │ Express.js │
│ Client │ <────────────── │ API │
│ │ │ │
└─────────────────┘ └──────────────────┘
│
│ Mongoose
▼
┌──────────────────┐
│ MongoDB Atlas │
│ (Database) │
└──────────────────┘
- Node.js 18+
- Expo CLI
- MongoDB Atlas cuenta
- Android Studio / Xcode (opcional)
# Clonar repositorio
git clone https://github.com/tu-usuario/reco.git
cd reco/backend
# Instalar dependencias
npm install
# Configurar variables de entorno
cp .env.example .env
# Editar .env con tu MONGODB_URI y JWT_SECRET
# Ejecutar en desarrollo
npm run devcd ../frontend
# Instalar dependencias
npm install
# Configurar API endpoint
# Editar config/api.js con tu URL del backend
# Ejecutar en desarrollo
npm start
# Construir APK
eas build --platform androidreco/
├── backend/
│ ├── controllers/ # Lógica de negocio
│ ├── models/ # Esquemas de MongoDB
│ ├── middleware/ # Autenticación y validación
│ ├── routes/ # Endpoints de la API
│ └── server.js # Punto de entrada
├── frontend/
│ ├── components/ # Componentes reutilizables
│ ├── screens/ # Pantallas de la app
│ ├── navigation/ # Configuración de navegación
│ ├── services/ # Llamadas a la API
│ └── App.js # Componente principal
└── README.md
npm start- Producciónnpm run dev- Desarrollo con nodemonnpm test- Ejecutar tests
npm start- Servidor de desarrollo Expoeas build- Construir para produccióneas submit- Publicar en stores
POST /api/auth/register # Registro de usuario
POST /api/auth/login # Inicio de sesión
GET /api/auth/profile # Perfil del usuarioGET /api/events # Listar eventos del usuario
POST /api/events # Crear nuevo evento
PUT /api/events/:id # Actualizar evento
DELETE /api/events/:id # Eliminar evento- ✅ Passwords hasheadas con bcrypt
- ✅ Autenticación JWT
- ✅ Validación de datos de entrada
- ✅ CORS configurado
- ✅ Variables de entorno para secretos
- Conectar repositorio de GitHub
- Configurar variables de entorno
- Despliegue automático en push a main
- Configurar
eas.json eas build --platform android- Descargar APK generado
- Notificaciones push
- Compartir eventos
- Calendario integrado
- Modo offline
- Tests automatizados
- Versión web (React.js)
- Fork del proyecto
- Crear rama feature (
git checkout -b feature/nueva-funcionalidad) - Commit cambios (
git commit -m 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abrir Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
Paco López
- GitHub: @Fralopala2
- LinkedIn: Perfil
- Email: [email protected]
- Expo por simplificar el desarrollo React Native
- Render.com por el hosting gratuito
- MongoDB Atlas por la base de datos en la nube
⭐ ¡Si te gusta este proyecto, dale una estrella! ⭐