Skip to content

HAI806I - Carpool Project

Latest
Compare
Choose a tag to compare
@Adam-Said Adam-Said released this 18 Apr 21:46
· 4 commits to main since this release

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 !

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 :

Serveur

  1. Récupérer le dossier SERVER présent dans l'archive.
  2. Assurez-vous que le fichier db.ini est bien un niveau au dessus du dossier SERVER dans votre arborescence.
  3. Naviguer dans le dossier SERVER
  4. Installer les dépendances avec :
npm install
  1. Lancer le serveur avec :
node server.js
  1. Le serveur doit afficher :
    "Server listening on port 3000"

Client

  1. Récupérer le dossier CarPoule présent dans l'archive.
  2. Naviguer dedans
  3. Installer les dépendances avec :
npm install
  1. 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

Email 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
Home page screen

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.

Search page screen

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.

Profile page screen

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.

Carpool page screen

Base de données

Vous pouvez retrouver des dump de la base de données dans les fichiers suivants

Covoiturages

-> carpool.json

Utilisateurs

-> users.json

Auteurs

Full Changelog: https://github.com/Gaiko19/HAI806I-Carpool-project/commits/v1.0