This project is a carpooling web application designed for university students. The app allows students who have cars to offer rides to other students who do not have cars. The app matches drivers and passengers based on the locations they are traveling to, with a match being made if the specified routes match more than 40%.
This app was designed to work primarily on phones because of their GPS feature, using the app on a laptop might lead to incorrect results and bad user experience generally as the triangulation methods used by PCs to determine the current location can be very inaccurate, putting you miles away at best.
The app includes the following features:
The app can detect the user's location using GPS(on phones) and triangulation(on PC), allowing the user to easily find their current location.
The app includes a destination location selection menu, allowing the user to enter the location they wish to travel to.
Using the Mapbox API, the app can draw a route between the user's current location and their destination. This feature provides the user with a visual representation of the route they will take.
The app calculates the match rates of two different routes drawn using either an algorithm. If the match rate is more than 40%, the app will make a match between the driver and passenger.
The app keeps track of the user's ride history, providing a record of previous rides and helping users keep track of their transportation expenses.
After each ride, users can rate and review each other. This feature helps ensure the safety and reliability of the app by allowing users to provide feedback on their experience with other users.
While the app has really minimal features now, I plan to include more features in the future, some of them are listed below and you should feel free to make suggestions:
The app will include an in-app messaging system that allows drivers and passengers to communicate with each other before and during the ride. This feature enables users to discuss important details such as pickup and drop-off locations, the cost of the ride, and any other special requests.
The app will integrate with popular payment systems such as PayPal and Venmo, allowing drivers to easily receive payment from passengers for their services.
To ensure the safety and security of our users, we plan to implement driver background checks in future versions of the app.
In future versions of the app, we plan to add social media integration, allowing users to sign up and log in using their social media accounts.
I plan to improve the user interface of the app in future versions, making it more intuitive and user-friendly.
The tech stack will include the following:
- virtualenv as a tool to create isolated Python environments
- Django ORM to be our ORM library of choice
- PostgreSQL as our database of choice (Feel free to use any database)
- Python3 and Django as our server language and server framework
You can download and install the dependencies mentioned above using
pip
as:
pip install virtualenv
pip install django
- Download the project starter code locally
git clone https://github.com/horpeazy/corider.git
cd corider
- Create an empty repository in your Github account online. To change the remote repository path in your local repository, use the commands below:
git remote -v
git remote remove origin
git remote add origin <https://github.com/<USERNAME>/<REPO_NAME>.git>
git branch -M master
Once you have finished editing your code, you can push the local repository to your Github account using the following commands.
git add . --all
git commit -m "your comment"
git push -u origin master
- Initialize and activate a virtualenv using:
python -m virtualenv env
source env/bin/activate
Note - In Windows, the
env
does not have abin
directory. Therefore, you'd use the analogous command shown below:
source env/Scripts/activate
- Install the dependencies:
pip install -r requirements.txt
- Run the development server:
python3 manage.py runserver
- Verify on the Browser
Navigate to project homepage http://127.0.0.1:8000/ or http://localhost:8000
If you would like to contribute to this project, please fork the repository and submit a pull request.
This project was developed by Hope Iyamu
This project is licensed under the MIT License.