Structure du projet

HaïtiWater est un projet Django et utilise l’architecture MVC.

Arborescence Générale

HaitiWater/code/haitiwater
├── apps
├── haitiwater
├── static-common
├── templates
├── initial_data.json
├── manage.py
└── requirements.txt

haitiwater - Fichiers Django

manage.py est le fichier à partir duquel vous interagissez avec Django.

HaitiWater/code/haitiwater/haitiwater
├── settings.py
├── urls.py
└── wsgi.py
Le dossier haitiwater contient les fichiers de base de Django, tout particulièrement:
  • settings.py : contient les informations de connexion aux services (base de données, serveur mail, serveur hôte, etc)
  • urls.py : contient les règles de résolution URL de base. Les pages menant à des modules de l’application sont redirigées vers des fichiers urls.py propres à chaque module.

apps - Modules

Les applications continennet les différents modules d’HaïtiWater.

Haitiwater/code/haitiwater/apps
├── administration
├── api (communications AJAX serveur/client)
├── authentication (utilisateurs)
├── consumers (consommateurs)
├── dashboard (page d'accueil)
├── financial (finances des consommateurs)
├── log (logging des actions)
├── offline (quand l'application est hors-ligne)
├── report (rapports mensuel et technique
├── utils (utilitaires du serveur)
├── water_network (réseau de distribution d'eau potable)
└── zone_management (gestion de zone)

Chaque module a une structure de type

module
├── classes
├── migrations
├── static
├── templates
├── test
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── urls.py
└── views.py

Veuillez vous référer à la documentation Django pour comprendre la structure générale des applications [1]

static-common - Fichiers statiques généraux

Haitiwater/code/haitiwater/apps
├── images
├── javascripts
├── stylesheets
└── vendor
  • images contient les ressources graphiques du serveur (favicon, logo)
  • javascripts contient les javascripts réutilisés à travers l’application. Les scripts utilisés par une application sont dans le dossier ´´śtatic´´ de l’application (module) correspondante.
  • stylesheets contient les fichiers CSS
  • vendor contient les librairies utilisées par l’application en front-end.

La totalité des librairies utilisées par l’application devrait être servie par le serveur et non pas par des CDN externes afin d’optimiser les téléchargements.

templates - Gabarits généraux

Le fichier templates contient les gabarits Django réutilisés à travers l’application. On y trouve les menus, graphes et le fichier base.html étendu par tous les modules de l’application.

[1]https://docs.djangoproject.com/fr/2.1/intro/overview/