MysQR es una aplicación móvil y sistema backend para la gestión de asistencia mediante códigos QR. Permite a los profesores generar códigos QR para sus clases y a los estudiantes registrar su asistencia escaneando estos códigos.
- Generación dinámica de códigos QR para clases
- Escaneo de códigos QR para registro de asistencia
- Interfaz intuitiva para profesores y estudiantes
- Sistema de microservicios escalable
- Aplicación móvil multiplataforma (iOS/Android)
El proyecto está dividido en dos partes principales:
El backend está compuesto por tres microservicios:
-
QR Service (Puerto 8080)
- Generación y actualización de códigos QR
- Comunicación mediante Redis
- Gestión de validaciones
-
Teacher Service (Puerto 8081)
- API REST para profesores
- Endpoints para iniciar/detener generación de QR
- Gestión de clases
-
Student Service (Puerto 8082)
- API para validación de códigos QR
- Procesamiento de escaneos
- Registro de asistencia
- Aplicación móvil multiplataforma
- Interfaz de usuario moderna y responsiva
- Soporte para iOS y Android
- Navegación basada en archivos
- Go - Lenguaje principal de programación
- Redis - Base de datos en memoria para comunicación entre servicios
- Docker - Contenedorización de servicios
- Docker Compose - Orquestación de contenedores
- Traefik - Proxy inverso y balanceador de carga
- Gin - Framework web para Go
- GORM - ORM para Go
- React Native - Framework para desarrollo móvil
- Expo - Plataforma de desarrollo móvil
- TypeScript - Superset tipado de JavaScript
- React Navigation - Navegación entre pantallas
- React Native Paper - Componentes de UI
- Axios - Cliente HTTP
- Go (versiones especificadas en go.mod)
- Node.js y npm
- Docker y Docker Compose
- Redis
- Expo CLI
-
Navegar al directorio
Back:cd Back -
Iniciar los servicios con Docker Compose:
docker-compose up -d
Para desarrollo local, cada microservicio puede ejecutarse individualmente:
cd qr
make install
make runcd teacher
make install
make runcd student
make install
make run-
Navegar al directorio de la aplicación:
cd Front/app -
Instalar dependencias:
npm install
-
Iniciar la aplicación:
npx expo start
-
Profesores:
- Iniciar sesión en la aplicación
- Seleccionar una clase
- Generar código QR para la asistencia
- Detener la generación cuando sea necesario
-
Estudiantes:
- Iniciar sesión en la aplicación
- Escanear el código QR de la clase
- Confirmar asistencia
- Fork el proyecto
- Crear 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) - Abrir un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Para preguntas y soporte, por favor abrir un issue en el repositorio.