Initial LinkedSign platform
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# LinkedSign Android
|
||||
|
||||
Aplicación móvil Android de LinkedSign construida con Expo + React Native. Esta app complementa a la versión web y usa el mismo backend.
|
||||
|
||||
## Objetivo
|
||||
|
||||
- compartir autenticación con la app web
|
||||
- guardar la sesión localmente en el teléfono
|
||||
- mantener cache local para trabajo móvil
|
||||
- sincronizar documentos, certificados y firmados solo cuando el usuario lo solicite
|
||||
|
||||
## Alcance actual
|
||||
|
||||
- login
|
||||
- registro
|
||||
- aviso de verificación por correo
|
||||
- dashboard con estado de sincronización
|
||||
- documentos originales y firmados
|
||||
- subida de PDF original
|
||||
- descarga y compartir documentos firmados
|
||||
- certificados
|
||||
- subida de `.p12` / `.pfx`
|
||||
- firmado básico usando la configuración visual ya guardada por el usuario
|
||||
- perfil y solicitud de cambio de contraseña
|
||||
- base local SQLite para cache
|
||||
|
||||
## Cómo se complementa con la web
|
||||
|
||||
- la web sigue siendo el cliente principal para flujos avanzados
|
||||
- Android usa el mismo usuario, misma contraseña y mismo backend
|
||||
- la sesión se guarda en el teléfono con `expo-secure-store`
|
||||
- los datos de negocio no se sincronizan solos: el usuario decide cuándo sincronizar
|
||||
- el estilo visual de firma se toma del backend, por lo que si lo cambias en la web también se usa al firmar desde Android
|
||||
|
||||
## Estructura
|
||||
|
||||
```text
|
||||
android/
|
||||
App.js
|
||||
app.json
|
||||
package.json
|
||||
src/
|
||||
api/
|
||||
components/
|
||||
config/
|
||||
context/
|
||||
navigation/
|
||||
screens/
|
||||
storage/
|
||||
theme/
|
||||
utils/
|
||||
```
|
||||
|
||||
## Configuración
|
||||
|
||||
La URL del backend se define en [app.json](/home/mgonzalez/desarrollo/react/linkedsign/android/app.json) y puede sobreescribirse con `EXPO_PUBLIC_API_BASE_URL`.
|
||||
|
||||
Valor actual:
|
||||
|
||||
```json
|
||||
{
|
||||
"expo": {
|
||||
"extra": {
|
||||
"apiBaseUrl": "http://192.168.222.72:4000"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Ejecutar
|
||||
|
||||
```bash
|
||||
cd /home/mgonzalez/desarrollo/react/linkedsign/android
|
||||
npm install
|
||||
npm run start
|
||||
```
|
||||
|
||||
Para compilar o abrir en Android:
|
||||
|
||||
```bash
|
||||
npm run android
|
||||
```
|
||||
|
||||
## Sincronización
|
||||
|
||||
La app guarda cache local en SQLite para:
|
||||
|
||||
- perfil
|
||||
- documentos originales
|
||||
- certificados
|
||||
- documentos firmados
|
||||
- fecha de última sincronización
|
||||
|
||||
La sincronización se ejecuta manualmente desde la app. Eso evita sobreescribir datos locales o consumir red sin que el usuario lo pida.
|
||||
|
||||
## Notas
|
||||
|
||||
- La confirmación de correo y el cambio de contraseña se validan contra el mismo backend de LinkedSign.
|
||||
- La validación del enlace de correo puede abrirse en navegador si el enlace apunta al frontend web.
|
||||
- Para una prueba real en dispositivo, el teléfono debe poder alcanzar la IP del backend.
|
||||
- Este cliente no reemplaza la web; la complementa con acceso móvil, cache local y sincronización bajo demanda.
|
||||
Reference in New Issue
Block a user