Primera versión estable v1.1.5 - Aulas UNICABA
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# Aulas UNICABA
|
||||
|
||||
Un visor híbrido especializado y offline-first desarrollado para la visualización de la cartelera oficial de aulas, seguimiento automatizado de materias cursadas y generación de la Credencial Digital Universitaria para estudiantes de la Universidad de la Ciudad (UNICABA).
|
||||
|
||||
## Información Técnica y Frameworks
|
||||
|
||||
* **Base Frontend**: [Angular 20.3.x](https://angular.io/)
|
||||
* **Librería de Componentes UI**: [Ionic Framework v8](https://ionicframework.com/)
|
||||
* **Puente Nativo Multiplataforma**: [Capacitor v8](https://capacitorjs.com/)
|
||||
* **Procesamiento de Archivos PDF Interno**: `pdfjs-dist` (Renderización nativa in-dom de la Credencial)
|
||||
|
||||
## Plugins de Experiencia Nativa (Capacitor)
|
||||
|
||||
La aplicación invoca funciones 100% nativas apoyándose en las siguientes librerías core:
|
||||
- `@capacitor/filesystem`: Escritura pesada persistente de respaldos en CSV en el FileSystem local ("Documents").
|
||||
- `@capawesome/capacitor-file-picker`: Interfaz de File Picker del OS (Cloud / Storage) para restauración manual.
|
||||
- `@capacitor/local-notifications`: Motor de avisos visuales locales ante un cambio repentino de aula mapeada en favoritos.
|
||||
- `@capacitor/preferences`: Almacenamiento rápido volátil (Key-Value) para estado de caché de credenciales offline y preferencias menores.
|
||||
- `@transistorsoft/capacitor-background-fetch`: Cronjobs transparentes delegados al Sistema Operativo para despertar a la app y sincronizar la cartelera.
|
||||
- `@capacitor-community/screen-brightness`: Anulación y control programático de brillo de panel al desplegar formatos estáticos de código QR/Credencial UI.
|
||||
- `@capacitor/haptics`: Respuestas hápticas (Vibración inteligente) en interacciones de hardware/software clave.
|
||||
- `@capacitor/share`: Puente social nativo para el envío de horarios por WhatsApp, Telegram, etc.
|
||||
|
||||
---
|
||||
|
||||
## Compatibilidad Multiplataforma (iOS y Android)
|
||||
|
||||
Todo el código fuente de Aulas UNICABA (TypeScript, HTML y SCSS) y la selección estricta de sus plugins de Capacitor son **100% compatibles tanto con equipos móviles Android como con el ecosistema iOS de Apple**. La arquitectura garantiza que la aplicación operará sintácticamente de forma idéntica en iPhone.
|
||||
|
||||
### 🤖 Despliegue en Android
|
||||
**Requisito previo**: [Android Studio](https://developer.android.com/studio) instalado, Node.js y NPM.
|
||||
```bash
|
||||
# 1. Instalar dependencias e hibridación
|
||||
npm install
|
||||
|
||||
# 2. Compilación del binario web
|
||||
npm run build
|
||||
|
||||
# 3. Transpilación y Sincronización de puentes nativos Android
|
||||
npx cap sync android
|
||||
|
||||
# 4. Apertura del EDI para firma de APK o ejecución en celular por ADB
|
||||
npx cap open android
|
||||
```
|
||||
|
||||
### 🍏 Despliegue en iOS (iPhone / iPad)
|
||||
**Requisito previo**: Una computadora macOS reciente, [Xcode](https://developer.apple.com/xcode/), Node.js y CocoaPods instalado globalmente (`sudo gem install cocoapods`).
|
||||
```bash
|
||||
# 1-2. Instalación y compilación estándar de web
|
||||
npm install
|
||||
npm run build
|
||||
|
||||
# 3. Empaquetar el proyecto inicial para iOS (Solo se ejecuta una vez en la vida del proyecto)
|
||||
npx cap add ios
|
||||
|
||||
# 4. Sincronizar plugins y actualizar Pods
|
||||
npx cap sync ios
|
||||
|
||||
# 5. Apertura en Xcode para configurar equipo de Apple Dev y emular
|
||||
npx cap open ios
|
||||
```
|
||||
> **Nota para Xcode:** Para compilar exitosamente deberás habilitar permisos explícitos para Local Notifications y capacidades de "Background Fetch" en los *Background Modes* de la pestaña *Signing & Capabilities* dentro de Xcode.
|
||||
|
||||
---
|
||||
|
||||
## Privacidad y Flujo Cero Intermediarios (Zero-Trust)
|
||||
1. **Credenciales en Moodle Bypass**: Por diseño de arquitectura, la app extrae el PDF de credencial estudiantil logueándose de manera asilvestrada mediante `CapacitorHttp`. Supera bloqueos tipo CORS al delegar el flujo de HTTP al motor OS, nunca triangulando el DNI a través de un backend tercero.
|
||||
2. **Resiliencia (Anti-Wipes)**: Dado las agresivas políticas *Storage Scoped* a partir de Android 11 que borran bases de datos SQLite y Preferences locales si se desinstala, la app empuja automáticamente la personalización del alumno a un archivo estandarizado `aulas_unicaba_datos.csv` a su gestor público de archivos general ("Documentos").
|
||||
Reference in New Issue
Block a user