HAI806I-Carpool-project
Ce projet basé sur un stack MEAN (MongoDB Express, Angular et NodeJS) permet la mise en place d'un système de covoiturage pour mettre en relation conducteurs et voyageurs. Il permet toutes les fonctionnalités basique que l'on pourrait attendre d'une application comme celle-ci. Ce projet a été développé par Adam SAID et Arnaud COSSU de l'Université de Montpellier pour l'UE HAI806I - Architectures avancées du web.
Pour l'utilisez de votre côté merci de vous référer à la partie Installation !
- HAI806I-Carpool-project
- Fonctionnalités
- Installation
- Demo
- Services et composants
- Base de données
- API
- Endpoint
- Test connexion
- Récupérer tous les covoiturages
- Recherche de covoiturages par trajet
- Récupération des infos d'un covoiturage
- Recherche des passagers en attente d'acceptation dans un covoiturage
- Acceptation d'un passager dans un covoiturage
- Rejet d'un passager dans un covoiturage
- Réservation d'un siège
- Suppression d'un covoiturage
- Création d'un covoiturage
- Création de compte
- Connexion
- Récupération des infos du profile
- Modification du profile
- Modification du mot de passe
- Récupération des infos pblique d'un utilisateur
- Récupération des voyages concernant un utilisateur
- Auteurs
Fonctionnalités
- Création de compte et authentification
- Changement d'informations du profile et mot de passe
- Création de covoiturage
- Recherche de covoiturage
- Système de réservation du covoiturage avec acceptation et rejet
Installation
Pré-requis
Afin d'uilisez ce projet sur votre machine récupérer tout le projet et installer chaque partie une à une en suivant les chapitres suivants. Il vous faut avoir sur votre machine :
- npm
- angular CLI
- node
- mongodb ou Atlas (voir la partie Base de données)
Serveur
- Récupérer le dossier SERVER présent dans l'archive.
- Assurez-vous que le fichier db.ini est bien un niveau au dessus du dossier SERVER dans votre arborescence.
- Naviguer dans le dossier SERVER
- Installer les dépendances avec :
npm install
- Lancer le serveur avec :
node server.js
- Le serveur doit afficher :
"Server listening on port 3000"
Client
- Récupérer le dossier CarPoule présent dans l'archive.
- Naviguer dedans
- Installer les dépendances avec :
npm install
- Lancer le client avec :
ng serve -o
Base de données
Une installation de MongoDB ou l'utilisation de Atlas est nécessaire pour une utilisation personelle du projet. Les fichiers étant fourni il ne vous reste plus qu'à les importer dans votre base de données avec une table nommée CarPoule et trois tables : carpool, user et pending. En suite, créez un fichier db.ini à la racine du projet avec le nom d'utilisateur et le mot de passe de connexion à la BDD, l'ACCES_TOKEN_SECRET pour le hashage des mot de passes et l'ACCESS_CONTROL_ALLOW_ORIGIN pour déterminer qui peut accéder au serveur. Une API_KEY peut être nécessaire pour calculer les coordonnées des villes si besoin.
Voici la structure du fichier db.ini :
username = user
password = pass
ACCESS_TOKEN_SECRET = 000
ACCESS_CONTROL_ALLOW_ORIGIN = http://localhost:4200
API_KEY = xxxxxx
Demo
Pour tester le projet vous pouvez vous créer un compte ou utiliser un compte existant. Cela vous permet en suite de créer un covoiturage. Une fois le trajet créé, vous pouvez trouver tous les covoiturages vous concernants sur la page My Trips (dont vous êtes le conducteur ou un passager). Un conducteur ne peut réserver de places dans son propre covoiturage alors pour tester vous pouvez vous connecter à un autre compte afin de rechercher le covoiturage précédemment créé et faire un réservation. Une fois faite, retourner sur le compte qui a créé le covoiturage et allé sur votre trajet. Vous verrez alors la demande de réservation innitiée par l'autre utilisateur que vous pouvez alors refuser ou accepter.
Comptes existants
Mot de passe | |
---|---|
test@carpoule.fr | azert |
Mais vous pouvez vous créer un nouveau compte.
Services et composants
Défaut
http://localhost:4200/
Page d'accueil avec barre de recherche et barre de navigation
Connexion
http://localhost:4200/login
Page de connexion au compte perso
Inscription
http://localhost:4200/register
Page de création d'un nouveau compte
Recherche
http://localhost:4200/search?{departure}&{arrival}&{date}&{seats}
Page de recherche de covoiturage avec paramètres en GET optionnels. Permet de renvoyer vers des covoiturages en cas de résultats.
Profile
http://localhost:4200/profile
Page d'informations du compte connecté permettant également de renvoyer vers les pages de modification du mot de passe et des informations.
Edition infos
http://localhost:4200/profile/edit
Page de modification des informations du compte connecté.
Edition mot de passe
http://localhost:4200/profile/password
Page de modification du mot de passe du compte connecté.
Publier
http://localhost:4200/publish
Page de publication d'un nouveau covoiturage.
Mes voyages
http://localhost:4200/trips
Page permettant à un utilisateur de voir tous les covoiturages dont il est passager ou conducteur et de le renvoyer vers un covoiturage en particulier.
Covoiturage
http://localhost:4200/carpool/:id
Page dynamique d'un covoiturage, récupéré en fonction de l'ID fourni dans l'URL. Permet de voir les détails d'un covoiturage avec en plus le composant de carte. Permet également à un utilisateur (différent du conducteur) de réserver une place et au conducteur de gérer les demandes de réservation.
Base de données
Vous pouvez retrouver des dump de la base de données dans les fichiers suivants
Covoiturages
Utilisateurs
Auteurs
Full Changelog: https://github.com/Gaiko19/HAI806I-Carpool-project/commits/v1.0