Base de donnée Avancé : Projet Covoiturage Cours : Puissance 3 Projet : Covoiturage Groupe : Thibaut de Broca / Bruno Lange / Vincent Lebel Date: Jeudi 22 Juin 2010 0 2 / 0 6 / 2 0 1 0
Base de donnée Avancé : Projet Covoiturage
Cours : Puissance 3
Projet : Covoiturage
Groupe : Thibaut de Broca / Bruno Lange / Vincent Lebel
Date: Jeudi 22 Juin 2010
02/0
6/2 0
10
2 Base de donnée Avancé : Projet Covoiturage
3 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
4 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
5 Base de donnée Avancé : Projet Covoiturage
1. Présentation de l’application
Comment faire pour avoir le choix ? Trouver, ou créer de nouveaux moyens de transports qui s’adaptent à nos besoins (lieu et heure)
iLico est une application iPhone destinée à un usage immédiat, simple, et efficace. Les trajets effectués sont sur une plage horaire de 24h, iLico est considérée comme le développement numérique de l’autostop, afin d’allouer les moyens de transport privés entre passager et conducteur en milieu urbain.
6 Base de donnée Avancé : Projet Covoiturage
Liste des modules
• Inscription.
• Rentrer un trajet pour le conducteur.
• Chercher un conducteur pour un passager.
• Ecrire des commentaires.
• Modifier son profil.
• Envoyer et recevoir des messages.
1. Présentation de l’application
7 Base de donnée Avancé : Projet Covoiturage
2. Fonctionnement de l’application
LL’’OrdinogrammeOrdinogramme
8 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
9
2. Fonctionnement de l’application
http://developer.apple.com/iphonehttp://developer.apple.com/iphone
- Objective-C : C orienté ObjetObjective-C : C orienté Objet
Les outilsLes outils
10
2. Fonctionnement de l’application
LL’’apprentissageapprentissage
11 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
12 Base de donnée Avancé : Projet Covoiturage
La base de donnée La base de donnée
2. Fonctionnement de l’application
13 Base de donnée Avancé : Projet Covoiturage
ex: Afficher le profil d’une personne: SELECT * FROM userWHERE LastName = 'Damien'AND FirstName = 'François'
2. Fonctionnement de l’application
Les requêtes sur la base de donnéeLes requêtes sur la base de donnée
1. Simples requêtes SQL1. Simples requêtes SQL
2. Procédure SQL avec boucle Loop2. Procédure SQL avec boucle Loop 3. Requêtes imbriqués3. Requêtes imbriqués
ex: Liste des amis d’une personne :
SELECT u.LastName, u.FirstName FROM userconnection uc, user uWHERE uc.idType = '1'AND uc.idUserIN (SELECT idUser FROM user WHERE LastName = 'Dutourd'AND FirstName = 'Alain'
)AND uc.idUser1 = u.idUser
14 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
15 Base de donnée Avancé : Projet Covoiturage
2. Fonctionnement de l’application
Module: InscriptionModule: Inscription
Utilisation du langage SQL:
libsqlite3.0.dylib
#import <sqlite3.h>
INSERT INTO `mydb`.`user` (`idUser` ,`FirstName` ,`LastName` ,`Birthday` ,`Phone` ,`Mail` ,`Adress` ,`idDepartement` ,`idCountry` ,`Picture`)
VALUES (NULL , 'Alain', 'Dutourd', '1984-05-31', '0698456587', '[email protected]', '35, rue des etangs', '01', '13', NULL)
16 Base de donnée Avancé : Projet Covoiturage
A
C
B
A : 48.836249, 2.244987 : pont de Billancourt, 92100B : 48.845697, 2.328179 : ISEP, 75D : 48.853167, 2.369013 : Bastille, 75C : 48.864489, 2.38884 : Nation, 75
D
latitude (y) et longitude(x)Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
17 Base de donnée Avancé : Projet Covoiturage
L’utilisateur rentre son adresse d’arrivée :
variables GET;
saddr et
daddr
http://maps.google.fr/?saddr=Paris&daddr=Bayonne
UIWebView:
Indicateur d’activité:
Domicile
Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
18 Base de donnée Avancé : Projet Covoiturage
Géocodage : Conversion d’adresse postale en coordonnées géographique
NSURL *url = [[NSURL alloc] initWithString:@"http://tinygeocoder.com/create-api.php?q=Paris"];
NSData *datas = [[NSData alloc] initWithContentsOfURL:url];
NSString *str = [[NSString alloc] initWithData:datas encoding:NSASCIIStringEncoding];
Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
19 Base de donnée Avancé : Projet Covoiturage
Le Trajet :A : 48.836249, 2.244987 : Pont de Billancourt, 92100 C : 48.864489, 2.38884 : Nation
Distance de 15km à une vitesse 40km/h : 22 min
y1 – y2 = 48,836249 – 48,864489 = -0,028240 => y3 = 028240 x1 – x2 = 2,244987 - 2,388840 = -0,143853 => x3 = 143853
Sqrt(x3² + y3²) = sqrt( 797497600 +20693685609) = 146598
146598 = 15000 m488 = 50 m
146598 / 488 = 300
T = d / v5 secondes, 50 m à 40km/h
Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
20 Base de donnée Avancé : Projet Covoiturage
Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
21 Base de donnée Avancé : Projet Covoiturage
[…]
Module: Rentrer un trajet pour un conducteur Module: Rentrer un trajet pour un conducteur
2. Fonctionnement de l’application
22 Base de donnée Avancé : Projet Covoiturage
Le périmètre de ‘récupération du passager’ est défini à 1km.
Sachant que 50m 488 unités de coordonnée Google Map
1km 9760 unités
A
C
B
D
Module: Chercher un trajet pour le passagerModule: Chercher un trajet pour le passager
2. Fonctionnement de l’application
23 Base de donnée Avancé : Projet Covoiturage
SELECT r.DestinationAdress, r.SmokingCar, r.TalkingCar, r.Animal, r.NumberPlace, r.CommentT, r.Lugage, r.idroute, u.LastName, u.FirstNameFROM route r, routelist rl, user u, userroute urWHERE r.idroute = ur.idroute = rl.idrouteAND ur.idUser = u.idUser = rl.idUserAND r.idrouteIN (
SELECT idrouteFROM routelistWHERE CoordinateY >48845697 -9760AND CoordinateY <48845697 +9760AND CoordinateX >2328179 -9760AND CoordinateX <2328179 +9760AND NOW( ) > DateTAND NOW( ) < ADDTIME( DateT, '00:10:00' ) GROUP BY idroute)AND r.idrouteIN (SELECT idrouteFROM routelistWHERE CoordinateY >48853167 -9760AND CoordinateY <48853167 +9760AND CoordinateX >2369013 -9760AND CoordinateX <2369013 +9760GROUP BY idroute)GROUP BY u.idUser
Module: Chercher un trajet pour le passagerModule: Chercher un trajet pour le passager
2. Fonctionnement de l’application
24 Base de donnée Avancé : Projet Covoiturage
Contexte :
Nombres inconnu d’affichage, donc scroll vertical nécessaire
Résolution :
- TableViewsControllers
- NavigationControllers
2. Fonctionnement de l’application
Module: Liste des utilisateursModule: Liste des utilisateurs
25 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
26 Base de donnée Avancé : Projet Covoiturage
Plan
Introduction
1. Présentation de l’application
2. Fonctionnement de l’application
a. Environnement
b. La base de donnée
c. Les modules
3. Démonstration
Conclusion
27 Base de donnée Avancé : Projet Covoiturage