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

  • 818