Skip to content

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.

Notifications You must be signed in to change notification settings

TheRamdomX/MysQR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 

Repository files navigation

MysQR - Sistema de Asistencia con Códigos QR

Ask DeepWiki Go Redis Docker React Native Expo TypeScript

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.

🚀 Características

  • 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)

🏗️ Arquitectura

El proyecto está dividido en dos partes principales:

Backend (Go)

El backend está compuesto por tres microservicios:

  1. QR Service (Puerto 8080)

    • Generación y actualización de códigos QR
    • Comunicación mediante Redis
    • Gestión de validaciones
  2. Teacher Service (Puerto 8081)

    • API REST para profesores
    • Endpoints para iniciar/detener generación de QR
    • Gestión de clases
  3. Student Service (Puerto 8082)

    • API para validación de códigos QR
    • Procesamiento de escaneos
    • Registro de asistencia

Frontend (React Native/Expo)

  • Aplicación móvil multiplataforma
  • Interfaz de usuario moderna y responsiva
  • Soporte para iOS y Android
  • Navegación basada en archivos

🛠️ Tecnologías Utilizadas

Backend

  • 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

Frontend

🛠️ Requisitos Previos

  • Go (versiones especificadas en go.mod)
  • Node.js y npm
  • Docker y Docker Compose
  • Redis
  • Expo CLI

🚀 Instalación y Ejecución

Backend

  1. Navegar al directorio Back:

    cd Back
  2. Iniciar los servicios con Docker Compose:

    docker-compose up -d

Para desarrollo local, cada microservicio puede ejecutarse individualmente:

QR Service

cd qr
make install
make run

Teacher Service

cd teacher
make install
make run

Student Service

cd student
make install
make run

Frontend

  1. Navegar al directorio de la aplicación:

    cd Front/app
  2. Instalar dependencias:

    npm install
  3. Iniciar la aplicación:

    npx expo start

📱 Uso de la Aplicación

  1. 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
  2. Estudiantes:

    • Iniciar sesión en la aplicación
    • Escanear el código QR de la clase
    • Confirmar asistencia

🤝 Contribución

  1. Fork el proyecto
  2. Crear una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add some AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abrir un Pull Request

📝 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

📧 Contacto

Para preguntas y soporte, por favor abrir un issue en el repositorio.

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5