Safe Dungeons es una aplicación web innovadora que combina criptografía avanzada, astronomía y comunicación en tiempo real para crear un sistema de chat seguro con desafíos astronómicos únicos.
- Autenticación JWT: Sistema robusto de autenticación basado en tokens
- Cifrado simétrico: Protección de mensajes con claves de cifrado personalizadas
- Gestión de tokens: Sistema de blacklist para tokens invalidados
- Roles de usuario: Control de acceso basado en roles (usuarios y administradores)
- Generación de coordenadas: Sistema que genera ubicaciones geográficas aleatorias
- Cálculos astronómicos: Integración con Skyfield para determinar constelaciones visibles
- Desafíos temporales: Generación de fechas futuras para validaciones astronómicas
- Validación de respuestas: Sistema de verificación de conocimientos astronómicos
- WebSocket con SocketIO: Comunicación bidireccional en tiempo real
- Salas de chat: Creación y gestión de grupos de conversación
- Mensajes seguros: Todos los mensajes están protegidos con cifrado
- Historial persistente: Almacenamiento de mensajes en base de datos NoSQL
- Flask: Framework web principal
- Flask-SocketIO: Manejo de WebSockets para comunicación en tiempo real
- SQLAlchemy: ORM para base de datos relacional (PostgreSQL)
- Cassandra: Base de datos NoSQL para el sistema de chat
- Redis: Cache y cola de mensajes
- Eventlet: Servidor asíncrono para manejo concurrente
- PostgreSQL: Usuarios, roles, autenticación
- Cassandra: Salas de chat, mensajes, historial
- Redis: Cache, sesiones, cola de mensajes
- Skyfield: Cálculos astronómicos y posiciones planetarias
- NASA DE421: Efemérides planetarias para cálculos precisos
safe_dungeons/
├── authentication/ # Sistema de autenticación
│ ├── models/ # Modelos de usuario y roles
│ ├── process/ # Rutas y servicios de auth
│ └── repositories/ # Acceso a datos de autenticación
├── encryption/ # Servicios de cifrado y desafíos
│ ├── domain/services/ # Lógica de negocio de desafíos
│ ├── infrastructure/ # Servicios de cifrado y astronomía
│ └── interfaces/ # APIs REST
├── shared/chats/ # Sistema de chat
│ ├── controllers/ # Controladores de chat
│ ├── models/ # Modelos de chat (Cassandra)
│ ├── repositories/ # Acceso a datos de chat
│ └── services/ # Lógica de negocio de chat
├── ws_service/ # Servicio WebSocket principal
│ ├── events/ # Manejadores de eventos SocketIO
│ └── utils/ # Utilidades y logging
├── db/ # Configuración de bases de datos
│ ├── sql/ # Conexión PostgreSQL
│ └── nosql/ # Conexión Cassandra
└── config/ # Configuraciones por ambiente
- Python 3.8+
- PostgreSQL
- Cassandra
- Redis
git clone https://github.com/EIVRAJAM/Cryptography_Safe_Dungeons.git
cd Cryptography_Safe_Dungeonspython -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/Macpip install -r requirements.txt# Copiar el archivo de ejemplo
copy .env.example .env
# Editar .env con tus configuracionesSQLALCHEMY_DATABASE_URI: Conexión a PostgreSQLCASSANDRA_CONTACT_POINTS: Nodos de CassandraCASSANDRA_KEYSPACE: Keyspace para chatREDIS_URL: URL de conexión a RedisJWT_SECRET_KEY: Clave secreta para JWTENCRYPTION_KEY: Clave para cifrado simétricoDATE_GEN_SECRET: Clave para generación de fechas
# PostgreSQL: crear base de datos
# Cassandra: crear keyspace
# Las tablas se crean automáticamente al iniciar la aplicaciónpython ws_service/app.pyLa aplicación estará disponible en http://localhost:5001
# Ejecutar todos los tests
pytest
# Ejecutar tests específicos
pytest tests/test_challenge.py
pytest tests/test_generators.pyPOST /auth/register- Registro de usuariosPOST /auth/login- Inicio de sesiónPOST /auth/logout- Cierre de sesiónPOST /auth/refresh- Renovar token
GET /api/chat/rooms- Listar salasPOST /api/chat/rooms- Crear salaGET /api/chat/rooms/{id}/messages- Mensajes de sala
join_room- Unirse a sala de chatleave_room- Salir de salasend_message- Enviar mensajeencrypted_message- Mensaje cifrado
config/dev.py- Configuración de desarrolloconfig/prod.py- Configuración de producción
El sistema incluye logging configurado para desarrollo y producción con diferentes niveles de detalle.
El proyecto incluye configuraciones para despliegue en contenedores y infraestructura como código en la carpeta deployments/ e infra-as-code/.
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Este proyecto es un prototipo de criptografia safe_dungeon es propiedad de ABRAHAM CEBALLOS| AS IMMERSIVE.
- ABRAHAM CEBALLOS RODRIGUEZ - Desarrollo inicial
- NASA por las efemérides DE421
- Comunidad de Skyfield por los cálculos astronómicos
- Flask y SocketIO por las herramientas de desarrollo web