Una aplicación web full-stack moderna para monitoreo de estado de clientes, construida con FastAPI + React + MongoDB.
- ✅ Backend API REST con FastAPI
- ✅ Frontend React con Tailwind CSS
- ✅ Base de datos MongoDB para persistencia
- ✅ Sistema de Status Checks para monitoreo de clientes
- ✅ Dockerizado para fácil deployment
- ✅ CORS configurado para desarrollo y producción
- ✅ Logs estructurados para debugging
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ │ │ │ │ │
│ React Frontend│───▶│ FastAPI Backend│───▶│ MongoDB │
│ (Port 3000) │ │ (Port 8001) │ │ (Port 27017) │
│ │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- FastAPI - Framework web moderno y rápido
- Motor - Driver asíncrono para MongoDB
- Pydantic - Validación de datos y serialización
- Python 3.11 - Lenguaje base
- React 19 - Librería UI moderna
- Tailwind CSS - Framework CSS utility-first
- Axios - Cliente HTTP para API calls
- React Router - Navegación SPA
- MongoDB - Base de datos NoSQL
- Docker - Containerización
- Nginx - Proxy reverso
- Supervisor - Gestión de procesos
- Docker y Docker Compose
- Node.js 20+ (para desarrollo local)
- Python 3.11+ (para desarrollo local)
- MongoDB (para desarrollo local)
- Clonar el repositorio
git clone https://github.com/yoqer/max.git
cd navegador
- Configurar variables de entorno
# Backend
cd backend
cp .env.example .env
# Editar .env con tus configuraciones
# Frontend
cd ../frontend
cp .env.example .env
# Editar .env con tus configuraciones
- Instalar dependencias
Backend:
cd backend
pip install -r requirements.txt
Frontend:
cd frontend
yarn install
- Iniciar servicios
# Usando supervisor (recomendado)
sudo supervisorctl restart all
# O individualmente:
# Backend
cd backend && uvicorn server:app --host 0.0.0.0 --port 8001 --reload
# Frontend
cd frontend && yarn start
# Construir y ejecutar
docker build -t navegador .
docker run -p 80:80 -p 8001:8001 navegador
Método | Endpoint | Descripción | Payload |
---|---|---|---|
GET | / |
Health check | - |
POST | /status |
Crear status check | {"client_name": string} |
GET | /status |
Obtener todos los status checks | - |
Health Check:
curl -X GET "http://localhost:8001/api/"
Crear Status Check:
curl -X POST "http://localhost:8001/api/status" \
-H "Content-Type: application/json" \
-d '{"client_name":"mi_cliente"}'
Obtener Status Checks:
curl -X GET "http://localhost:8001/api/status"
navegador/
├── backend/ # FastAPI backend
│ ├── server.py # Aplicación principal
│ ├── requirements.txt # Dependencias Python
│ └── .env # Variables de entorno
├── frontend/ # React frontend
│ ├── src/
│ │ ├── App.js # Componente principal
│ │ ├── App.css # Estilos
│ │ └── index.js # Punto de entrada
│ ├── public/ # Assets estáticos
│ ├── package.json # Dependencias Node.js
│ └── .env # Variables de entorno
├── tests/ # Tests automatizados
├── scripts/ # Scripts de utilidad
├── Dockerfile # Configuración Docker
├── docker-compose.yml # Orquestación de servicios
├── nginx.conf # Configuración Nginx
├── entrypoint.sh # Script de inicio
└── README.md # Este archivo
Backend (.env):
MONGO_URL=mongodb://localhost:27017
DB_NAME=test_database
Frontend (.env):
REACT_APP_BACKEND_URL=http://localhost:8001
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
yarn test
- Definir modelos en
backend/server.py
- Crear endpoints con decorador
@api_router
- Documentar en este README
- Crear componente en
frontend/src/
- Agregar ruta en
App.js
- Actualizar navegación si es necesario
# Variables de entorno para producción
export FRONTEND_ENV="REACT_APP_BACKEND_URL=https://tu-dominio.com"
# Construir imagen
docker build -t navegador:latest .
# Ejecutar
docker run -d \
--name navegador-app \
-p 80:80 \
-e FRONTEND_ENV="$FRONTEND_ENV" \
navegador:latest
El proyecto incluye workflows de GitHub Actions para:
- ✅ Tests automatizados
- ✅ Build y deployment
- ✅ Linting y formateo
- Fork el proyecto
- Crear branch para feature (
git checkout -b feature/nueva-caracteristica
) - Commit cambios (
git commit -am 'Agregar nueva característica'
) - Push al branch (
git push origin feature/nueva-caracteristica
) - Crear Pull Request
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para detalles.
- Desarrollador Principal - Desarrollo full-stack
- Contribuidores - Ver contributors
¿Tienes preguntas o necesitas ayuda?
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Documentación: Wiki
⭐ Si este proyecto te resulta útil, ¡dale una estrella en GitHub!