Archireport
ROADMAP TECHNIQUE 2019 - 2020
Challenges
- Migration technique de l'application web
- Découpage de l'API Web (usage interne / externe - partenaires)
- Déploiement d'Archireport Live - nouvelles fonctionnalités (Offline - Chat)
Application Web
- Framework obsolète (AngularJS)
- Build plus adapté
- Pb de performance
- Beaucoup de logique métier côté client
- Pas de reporting des anomalies côté client
- Repartir sur une base saine
- Éviter l'effet tunnel
- API efficace pour les besoins du front
Application IOS
- Language obsolète (Objective-C)
- Modèle de données différent
- Synchro lente
- Migrer la BDD en NoSql
- Migrer le Model en Swift
- Migrer les UI progressivement
- Synchro en tache de fond
Organisation
Arnaud
Simon
Mode Projet
Dev
Mickael
Lead Tech
Ju/Mo ?
PO
- Découpage en features + Démos (2 semaines)
- Démarrer au + vite sur la visite de chantier
- Ouverture en bêta aux utilisateurs
Stack Technique
- React
- TypeScript
- API GraphQL
- Storybook
- Apollo
- Styles Components
- Sentry
Bénéfices
- Simplifier l'application web et l'API
- Travailler sur des technos actuelles (reste l'app Electron)
Clients
- Application plus performante
- Application plus sûre (documents s3 / contrôles d'accès)
Équipe
Archireport Live
Faciliter la collaboration entre les artisans, clients ... et la maitrise d'oeuvre
- Chat
- Notifications
- Offline
PouchDb, Realm ... peu compatible avec les partages de données (projet)
AppSync
- Temps réel (subscription)
- Delta sync
- Offline
Migration sur AWS
- Utiliser AppSync
- Utiliser les services managés / serverless (vs maintenance serveur)
- Profiter de d'autres sources de stockage (DynamoDB / DocumentDB / Serverless Aurora)
- Déployer des api dédiés partenaires (avec API Key + limite d'usage)
- Orchestrer les services (Files de messages)
Architecture micro service
Timeline
ar web beta
09/2019
Gandi -> AWS
Arlive Appsync
ar web
Arlive Chat ?
ar electron
ar ios
Architecture Cible
Cloudfront
s3
AppSync
CouchDb
lambda authent
api gateway
lambda projet
lambda group
lambda chat
dynamo
SNS
Reflexions
Mise à jour BDD
-
Subdiviser certains objets (Subwork, Remarks)
- permettre l'accès direct, limiter le poids des docs et nombre de révisions
- Optimiser certains objets (HiddenWork, Presences)
-
Intérêt de mettre la ref et l'index dans l’enfant et enlever la référence dans le parent
- Comment gérer la suppression (index « -1 »)
- Comment gérer l’ordonnancement des actors dans les projets
- Archi compatible avec le listing des remarques (par partie)
- Pouvoir sortir des KPI
- Approche de la synchro (date de dernière modification)
Pistes
- Utiliser des documents pour gérer les associations 1-N et N-N
- Typer les documents dans une même base
- Ordonnancement : générer des strings intermédiaires
- Déplacement de c entre a et b : a<b<c vers a<aa<b (un update)
- Utiliser une vue pour regrouper/trier les remarques par acteur, lot ... (générer clé composite + utiliser start_key / end_key / limit) - en préfixant / suffixant les clés
- Champ deleted + partial index
Questions, remarques, commentaires ?
Archireport
By Mickael Lecoq
Archireport
- 809