Skip to content

Repository files navigation

API de Vigilancia

Sistema de vigilancia con detección de comportamientos sospechosos usando IA (YOLO + Random Forest) y notificaciones en tiempo real vía WebSockets.

Estructura del Proyecto

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

Instalación

  1. Clonar el repositorio
git clone <repo-url>
cd vigilancia-api
  1. Crear entorno virtual
python -m venv venv
source venv/bin/activate  # En Windows: venv\Scripts\activate
  1. Instalar dependencias
pip install -r requirements.txt
  1. Configurar variables de entorno
cp .env.example .env
# Editar .env con tus credenciales de MySQL
  1. Inicializar base de datos
# Ejecutar migrations/init.sql en tu MySQL
mysql -u root -p < migrations/init.sql

Ejecución

Desarrollo

python -m app.main

Producción (con uvicorn)

uvicorn app.main:app --host 0.0.0.0 --port 8000

Endpoints Principales

Autenticación

  • POST /auth/register - Registrar usuario
  • POST /auth/login - Iniciar sesión
  • GET /users/me - Información del usuario actual

Detección

  • POST /api/detection/simulation/start - Iniciar simulación
  • POST /api/detection/simulation/stop - Detener simulación
  • GET /api/detection/simulation/status - Estado de simulación
  • GET /api/detection/incidents - Listar incidentes
  • POST /api/detection/incidents/{id}/acknowledge - Reconocer incidente

WebSocket

  • WS /ws/notifications - Notificaciones en tiempo real

Documentación

  • 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

Testing

# Ejecutar tests de API
python tests/test_api.py

Tecnologías

  • 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

Versión

3.0.0

Licencia

Propietario

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages