Vous êtes sur la page 1sur 40

Rapport de stage de fin d’étude

Application Mobile Android :

Lieu de stage : LYDEC, siège social, rue Diouri

Encadré par : Mr.El Mektoubi Abdessamad

Réalisé par : Mlle. Bouchta Oumaima

1
Remerciements :
Je tiens à remercier dans un premier temps, et à témoigner toute ma
reconnaissance aux personnes suivantes, pour l’expérience
enrichissante et pleine d’intérêt qu’elles m’ont fait vivre durant ce
stage au sein de la Lyonnaise des Eaux de Casablanca.

Mr. HOUDAYJI SAAD, pour m’avoir intégré rapidement au sein de


l’entreprise et m’avoir accordé toute sa confiance, et mon encadrant
MEKTOUBI ABDESSAMAD, pour le temps qu’il m’a consacré tout
au long de cette période, sachant répondre à toutes mes
interrogations; sans oublier sa participation au cheminement de ce
rapport.

Je tiens à remercier tout particulièrement toute l’équipe pédagogique


de l’institut Spécialisé de gestion et d’informatique.

Un grand merci pour ma famille, pour leur grand soutien.


J’adresse mes remerciements aussi à mon prof Mr Maaroufi pour son
aide et ses conseils.
Je remercie une autre fois vivement et sans exception les membres
de la DSI (Direction des Systèmes d’Information), Pour leurs
chaleureux accueils, leurs conseils et surtout leurs soutiens.

Bouchta Oumaima

2
Remerciements ……………………………………………………………………………..2

Liste des figures……………………………….………………………………………...........4

Introduction ……………………………….…………………………………..…..…..……5

Bibliographie………………………..………………………………………………………38

Conclusion……………………………………………………………….…………….……39

…………………………………………………………………………..…..6

+presentaion de la lydec :………………………………………………………..…6

CHAPITRE2

+description du projet……………………………………………………………..9

+objectif du projet………………………………………………………………….9

+définition du besoin………………………………………………………………9

+explication du fonctionnement de l’application………………………………..10

+fonctionnement de l’application…………………………………………………12

+conception……………………………………………………………………….13-14

+définition d
Android…………………………………………………………………….…15

+ Les outils et la méthodologie utilisée dans la réalisation du projet..16-.17-18

+la réalisation du projet………………………………………….………21-37

3
Organigramme général de la lydec…………….7

Organigramme de la DSI………………………..8

Schéma descriptif de l’application……….……11

Fichier généré par BackOffice…………………16

Classe qui contient et explique l’ordre des informations du fichier..17

Méthode clarifiant l’ordre de ces informations……………..18

Interface login et logo………..…………..……………….…21-22

Interface gestion des lots………………………………………23-24

Interface récapitulatif global……………………………..……25

Interface liste des compteurs……………………………..……26

Interfaces saisie des indexes……………………………..……27-28

Interface menus……………………………………………...……29-30

Interface cycles……………………………..……………………..31

Interface détail compteur……………..…..……………………..32

Interface releveurs……………………………..………………….33

Interface informations du releveur………………………………34

Interface mise a jour nouveau releveur…………….……...35-36-37

Diagramme de cas d’utilisation…………………………………….13

MCD…………………………………………………………………14

4
Dans le cadre de mes études à l’institut spécialisé de gestion et d’informatique, j’ai effectué
un stage de fin d’étude au sein de la Lyonnaise des Eaux de Casablanca, dans le but de
renforcer et compléter mes acquis théoriques ainsi que faciliter l’intégration dans le
domaine professionnel.

Le sujet du projet de mon stage traite le développement d’une application mobile Android
sous le thème : « La relève des indexs des clients ».

Pour souligner les grandes étapes du projet, je vous propose quatre chapitres :

ganisme
d’accueil « la Lydec ».

j’expliquerai la problématique ainsi que le cadre du projet et ses objectifs.

et la méthodologie utilisée pour


clarifier et expliquer le fonctionnement en plus d’une présentation des Framework et
outils utilisés.

œuvre et la réalisation du projet. Enfin, une


conclusion pour dresser le bilan de ce travail.

5
Chapitre 1
1-presentation de la société d’accueil : LA LYDEC
LYDEC est le fruit de la fusion du groupe industriel franco-belge Suez avec la Lyonnaise
des Eaux, spécialisée dans la distribution d’eau et les services d’assainissement.

Cette section présente l’organisme d’accueil de la LYDEC, ses activités et son organisation.

LYDEC, acronyme de « Lyonnaise des Eaux de Casablanca », est la filiale marocaine de la


branche Environnement du groupe Suez, qui est un groupe industriel de services franco-
belge, opérant dans les domaines de l’énergie et de l’environnement.

En 1997, le groupe Suez a fusionné avec la Lyonnaise des Eaux pour donner naissance à
LYDEC.

Depuis, cet organisme s'occupe de la concession des réseaux de distribution d’eau,


d’électricité, d’assainissement liquide et d’éclairage public pour l'agglomération de
Casablanca à travers un contrat de gestion déléguée, d’une durée de 30 ans, passé avec la
municipalité.

Son effectif est de 3 580 employés, son chiffre d’affaires à fin décembre 2014 s’élève à 6
827 Md. Cinq millions d'habitants bénéficient des services de Lydec.

A ce jour, LYDEC couvre les communes urbaines de Casablanca, Mohammedia, Aïn


Harrouda et les 14 communes rurales de la Wilaya de Casablanca, faisant ainsi bénéficier
quatre millions et demi d’habitants de ses services.

En 2005, LYDEC marque son entrée en bourse marocaine. Le groupe Suez détient désormais
51% du capital de la société aux côtés d’investisseurs institutionnels marocains, RMA
Watanya et Fipar Holding (groupe Caisse de Dépôt et de Gestion) ainsi que du grand public.

6
Organigramme général de la lydec
LYDEC s’organise en plusieurs directions gérées par la direction générale.

La figure de la page suivante représente l’organigramme général de la LYDEC.

7
Organigramme de la DSI
La figure suivante représente l’organisation de la direction des Systèmes d’Informations,

au sein de laquelle s’est déroulé ce stage :

8
Chapitre 2
1-1 : Description du projet Android à réaliser :
Nom du projet: la relève des indexes clients

Type du projet: projet informatique au sein de la DSI

Package d’application Android : ma.lydec.android.client

Coté graphique : les couleurs du logo LYDEC

1-2 objectif du projet


->faciliter les taches de la tournée aux releveurs, par une application mobile
qui va leur servir d'accomplir les tâches de leur tournée eu peu de temps avec
plus d’efficacité,

->avoir un système relationnel pour la Lydec qui va servir d’enregistrer le


résultat des tournées de chaque releveur et le comparer avec la tournée qu’on
lui a attribué

Ce qui est bien pour garder la traçabilité de chaque tournée pour la LYDEC

1-3 Définition du besoin :


Avant, les releveurs de la LYDEC avait qu’un simple papier qui contient les informations
de leur tournée. On constate que leur travail était bel et bien manuel, ce qui engendre une
grande perte de temps et un désordre complet. Même les résultats à la fin de leur tournée
sont la plupart du temps perdus, surtout que La Lydec doit garder une copie pour les
résultats des tournées de ses releveurs, c’est la Raison pour laquelle la DSI a décidé de
développer une application qui va faciliter le travail des releveurs ainsi de garder une
traçabilité dès la génération de la tournée par un backoffice jusqu’à la fin de la tournée.

1-3 : Explication du fonctionnement:

9
Comme administratrice de cette application, j’attribue la tournée générée par
un responsable backoffice à un releveur de compteur (Lydec) qu’on a déjà
ajoute comme utilisateur, ensuite ce dernier il doit se connecte à
l’application, il charge sa tournée,

Il saisit les 2 nouveaux indexs qui représentent la consommation récente des


clients, si il remarque des anomalies, il peut prendre une photo et la photo
sera automatiquement enregistrée sur son téléphone, sans oublier qu'il a
même la possibilité de changer le compteur et le remplacer par un autre et

Finalement il décharge sa tournée pour envoyer les données acquises vers le


système informatique centralisé, pour garder une traçabilité (une copie pour
La LYDEC)

Voici un schéma qui explique ce déroulement :

10
->Celui qui génère un fichier qui contient
toutes les informations de la tournée d’un
releveur selon un ordre.

->Mise à jour du releveur

->Attribuer à un releveur
une tournée

->Préparer sa tournée en fonction du planning établi


par le gestionnaire de données BackOffice.

->Charger sa tournée sur le portable de relevé.

-> Vérifier les coordonnées du client, les


caractéristiques et l’emplacement du compteur, la
consommation

->saisir les nouveaux index des clients

->Signaler les anomalies sur poste de comptage ou les


incidents empêchant les relevés (compteur
inaccessible ou illisible).

->décharger sa tournée en exploitant le résultat final

->
11
1-4 : Fonctionnement de l’application :

+coté client :
-> Se connecter à l’application

->Charger sa tournée attribué à lui par l’admin.

-> Vérifier les coordonnées du client à rendre visite

->Saisir les nouveaux index des clients

->Signaler les anomalies et prendre des photos (compteur inaccessible ou


illisible).

->toujours vérifier le cycle de sa tournée

->Possibilité de changer d’emplacement pour le compteur ou bien son type

->Décharger sa tournée en exploitant le résultat final (qui sera affiché sous


forme fichier Excel géré par l’admin pour garder une traçabilité (une copie
pour la Lydec))

+coté admin :
->Ajouter /modifier/supprimer un releveur

->Attribuer au releveur une tournée

12
La conception du projet :
Afin de respecter les critères mentionnés dans le cahier des charges et garantir le
fonctionnement d’application, et pour donner une conception solide, je me suis basée sur
l’aspect analytique.

J’ai choisi UML et Merise très répandu chez les développeurs pour montrer les relations
entre les tables au sein d’une base et réaliser d’autres fonctionnalités

diagramme de cas d’utilisation

13
MCD :

NB :
+Foreign key(refTournee) References login(Tournee),Foreign
key(refID) References login(matricule)) :le champs reftournee de la
table tournee est une clé étrangére references le champ Tournee du
table login.

+Foreign key(numCompteur) References Tournée(NumCompteur) :le champ


numcompteur de la table Anomalie est une clé étrangère references le
champ NumCompteur de la table Tournee

14
Chapitre 3
LA PLATEFORME ET LES OUTILS UTILISéS

1. la plateforme utilisée :

Android est un système d'exploitation open-source pour smartphones, et autres terminaux


mobiles, conçu par Android, une start-up rachetée par Google en juillet 2005. Il existe
d'autres types d'appareils possédant ce système d'exploitation tels que les téléviseurs et les
tablettes.

Une application Android peut être composée des éléments suivants:


• des activités (android.app.Activity): il s'agit d'une partie de l'application présentant une
vue à l’utilisateur des services (android.app.Service): il s'agit d'une activité tâche de fond
sans vue associée
• des fournisseurs de contenus (android.content.ContentProvider): permettent le partage
d'informations au sein ou entre applications

Ent.Intent): permettent d'envoyer un message pour un


Composant externe sans le nommer explicitement
• des drawables : qui contiennent les images utilisés dans le projet

15
Les outils utilisés :

SIGNATURE-100603-201312-M-104020-56-1.00M005-O-03/01/2016-04/01/2016-0
[D_PDA_TOURNEE]
2-0196436-0-100021457-105540-LACHEMI BEN HAMOU-Q00106759-49 RU 5 RC--6-273-2--I-
2--15---A-H-5-1-O--201312-100603-0--03/01/2016---31015----------0-0-0-0-265---0-
104020-104020-N-N-04/01/2016-0-0----759206-0
1-245335-0-100021456-105540-TAHAR BEN MOHAMED-208104892-49 RU 5 RC--6-273-2--I---
----E-5-1-O--201312-100603-100--03/01/2016---774----------0-0-0-0-9---0-104020-
104020-N-N-04/01/2016-0-0----759206-0
1-685196-0-100004856-82963-M.EDRIHMI ABBES-102139595-47 RU 5 RC--6-274-1--I------
-E-4-1-N--201312-100603-200--03/01/2016---2054----------0-0-0-0-14---0-104020-
104020-N-N-04/01/2016-0-0----752494-0
2-0367657-0-100004858-105541-B.HADJ ABDELLAH-A04128946-47 RU 5 RC--6-274-2--I-2--
20---A-H-5-1-O--201312-100603-300--03/01/2016---13926----------0-0-0-0-34---0-
104020-104020-N-N-04/01/2016-0-0----759207-0
2-A112090-0-100078213-3872-CHAIB ERRASS AHMED-000074056-43 RU 5 1--6-275-7--I-2-
-15---A-H-5-1-O--201312-100603-400--03/01/2016---50772----------0-0-0-0-280---0-
104020-104020-N-N-04/01/2016-0-0----700963-0
1-442329-0-100078213-3872-CHAIB ERRASS AHMED-102118801-43 RU 5 1--6-275-7--I----
---E-4-1-N--201312-100603-500--03/01/2016---3205----------0-0-0-0-16---0-104020-
104020-N-N-04/01/2016-0-0----700963-0
2-0553702-0-100004891-105543-CHAIB ERRASS AHMED-007099032-43 RU 5 RC--6-275-6--I-
2--20---A-H-5-1-O--201312-100603-600--03/01/2016---16844----------0-0-0-0-72---0-
104020-104020-N-N-04/01/2016-0-0----759209-0
1-856198-0-100004880-82964-HAROUCHI AICHA-203110754-41 RU 5 RC--6-275-4--I-------
E-5-1-O--201312-100603-700--03/01/2016---1250----------0-0-0-0-4---0-104020-
104020-N-N-04/01/2016-0-0----752495-0
2-0324527-1-100004936-105545-MLIL MOHAMED-N00439116-39 RU 5 RC--6-276-3--I-2--15-
--A-H-4-1-O--201312-100603-800--03/01/2016---5896----------0-0-0-0-0---0-104020-
104020-N-N-04/01/2016-0-0----759211-0
2-0460386-1-100165843-105544-BLAL HAMMOU-004062548-39 RU 5 RC--6-276-2--I-2--20--
-A-H-4-1-O--201312-100603-900--03/01/2016---8496----------0-0-0-0-0---0-104020-
104020-N-N-04/01/2016-0-0----759210-0
2-0621186-0-100021496-105548-EL ORCH AHMED-S00375074-37 RU 5 1--6-277-3--I-2--
15---A-H-5-1-O--201312-100603-1000--03/01/2016---44508----------0-0-0-0-0---0-
104020-104020-N-N-04/01/2016-0-0----759214-0
1-783370-0-100021462-82965-ERRAJI MOHAMED-102139596-37 RU 5 RC--6-277-2--I-------
E-4-1-N--201312-100603-1100--03/01/2016---820----------0-0-0-0-15---0-104020-
104020-N-N-10/24/2002-0-0----752496-0

Fournies par l’encadrant :

16
1) un exemple d’un fichier qui contient une tournée générée par un BACKOFFICE LYDEC :

2) un exemple d’une classe JAVA qui explique les données de la tournée qui existent dans le
fichier:

17
public class PdaTournee {
public
private Long String
_id; getFrnCod() {
privatereturn
StringfrnCod;
frnCod;
}
private String polNum;
private String polEtat;
public
private void setFrnCod(String
Integer cliId;
frnCod) Integer
private { locId;
privatethis.frnCod
String cliNom;= frnCod;
}
private String cptNum;
private String adrCons;
public
private String
String getPolNum() {
numGsm;
privatereturn
Integer polNum;
refSec;
}
private Integer refTrn;
private Integer refOrd;
public
private void locIdg;
String setPolNum(String
polNum) String
private { polTypc;
privatethis.polNum = polNum;
String cptFils;
}
private String cptTens;
private String cptAmp;
public
private StringcptCal=0;
Integer getPolEtat() {
privatereturn
Integer polEtat;
cptSys=0;
}
private String typeBr;
private String empCpt;
public
private void cptRoue;
String setPolEtat(String
polEtat)String
private { cptCoef;
privatethis.polEtat
String plombe; = polEtat;
}
private String marque;
private String rlvProd;
public
private Integer
Integer getCliId() {
refTournee;
privatereturn
Integer cliId;
refFolio;
}
private Integer nvFolio;
private String rlvADate;
public
private void rlvNDate1;
String setCliId(Integer
cliId) {String rlvNDate2;
private
privatethis.cliId = cliId;
Integer rlvAIdx;
}
private Integer rlvNIdx1;
private Integer rlvNIdx2;
public Integer getLocId() {
public return locId; {
PdaTournee()
}
super();
// TODO Auto-generated
publicstub
constructor void setLocId(Integer
}locId) {
3) une méthode qui va nous servir de this.locId = locId;
remplir la table Tournée de notre base de } PdaTournee(String frnCod,
public
Integer cliId, String cliNom, String
données ainsi que l’ordre des cptNum,public
Integer String getCliNom()
refTournee) { {
informations existants dans le fichier : return cliNom;
this.frnCod = frnCod;///
}
this.cliId = cliId;

this.cliNom = cliNom;

this.refTournee = refTournee;

18
Les outils et la méthodologie utilisée dans la réalisation
du projet :
-architecture MVC:
Architecture MVC : Modèle-Vue-Contrôleur est un motif d'architecture logicielle destiné
aux interfaces graphiques lancé en 1978 et très populaire pour les applications web. Le
motif est composé de trois types de modules ayant trois responsabilités différentes : les
modèles, les vues et les contrôleurs.

*Un modèle contient les données à afficher.

* Une vue contient la présentation de l'interface graphique.

* Un contrôleur contient la logique concernant les actions effectuées par l'utilisateur.

->j’ai opté pour l’architecture mvc dans l’écriture du code de mon projet.

Son objectif : Mieux structurer le code de notre projet.

-dossier dao qui contient ma base de données et chaque table avec ses propres méthodes
utilisés (insertion modification …)

->dossier entities qui contient les classes dont j’avais besoin plusieurs fois, par exemple
rowlayout qui définit le design de ma listview, ainsi la classe chargement qui contient les
méthodes pour charger les spinner à parti du fichier, remplir ma table Tournée a partir du
fichier etc

19
->dossier UI, qi contient les classes de toutes les activités utilisés dans cette application.

*JAVA :

est un langage de programmation orienté objet créé par James Gosling et Patrick
Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur
de SuMicrosystems en 1982), présenté officiellement le 23 mai 1995 au SunWorld.La
particularité et l'objectif central de Java est que les logiciels écrits dans ce langage
doivent être très facilement portables sur plusieurs systèmes d’exploitation tels
que Unix, Windows, Mac OS ou GNU/Linux, avec peu ou pas de modifications

*XML :

XML (entendez Extensible Markup Language,


Langage à balises étendu) est en quelque sorte un
langage HTML amélioré permettant de définir de
nouvelles balises. Il s'agit effectivement d'un
langage permettant de mettre en forme des
documents grâce à des balises (Markup).
Contrairement à HTML, (avec un nombre de
balises limité), XML peut être considéré comme
un métalangage permettant de définir d'autres
langages, La force de XML réside dans sa capacité
à pouvoir décrire n'importe quel domaine de
données grâce à son extensibilité.

*base de donnes interne SQLITE :

20
SQLite est un système de base de données qui a la particularité de fonctionner
sans serveur, on dit aussi "standalone" ou "base de données embarquée". On
peut l'utiliser avec beaucoup de langages : PHP, Python, C# (.NET), Java,
C/C++, Delphi, Ruby...
L'intérêt c'est que c'est très léger et rapide à mettre en place, on peut s'en servir
aussi bien pour stocker des données dans une vraie base de données sur une
application pour smartphone (iPhone ou Android), pour une application
Windows, ou sur un serveur web.

LA REALISATION DE L’APPLICATION :
Le logo et le nom de l’application :

La première interface : LOGIN

21
Le releveur entre son
userName et son mot de
passe et en cliquant sur le
bouton LOGIN, il passera
à l’interface suivante ou il
va charger sa tournée et
la commencer.

Les tests sur la connexion du releveur :

22
La deuxième interface : gestion des lots

23
Le numéro de la
tournée du releveur

En cliquant sur le bouton charger


tournée et le bouton Ok, il passe
à la troisième interface

En cliquant sur le bouton


décharger tournée, un fichier
Excel se génère contenant le
résultat global de sa tournée ainsi
le contenu de la base de données.

Le message
qui s’affiche
après le clic
sur décharger

24
Le fichier Excel qui contient
toutes les données enregistrés De
toutes nos tables sqlite anomalie,
tournee,login

(dans le téléphone du releveur)

->déchargement tournée

25
La troisième interface : récapitulative globale

Là le releveur a une vision


générale sur sa tournée.

En cliquant sur le bouton OK, un


message s’affiche puis il passe à la
quatrième interface ou il va
trouver la liste des compteurs à
lire dans sa tournée

26
La quatrième interface : la liste des compteurs

En cliquant sur
ce bouton, le
releveur passe à
l’interface de
saisie des
indexes

Numéro du
compteur

La référence de la
tournée

(refsec-ref-ref)

La nature du
fluide :

Eau ou bien
électricité

27
La quatrième interface : l’ajout des nouveaux indexent des clients,

Un message
s’affiche qui
indique le nom du
client et son
adresse.

28
En cliquant sur ce bouton, il
passe à l’interface de saisie
des anomalies

Nb :on peut pas enregistrer une


anomalie jusqu’à ce qu’on prenne
une photo pour elle

Un clavier pour faciliter la saisie au releveur

En cliquant sur ok, le nouveau index

est enregistré dans la base de données

En cliquant sur ce bouton, une option de prise

Camera s’ouvre et la photo de l’anomalie est à la


fois prise et enregistrée dans la base de données.

Nb : une petite photo s’affiche indiquant qu’on a déjà pris une


photo pour cette anomalie.

29
Un menu à gauche,

En cliquant sur cycles, il passe


à l’interface cycles et en
cliquant sur détails compteurs,
il passe à l’interface ou il peut
changer les caractéristiques du
compteur et encore une fois
tout sera enregistré et actualisé
dans notre base de données

30
Menu du mise à jour du
releveur :Ajout/Suppression/Modif
ication

31
Elle cite le nombre de
compteurs nos lus, celles
lus , avec ou sans
anomalie .. ->le résultat
de sa tournée, comme ça
il peut vérifier par lui-
même toit au cours sa
tournée et se rattraper si
il y’a un manque ou un
problème

32
Interface modification compteur :
lorsque le releveur veut
changer le compteur(sa
marque , son type ,celui
de branche ,coef ,ou
roue.., il n’a qu’à choisir
à l’aide d’un spinner
contenant une liste de
choix générés aussi par
un backoffice et cliquer
sur le checkbox et le
bouton ok

.Résultat: modifications
enregistrés dans notre
base de donnes

Les informations qui


concernent ce
compteur, sont
saisies
automatiqument,
pour toujours se
rassurer, qu’il est
dans le bon chemin

33
L’interface :la liste des releveurs : Une fois que
l’admin se
connecte, une
liste des
releveurs
existants
s’affiche.

Il peut même
ajouter un
nouveau
releveur en
cliquant sur
’ajouter
releveur ‘et
passer à
l’interface
d’ajout.

L’interface : les informations du releveur

34
En cliquant sur un
releveur de la liste,
cette interface
s’affiche qui
montre les
informations
détaillés du
releveur

35
L’interface d’ajout des nouveaux releveurs

Apres la saisie des informations


du releveur et le clic sur le
bouton ajouter , le releveur est
enregistré dans la table login
dans notre base de donnés

36
Interface modification du releveur

On modifie le nom, prénom et


mot de passe du releveur qu’on a
saisi son username

37
Interface suppression du releveur

On supprime le releveur qui


porte un username saisi.

38
Bibliographie :
Les sites suivants :
->Flaticon : les images et icones (à part celles fournies par l’encadrant)

->AndroidDevelopper

->Stackoverflow : pour répondre à mes questions et blocages surtout au


niveau la lecture des fichiers.

->GITHUB et BITBUCKET : pour le suivi du projet entre moi et l’encadrant

39
Conclusion

Au cours de ce projet ,j’ai appris l’ acquisition de nouvelles


connaissances aussi bien théoriques que pratiques tel que la
maîtrise des outils de développement de conception et de
réalisation d’une application mobile, ainsi que le travail avec
des fichiers et bases de données internes d’une grande société
tel la LYDEC.

40