InstitutoApp es una aplicación móvil Android desarrollada en Kotlin como proyecto académico. Su objetivo es simular una intranet estudiantil para institutos o universidades, permitiendo a un alumno acceder a módulos relacionados con su vida académica, como calendario, calificaciones, evaluación docente, solicitud de certificados y búsqueda de sedes mediante Google Maps.
El proyecto fue recuperado y documentado como parte de mi portafolio profesional, manteniendo su enfoque académico original y realizando mejoras orientadas a presentación, seguridad y documentación.
- Inicio de sesión simulado para acceso de alumno.
- Menú principal tipo intranet estudiantil.
- Calendario académico con gestión local de eventos.
- Visualización de calificaciones.
- Evaluación docente mediante sistema de estrellas.
- Solicitud de certificados estudiantiles.
- Integración con Firebase Firestore para almacenar solicitudes.
- Integración con MQTT/HiveMQ para envío de mensajes.
- Mapa interactivo con Google Maps y ubicación del usuario.
- Gestión de marcadores personalizados en el mapa.
- Uso de SQLite para persistencia local.
- Uso de sensores del dispositivo como parte de funcionalidades demostrativas.
| Login | Menú principal | Calendario |
|---|---|---|
![]() |
![]() |
![]() |
| Certificados | Calificaciones | Evaluación docente |
|---|---|---|
![]() |
![]() |
![]() |
| Busca tu sede |
|---|
![]() |
La aplicación incluye una pantalla de login con credenciales de prueba. El login es simulado y está pensado para demostrar el flujo de acceso a la intranet estudiantil.
Credenciales demo:
Usuario: alumno123
Contraseña: 12345
El módulo de calendario permite al alumno gestionar eventos o notas académicas.
Funcionalidades principales:
- Visualización de calendario mensual.
- Creación de eventos.
- Edición de eventos.
- Eliminación de eventos.
- Persistencia local mediante SQLite.
Este módulo utiliza una base de datos local para manejar la información del calendario con operaciones CRUD.
El módulo de calificaciones muestra una concentración de notas del alumno.
Incluye:
- Nombre de asignatura.
- Nota obtenida.
- Fecha asociada.
Los datos utilizados en este módulo son datos de ejemplo, creados para representar el comportamiento de una sección académica de notas.
El módulo de evaluación docente permite representar un flujo básico de evaluación a profesores.
Incluye:
- Nombre del docente.
- Sistema de calificación por estrellas.
- Botón para guardar la evaluación.
Este módulo fue desarrollado como una funcionalidad demostrativa dentro del contexto académico del proyecto.
El módulo de certificados permite simular la solicitud de documentos académicos, tales como:
- Certificado de alumno regular.
- Certificado de notas.
- Certificado de asistencia.
La solicitud considera datos como nombre, RUT, carrera, teléfono y tipo de certificado.
Integraciones utilizadas:
- Firebase Firestore para almacenar solicitudes.
- MQTT/HiveMQ para publicar información de la solicitud en un broker MQTT.
La pantalla también incluye una sección visual para consultar el estado de una solicitud por RUT. Esta parte quedó contemplada en la interfaz como flujo administrativo, pero no implementa una consulta real de estado en la versión actual.
El módulo de mapa permite visualizar una ubicación mediante Google Maps.
Incluye:
- Integración con Google Maps API.
- Solicitud de permisos de ubicación.
- Visualización de mapa interactivo.
- Marcador principal en el mapa.
- Gestión de marcadores personalizados.
Esta funcionalidad fue pensada para que el alumno pudiera ubicar sedes o marcar puntos de interés, como librerías, lugares para almorzar u otros puntos útiles cercanos.
- Kotlin
- Android SDK
- XML Layouts
- SQLite
- Firebase Firestore
- Google Maps API
- MQTT / HiveMQ
- Gradle Kotlin DSL
- SharedPreferences
- Android Sensors
- Android Studio
InstitutoApp/
├── app/
│ ├── src/main/java/com/arts/institutoapp/
│ │ ├── MainActivity.kt
│ │ ├── WelcomeActivity.kt
│ │ ├── CalendarActivity.kt
│ │ ├── AddEventActivity.kt
│ │ ├── EditEventActivity.kt
│ │ ├── NotasActivity.kt
│ │ ├── EvaluacionActivity.kt
│ │ ├── CertificadosActivity.kt
│ │ └── MapaActivity.kt
│ └── src/main/res/
├── docs/
│ ├── config/
│ └── screenshots/
├── build.gradle.kts
├── settings.gradle.kts
└── README.md
Por seguridad, los archivos reales de configuración no están incluidos en el repositorio.
Los archivos reales que deben existir localmente son:
app/google-services.json
app/src/main/res/values/google_maps_api.xml
Estos archivos contienen credenciales o claves necesarias para Firebase y Google Maps, por lo que están excluidos mediante .gitignore.
En la carpeta docs/config/ se incluyen archivos de ejemplo:
docs/config/google-services.example.json
docs/config/google_maps_api.example.xml
Para ejecutar el proyecto con integraciones reales, se deben copiar o recrear estos archivos en sus ubicaciones correspondientes y reemplazar los valores de ejemplo por credenciales válidas.
La integración MQTT fue desarrollada utilizando HiveMQ Cloud.
En la versión pública del repositorio, las credenciales reales fueron reemplazadas por valores de ejemplo:
YOUR_MQTT_SERVER_HOST
YOUR_MQTT_USERNAME
YOUR_MQTT_PASSWORD
Para probar la integración real, se deben configurar credenciales válidas de un broker MQTT compatible con TLS.
- Android Studio.
- Android SDK configurado.
- Dispositivo físico o emulador Android.
- Conexión a Internet para funcionalidades relacionadas con Firebase, MQTT y Google Maps.
- Credenciales válidas para Firebase y Google Maps si se desean probar las integraciones reales.
- Clonar el repositorio:
git clone https://github.com/Reload-ARTS/InstitutoApp.git-
Abrir el proyecto en Android Studio.
-
Sincronizar Gradle.
-
Configurar los archivos locales requeridos:
app/google-services.json
app/src/main/res/values/google_maps_api.xml
- Ejecutar la aplicación en un emulador o dispositivo físico.
Este proyecto corresponde a una aplicación académica recuperada y modernizada para portafolio.
La app compila y ejecuta correctamente en Android Studio. El objetivo actual no es reescribir completamente la aplicación, sino conservar su valor académico, documentarla correctamente y presentarla de forma profesional.
Algunas mejoras posibles para una futura versión:
- Reemplazar la imagen de login por un logo propio.
- Mejorar la interfaz visual general.
- Implementar autenticación real.
- Completar la consulta de estado de certificados.
- Persistir evaluaciones docentes.
- Mejorar la arquitectura del proyecto.
- Separar configuración sensible mediante archivos locales o variables de entorno.
- Generar una APK demo para distribución.
- Agregar pruebas unitarias o instrumentadas.
Antonio Toro Sagredo Analista Programador Proyecto académico recuperado y documentado como parte de portafolio profesional.






