Sistema de vigilancia con detección de comportamientos sospechosos usando IA (YOLO + Random Forest) y notificaciones en tiempo real vía WebSockets.
vigilancia-api/
├── app/ # Código de la aplicación
│ ├── main.py # FastAPI app principal
│ ├── database.py # Configuración de base de datos
│ │
│ ├── models/ # Modelos Pydantic
│ │ ├── base_models.py # Modelos de usuarios, auth, etc.
│ │ └── detection_models.py # Modelos de detección
│ │
│ ├── services/ # Lógica de negocio
│ │ ├── auth_service.py
│ │ ├── user_service.py
│ │ ├── organization_service.py
│ │ ├── invitation_service.py
│ │ ├── join_request_service.py
│ │ ├── detection_service.py
│ │ └── notification_service.py
│ │
│ ├── endpoints/ # Endpoints REST
│ │ ├── auth_endpoints.py
│ │ ├── organization_endpoints.py
│ │ ├── invitation_endpoints.py
│ │ ├── join_request_endpoints.py
│ │ └── detection_endpoints.py
│ │
│ ├── middleware/ # Middlewares
│ │ └── auth_middleware.py
│ │
│ └── utils/ # Utilidades
│ └── helpers.py
│
├── migrations/ # Scripts SQL
│ ├── init.sql
│ └── *.sql
│
├── docs/ # Documentación
│ ├── INDEX.md
│ ├── RESUMEN_SISTEMA.md
│ ├── DETECTION_GUIDE.md
│ └── WEBSOCKET_PROFESIONAL.md
│
├── tests/ # Tests
│ └── test_api.py
│
├── .env # Variables de entorno (no commitear)
├── .env.example # Template de variables
├── requirements.txt # Dependencias Python
└── openapi.yaml # Especificación OpenAPI
- Clonar el repositorio
git clone <repo-url>
cd vigilancia-api- Crear entorno virtual
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate- Instalar dependencias
pip install -r requirements.txt- Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales de MySQL- Inicializar base de datos
# Ejecutar migrations/init.sql en tu MySQL
mysql -u root -p < migrations/init.sqlpython -m app.mainuvicorn app.main:app --host 0.0.0.0 --port 8000POST /auth/register- Registrar usuarioPOST /auth/login- Iniciar sesiónGET /users/me- Información del usuario actual
POST /api/detection/simulation/start- Iniciar simulaciónPOST /api/detection/simulation/stop- Detener simulaciónGET /api/detection/simulation/status- Estado de simulaciónGET /api/detection/incidents- Listar incidentesPOST /api/detection/incidents/{id}/acknowledge- Reconocer incidente
WS /ws/notifications- Notificaciones en tiempo real
- API Docs: http://localhost:8000/docs (Swagger UI)
- Guía de Detección: Ver
docs/DETECTION_GUIDE.md - WebSockets Profesional: Ver
docs/WEBSOCKET_PROFESIONAL.md - Resumen del Sistema: Ver
docs/RESUMEN_SISTEMA.md
# Ejecutar tests de API
python tests/test_api.py- Framework: FastAPI
- Base de datos: MySQL con SQLAlchemy
- Autenticación: JWT (python-jose)
- WebSockets: FastAPI WebSocket
- IA: YOLO + Random Forest (para detección)
- Validación: Pydantic
3.0.0
Propietario