# Siemens IEDS
## Android Technical Design
###### tags: `projects`
### Purpose
Maintenance and. diagnostic of equipment the subway of Singapore
### Screenmap
- Splash
- Login
- Register
- Sync
- Dashboard
- History
- Search detail
- Documents (Search & Filter)
- Search (New Guidance OR Enter Error Code)
- New Guidance
- Category
- Technique
- System
- Subsystem
- Posible Guides (List of Flows)
- Questions (steps)
- Posible Solution of PDF document
- Followed Steps
- New comment to step
- Enter error code
- Category
- Technique
- System
- Subsystem
- Enter error code
- Matching codes
- Posible Solution or PDF document
- Doesn't work
- Check steps
- Try another guide
- Send comment
- Solved
### System Description
- Rol
- Administrator
- Manager
- User
- Components
- Web App: For administrators and managers
- Api Rest: Different operations with different access levels. Connects to server database
- Mobile App: For Users. With internal database.
- Multilanguaje
- English by default
- User add file to adding another language
- Network
- Inside Intranet, don't access internet
- Offline
- First Download from intranet
- Upgrading information asynchronously once it has access to the intranet
### Mobile App
- Login
- Is first time
- Yes -> Sync
- No -> Upgrade
- Offline
- New Search
- Documents
- History Flows
-
Document as BLOB
- Room
- https://stackoverflow.com/a/46356934
- https://developer.android.com/reference/androidx/room/ColumnInfo
- https://developer.android.com/reference/java/sql/Blob
- CouchDB
- https://docs.couchbase.com/couchbase-lite/current/android/replication.html
- https://docs.couchbase.com/couchbase-lite/current/android/quickstart.html
- https://docs.couchbase.com/couchbase-lite/current/android/blob.html
Reunión JaviG 20210922
Montar aplicativo de escritorio con Couch y Pouch.
App
- Sync PC -> Movil
- Fuera app
- Transferir archivo cifrado db pouch a dispositivo móvil a ruta concreta
- 1. Lectura de archivo cifrado tipo .db pouch colocado en ruta concreta de dispositivo
- 2. Moverlo a ruta interna de la app
- 3. Descifrar archivo
- 4. Cargar db actualizada
- Sync Movil -> PC
- 1. Cifrar archivo actual .db
- 2. Mover archivo a memoria externa en ruta concreta de dispositivo
- Fuera app
- Transferir archivo cifrado db pouch a pc desde ruta concreta
# Siemens EIDS
## Flujo completo del sistema

## Solución de sincronización y feedback
Flujo de trabajo entre aplicación de escritorio (SO Windows o Linux) con CouchDB y aplicación móvil (Android) con PouchDB a través de transferecia manual de archivos.
1. Aplicación de Escritorio genera archivo cifrado PouchDB y mediante transferencia lo ubica en una ruta concreta del directorio de carpetas público del dispositivo Android.
- Desde la aplicación móvil, iniciamos el proceso de sincronización de la PouchDB que consiste en:
- Mueve el archido desde la ruta del directorio público al privado de la aplicación
- Descrifra el archivo
- Carga el archivo como PouchDB de trabajo
2. Técnico hace uso de la aplicación, realizando flujos de trabajo o dándo feedback para mejorar, modificar o sugerir cambios.
3. Este trabajo provoca cambios en la PouchDB. En el momento en que el técnico quiera volcar la información a la aplicación de escritorio, debe conectar el dispositivo móvil al mismo y comenzar el flujo de consagración de datos.
- La aplicación móvil cifra la PouchDB actualizada y la mueve desde el directorio privado de la aplicación a la ruta pública concreta.
4. Se realiza la transferencia del archivo cifrado a PC, y la aplicación de escritorio descifra este archivo y sincroniza los cambios con la CouchDB.
- Una vez finalizado este proceso, puede generar un nuevo archivo PouchDB actualizado y volver a comenzar el proceso de sincronización.
[](https://mermaid-js.github.io/mermaid-live-editor/edit#eyJjb2RlIjoiXG5zZXF1ZW5jZURpYWdyYW1cbiAgICBhdXRvbnVtYmVyXG4gICAgTm90ZSBsZWZ0IG9mIERlc2t0b3A6IENyZWF0ZSBuZXcgUG91Y2hEQiBmaWxlIGFuZCBlbmNyeXB0IGl0XG4gICAgRGVza3RvcC0-Pk1vYmlsZTogVHJhbnNmZXIgZW5jcnlwdGVkIFBvdWNoREIgZmlsZSBvbnRvIHNwZWNpZmljIG1vYmlsZSBwdWJsaWMgcGF0aCBcbiAgICBOb3RlIHJpZ2h0IG9mIE1vYmlsZTogTW92ZSBmaWxlIGZyb20gcHVibGljIHBhdGggdG8gcHJpdmF0ZSBwYXRoXG4gICAgTm90ZSByaWdodCBvZiBNb2JpbGU6IERlY3J5cHQgUG91Y2hEQiBmaWxlIGFuZCBsb2FkIGRhdGFiYXNlIG9uIEFwcFxuICAgIGxvb3AgVGVjaG5pY2lhbiB3b3JrcyBvbiBBcHBcbiAgICAgICAgTW9iaWxlLT4-TW9iaWxlOiBGbG93cyBuYXZpZ2F0aW9uIGFuZCBmZWVkYmFja1xuICAgICAgICBNb2JpbGUtPj5Nb2JpbGU6IFVwZGF0ZWQgUG91Y2hEQlxuICAgIGVuZFxuICAgIE5vdGUgcmlnaHQgb2YgTW9iaWxlOiBFbmNyeXB0IFBvdWNoREIgZmlsZSBhbmQgbW92ZSBvbnRvIHB1YmxpYyBzcGVjaWZpYyBwYXRoXG4gICAgTW9iaWxlLT4-RGVza3RvcDogVHJhbnNmZXIgdXBkYXRlZCBlbmNyeXB0IFBvdWNoREIgZmlsZVxuICAgIE5vdGUgbGVmdCBvZiBEZXNrdG9wOiBEZWNyeXB0IFBvdWNoREIgYW5kIHN5bmMgd2l0aCBDb3VjaERCIGRhdGFiYXNlXG4gICAgTm90ZSBsZWZ0IG9mIERlc2t0b3A6IFR1cm5zIHRvIDFcblxuIiwibWVybWFpZCI6IntcbiAgXCJ0aGVtZVwiOiBcImRlZmF1bHRcIlxufSIsInVwZGF0ZUVkaXRvciI6ZmFsc2UsImF1dG9TeW5jIjp0cnVlLCJ1cGRhdGVEaWFncmFtIjpmYWxzZX0)