Ci-dessous une proposition de readme pour tout projet
Dans cette section, on décrit la vision générale du projet ainsi que ses objectifs à destination des futurs utilisateurs et des développeurs.
Pour ce dépôt :
Ce dépôt permet de répertorier les différents éléments essentiels dans un dépôt SIDC :
- ce ReadMe
- des modèles de tickets type pour des ajouts de fonctionnalité, réparation de bug, ajout de documentation, maintenance/montée de version...
- des milestones témoins (ex: backlog, sprint1...)
- des exemples de github Actions CI/CD (lancement de test, build d'images...)
- des exemples de label pour les futurs tickets
La procédure d'installation du projet doit être décrite dans cette section ou dans un fichier complémentaire dont le lien est présent ici.
Lien vers la documentation pour les développeurs, à la fois pour maintenir le projet, le déployer et ajouter de nouvelles fonctionnalités. Schémas UML...
Espaceco est une application mobile IGN construite avec React 19, TypeScript et Capacitor 8. Le projet suit une architecture en couches avec des règles de dépendances strictes :
src/: code source de l'application (voir détail ci-dessous)android/: projet natif Android généré par Capacitorios/: projet natif iOS généré par Capacitorpublic/: fichiers statiques servis par Vitedocs/: documentation du projet (conventions de commit, etc.)tests/: scripts et explications pour lancer les testspackage.json: dépendances et scripts npmcapacitor.config.ts: configuration Capacitorvite.config.ts: configuration du bundler Viteeslint.config.js: configuration ESLintREADME.md: ce fichier
L'application suit le pattern suivant :
-
app/: shell de l'applicationApp.tsx: composant racineproviders/: providers React (Auth, i18n, Query, Theme)router/: configuration du routage et guards d'authentification
-
domain/: logique métier pure (sans dépendances externes)auth/: modèles d'authentificationcontribution/: modèles de contributions géographiquesmap/: modèles cartographiquesuser/: modèles utilisateur- Principe : cette couche ne dépend d'aucune autre couche
-
infra/: implémentations concrètes et adaptateursauth/: API et stockage de session d'authentificationcontribution/: API, repository et queue de contributionshttp/: client HTTP et API IGNmap/openlayers/: implémentation cartographique avec OpenLayerspersistence/: stockage local (SQLite, Preferences, Settings)sync/: gestion de la synchronisation réseau- Principe : implémente les ports définis dans
domain/
-
platform/: wrappers des APIs natives Capacitorapp/: lifecycle de l'applicationdevice/: APIs appareil (caméra, fichiers, géolocalisation, permissions, partage)- Principe : abstraction des capacités natives sans logique métier
-
features/: modules fonctionnels (UI + orchestration)- Chaque feature suit la structure :
pages/,components/,hooks/,state/ auth/: authentification et logincontribution/: création et gestion des contributionsmap/: visualisation cartographiqueonboarding/: parcours d'introductionsettings/: paramètres de l'applicationwelcome/: écran d'accueilabout/: à propos de l'application- Principe : orchestre les couches domain/infra/platform
- Chaque feature suit la structure :
-
shared/: éléments transverses réutilisablesui/: composants UI génériques (Button, Loading, Sheet, Toast)hooks/: hooks React partagésutils/: utilitaires (date, assertions)
-
styles/: styles globaux et tokens de designglobal.css: styles CSS globaux
-
assets/: ressources statiques (images, icônes) -
main.tsx: point d'entrée de l'application React
Ici on met la liste des personnes qui travaillent sur ce projet et le maintiennent à jour.
| Nom | Prénom | fonction | |
|---|---|---|---|