A full stack website with MVC architechture made with PHP, Boostrap and MariaDB.
Allo_Deneigement is a full-stack website platform that aims to allow snow removal suppliers to communicate with potential clients. Four types of users can access the website: suppliers offering, clients searching, admins, and unlogged visitors. With a session created at first with the persisting information of the logged user and specific controllers, each profile can be directed to specific pages. Basic CRUD operators are enabled for each profiles, depending on authorization and identification.
Login page:
Supplier list:
Client dashboard:
Built With
- Frontend
- JavaScript,
- Bootstrap 5
- Backend
- PHP
- DB
- MariaDB
- Geolocation
- Geoapify
- Leaflet
-
To run the application locally, it is required to first download the project to your preferred web server (we used Apache XAMPP). With XAMPP, install the app folder in the
htdocs
folder. Once you turn on Apache and MariaDB/MySQL, and set your database credentials (see next step below), the app should be served athttp://localhost/Allo_Deneigement/
. -
In your preferred SQL database manager, load the database stored in the
database/deneigement_db.sql
file. A database calleddeneigement_db
will be created. -
To link the database to the app, you will need to configure your own
configBD.interface.php
file. It needs to be stored inmodels/DAO/configs
(theconfigs
folder needs to be manually created insidemodels/DAO
). Here is the template of the file:
<?php
// Don't stage this file, update it with your own credentials
interface ConfigBD
{
const BD_HOTE = "localhost";
const BD_UTILISATEUR = "your_database_username";
const BD_MOT_PASSE = "your_database_password";
const BD_NOM = "deneigement_db";
}
- You will need to provide your own credentials for the Geoapify key used to create new addresses. For that, create a
.env
file at the root of the project:
GEO_API_KEY = your-own-geoapify-key
With that, you are all set! Run your web server as you need to. index.php
contains the main controller of the app.
- Improve UI (pagination, search bar, etc)
- Live deployment
- Add an english translation of the app
- Add admin profile
- Add more secure authentification (hash, salt for passwords)
- Original project idea by Amine Fahmi
- Fatima Zahra Boudry
- Cylia Oudiai
- Emilie Echevin