Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Userguide update #66

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions base/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
]

operations = [
migrations.CreateModel(
name='Commune',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('commune', models.CharField(unique=True, max_length=45, verbose_name='Commune')),
('description', models.TextField(blank=True, max_length=100, verbose_name='Description')),
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
],
),
migrations.CreateModel(
name='Departement',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('departement', models.CharField(max_length=40, verbose_name='Departement')),
('description', models.TextField(blank=True, max_length=100, verbose_name='Description')),
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
],
),
migrations.CreateModel(
name='PersonneContact',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('nomPersonne', models.CharField(max_length=45, verbose_name='Nom')),
('prenomPersonne', models.CharField(max_length=45, verbose_name='Prenom')),
('telephoneBureau', models.CharField(blank=True, max_length=45, verbose_name='Telephone (Bureau)')),
('telephonePersonnel', models.CharField(unique=True, max_length=45, verbose_name='Telephone (Personnel)')),
('emailPersonnel', models.CharField(blank=True, max_length=45, verbose_name='Email (Personnel)')),
('adressePersonnelle', models.CharField(blank=True, max_length=45, verbose_name='Adresse (Personnlle)')),
('nif', models.CharField(unique=True, max_length=45, verbose_name='NIF/CIN')),
('dateEmbauche', models.DateField(verbose_name="Date d'embauche")),
('isactif', models.BooleanField(verbose_name='Active')),
],
),
migrations.CreateModel(
name='Poste',
fields=[
('nomPoste', models.CharField(verbose_name='Poste', unique=True, max_length=45, serialize=False, primary_key=True)),
('description', models.CharField(max_length=45, verbose_name='Description')),
],
),
migrations.CreateModel(
name='SectionCommunale',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('sectionCommunale', models.CharField(max_length=45, verbose_name='Section Communale')),
('nomOfficiel', models.CharField(blank=True, max_length=45, verbose_name='Nom officiel')),
('description', models.TextField(blank=True, max_length=100, verbose_name='Description')),
('id_code', models.CharField(unique=True, max_length=7, verbose_name='Code')),
('commune', models.ForeignKey(to='base.Commune', verbose_name='Commune')),
],
),
migrations.CreateModel(
name='SiteSentinelle',
fields=[
('id', models.AutoField(verbose_name='ID', auto_created=True, serialize=False, primary_key=True)),
('localite', models.CharField(max_length=45, verbose_name='Localite')),
('latitude', models.DecimalField(max_digits=8, decimal_places=2, verbose_name='Latitude', default=0)),
('longitude', models.DecimalField(max_digits=8, decimal_places=2, verbose_name='Longitude', default=0)),
('hauteur', models.DecimalField(max_digits=8, decimal_places=2, verbose_name='Hauteur', default=0)),
('sectionCommunale', models.ForeignKey(to='base.SectionCommunale', verbose_name='Section Communale')),
],
),
migrations.AddField(
model_name='personnecontact',
name='nomPoste',
field=models.ForeignKey(to='base.Poste', verbose_name='Poste'),
),
migrations.AddField(
model_name='commune',
name='departement',
field=models.ForeignKey(to='base.Departement', verbose_name='Departement'),
),
]
176 changes: 132 additions & 44 deletions docs/source/conception_analysis.rst
Original file line number Diff line number Diff line change
@@ -1,85 +1,173 @@
.. _conception_analysis:

===================================
***********************************
Document de Conception et d'analyse
===================================
***********************************

Document de Conception et d'analyse sur:

Application de gestion des collectes pluviométriques et des rapports des différents types de Marche en Haïti.

* Application de gestion des collectes pluviométriques. *

Sommaire
========


Avant-propos
* Avant-propos
* Introduction
* Présentation

Introduction
-------------
1. Le projet
2. Les fonctionnalités du projet
3. Objectifs du projet
4. Les technologies utilisées

I_ Présentation
* Analyse

Le projet
Les différents types d’applications
Les fonctionnalités du projet
Objectifs du projet
Les technologies utilisées
1. Choix des technologies
2. Structure du projet
3. Application Gestion de Données Pluviométrique

II_ Analyse

Choix des technologies
Structure du projet
Application Gestion de Données Pluviométrique
Application Gestion de Données de Base
* Conception

III_ Conception

Architecture du projet
Modèle de Base
Les interactions
Différents types d’acteurs
Administrateur/utilisateurs
Collecteurs/Administrateur
Conclusion
Annexe
1. Architecture du projet
2. Modèle de Base
3. Les interactions


* Annexe


Avant-propos
------------
============

Créé en 1996, après l’échec des interventions massives d’aide alimentaire, au lendemain des réflexions et préoccupations soulevées par la préparation du sommet mondial de l’alimentation qui s’est tenu en novembre1996,La Coordination nationale de la sécurité alimentaire (CNSA) s’est donne pour objectif d’assurer l’harmonisation des interventions intersectorielles et interinstitutionnelles sur les problématiques complexes de politique alimentaire, de renforcement de la sécurité alimentaire et de gestion des risques.
Créé en 1996, après l’échec des interventions massives d’aide alimentaire, au lendemain des réflexions et préoccupations soulevées par la préparation du sommet mondial de l’alimentation qui s’est tenu en novembre 1996,La Coordination Nationale de la Sécurité Alimentaire (CNSA) s’est donnée pour objectif d’assurer l’harmonisation des interventions intersectorielles et inter-institutionnelles sur les problématiques complexes de politique alimentaire, de renforcement de la sécurité alimentaire et de gestion des risques.

Elle présente une structure étatique à trois niveaux. Tout d’abord, elle est coiffée par le Conseil interministériel de la sécurité alimentaire (CISA), qui représente le niveau décisionnel, est présidé par le ministre de l'agriculture. La CNSA elle-même, qui est le niveau technique, comprend la Coordination, une administration et un département technique. Le Conseil consultatif de la sécurité alimentaire, le troisième niveau, est ouvert à tous les autres acteurs de la société civile impliqués dans le secteur.
Elle présente une structure étatique à trois niveaux. Tout d’abord, elle est coiffée par le Conseil interministériel de la sécurité alimentaire (CISA), qui représente le niveau décisionnel, qui est présidé par le ministre de l'agriculture. La CNSA elle-même, qui est le niveau technique, comprend la Coordination, une administration et un département technique. Le Conseil consultatif de la sécurité alimentaire, le troisième niveau, est ouvert à tous les autres acteurs de la société civile impliqués dans le secteur.

(ajout de l’aide des stagiaires dans l’avancement du projet de la cnsa)
De ce fait, La CNSA, niveau technique en partenariat avec la CFR (Code For Résilience)qu’est une ?????? que la banque mondiale a mis sur pied dans le but de créer des groupes de programmeurs pouvant subvenir aux différents besoins techniques des organisations haïtiennes. Dans la même lancée nous (les 5 stagiaires (1)) avons été recrutés pour développer une application qui répondra à quelques difficultés techniques retrouvées au niveau de la CNSA.


Introduction
------------
============

La technologie au sein des entreprises et institution en Haïti se développe de jour en jour et une certaine automatisation des différentes données informatiques et analytiques dans certains secteurs sont maintenant disponibles. L’utilisation des interfaces web sont de plus en plus dense et les entreprises Haïtiennes se mettent à la disposition du public en exploitant la technologie la plus utilisée partout ailleurs, l’internet.

La technologie au sein des entreprises et institution en Haïti se développe de jour en jour et une certaine automatisation des différentes données informatives et analytiques dans certains secteurs sont maintenant disponible. L’utilisation des interfaces Web sont de plus en plus dense et les entreprises Haïtiennes se mettent a la disposition du public en exploitant la technologie la plus utilisée partout ailleurs, l’internet.
Dans ce contexte, la Coordination Nationale de la Sécurité Alimentaire (CNSA) avec l’aide de la CFR décide de mettre sur pied un projet d’ application de gestion des collectes de données pluviométriques et des rapports des différents types de Marché afin d’atteindre certains objectifs qu’elle s’est fixée dans le cadre de sa mission.Ceux-ci consistent à influencer les politiques publiques de façon à améliorer les conditions de sécurité des aliments pour favoriser le développement alimentaire en Haïti.

Dans ce contexte, la Coordination Nationale de la Sécurité Alimentaire (CNSA) décide de mettre sur pied un projet d’ application de gestion des collectes de données pluviométriques et des rapports des différents types de Marché afin d’atteindre certains objectifs qu’elle s’est fixée dans le cadre de sa mission, qui consiste a influencer les politiques publiques de façon a améliorer les conditions de sécurité des aliments pour favoriser le développement alimentaire en Haïti.
Ce document prend en compte une des parties du projet reliée sur la collecte de données pluviométriques. Durant trois mois, l’équipe de stagiaire aura à la développer et la perfectionner suivant les recommandations faites par les responsables de la CNSA durant les différentes rencontres que nous avons effectuées.
l’analyse faite par les responsables des deux groupes c-a-d la banque mondiale via la CFR et la CNSA nous ont menés à l’utilisation des technologies open-source citées ci- dessous qui ont été un grand atout pour le développement et la concrétisation de ce projet.

(comment ajouter le lien entre les stagiaires, au sein de cette institution?)
Ce document prend en compte de faire l’analyse et de présenter certains modules du projet sur lequel la dite institution (qui nous a engage?)
(notre boulot dans tout cela)
*Présentation*

I_ PRESENTATION
---------------
Le Projet
---------

Ce projet du nom smslapli est une application web qui s'occupe principalement de la gestion de collecte de données liées à la pluie et à l'alimentation.
En Haïti ces deux-là sont très liées. Pour gérer leur plantation et la cultiver jusqu’à la récolte, les agriculteurs et les paysans utilisent majoritairement l’eau de pluie.
Ce qui amène à dire que dans les saisons pluvieuses la récolte est abondante et dans les saisons sèches celle ci est assez maigre ou quasi inexistante.

Projet
------
Donc la CNSA avec l’application smslapli(2) sera en moyen de faire un rapport automatique des différentes données collectées et enregistrées dans les différents départements par des agents ou collecteurs formés et équipés,
et ainsi elle pourra avoir l’oeil sur les différents changements sur ce sujet.

Ce projet ci contre se présente sous forme de différents types de modules (voir mon carnet)

Les fonctionnalités du projet
------------------------------

Ce projet se présente sous la forme de différents modules indépendants et liés s'occupant chacun d'une partie de l'application web entière.
Dans ce document nous allons porter l'accent sur les modules qui se rapprochent beaucoup plus à la collecte de données Pluviométriques qu’à ceux du Prix de Marché.

Les différents types d’application
Cette partie est formée de deux blocs de données du nom : Structure de Base et collecte Pluviométrique. chacun d’entre eux sont constitues de liens spécifiques qui reçoivent et enregistrent les différentes données envoyées par les collecteurs ou par un des responsable de la CNSA.

Cette application web a donc deux interfaces. Une interface publique pour les utilisateurs désireux d’être informés sur les multiples travaux de la CNSA et sur les rapports de collecte effectuée par cette dernière.
Une interface d’administration qui permet de faire la gestion des données collectées, de faire les rapports de ces données, de gérer les agents de terrain et les équipes de la CNSA etc. En gros c'est cette partie qui forme le moteur du projet en soi.
c'est aussi dans cet interface qu'il y a possibilité de voir les différentes applications qui forment ensemble l'application web qu’est le projet nommé "smslapli".

Les applications

Objectifs du projet
-------------------
L'objectif du projet est de faciliter la collecte et le partage des données au sein de la CNSA.
Cet objectif sera atteint à travers les fonctionnalités suivantes:

Gestion des Observatoires
Gestion des Sites sentinelles
Gestion des Indicateurs
Gestion des pluviomètres
Gestion des collectes
Recherche par critère
Gestion des Graphs
Gestion des cartographies
Gestion des utilisateurs
Gestion des privilèges


Les technologies utilisées
--------------------------
Pour arriver à la concrétisation de ce projet, Les spécialistes ont du se mettre d'accord sur les technologies à utiliser. De même, qu'on le sait, les types de technologies pouvant accomplir de telles tâches sont nombreuses.
Pour cela ils ont dû se tourner vers les logiciels dit «open source» très puissant et assez simple à manipuler.
Tout en tenant compte des objectifs fixés ils ont alors placé leur choix sur celles déjà utilisées auparavant et ayant fait leur preuve au sein des entreprises.
Là encore le choix est encore vaste, Cependant la technologie ne cesse d’avancer il va falloir avancer avec en comparaison a l’avancement de celle ci le choix a été très vite fixé.


* Analyse *
***********

Avant même de citer les différents choix fixés, il va falloir faire un état des lieux en expliquant tout d’abord, le processus de l’acheminement des données collectées vers le bureau central de la CNSA.

Tout d’abord les pluviomètres sont placés dans chaque section communale de chaque commune des départements de la ville d ’ Haïti. Un collecteur part recueillir les données qui s’y trouvent, les note sur le formulaire que son chef de section lui a soumis et les lui ramène. À son tour le responsable de commune l’envoie à son responsable de département qui l’expédie au bureau central se trouvant dans le département de l’Ouest. Toute cette passe passe de formulaire consomme un temps fou sans autant mettre de côté les possibilités de perte de données ou même de données erronées.

Choix des technologies
----------------------
La concretisation du projet a ete possible grace a l'utilisation des logiciels suivants:

* Django
* PostgreSQL
* RapidSMS
* Kannel
* Ansible
* Vagrant


Structure du projet
-------------------
Étant donné que c'est à partir du framework Django qu'il a été créé, il suit alors la structure imposée par celui là. de ce fait, il se présente sous forme d'un grand projet possédant divers types d’applications qui chacun se charge d'accomplir l'objectif fixé pour le projet en soi.


Application Gestion de Données Pluviométrique
---------------------------------------------
.. image:: _static/images/pluviometrie.png
:align: center


*Conception*
*************
Dans le but d'ameliorer le processus pour la collecte de donnees, l'application smslapli ajoute en plus de lascencement du formulaire comme vu auparavant, il permet egalement un enregistrement automatique de ces donnees par les collecteurs a partir d'un simple telephone portable.


Architecture du projet
----------------------

Le projet est une application web possédant deux interfaces; une interface publique qui sera pour tout le monde, pour leur permettre de s'informer, et une interface admin pour ceux qui auront des droits à l'interne.

.. image:: _static/images/.png
:align: center

.. image:: _static/images/.png
:align: center

Modèle de Base
--------------

.. image:: _static/images/.png
:align: center


Les interactions
----------------




*Annexe*
*********
4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

import sys
import os
import sphinx_rtd_theme


# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
Expand Down Expand Up @@ -99,7 +99,7 @@

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'sphinx_rtd_theme'
html_theme = 'default'

# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
Expand Down
Loading