# `PackTravel`
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7178601.svg)](https://doi.org/10.5281/zenodo.7178601)
[![codecov](https://codecov.io/gh/amisha-w/PackTravel/branch/main/graph/badge.svg?token=HRFN97UEB7)](https://codecov.io/gh/Prachit99/PackTravel)
![Python Style Checker](https://github.com/Prachit99/PackTravel/actions/workflows/python_style_checker.yml/badge.svg)
![Lint Python](https://github.com/Prachit99/PackTravel/actions/workflows/pylint.yml/badge.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![contributors](https://img.shields.io/github/contributors/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel/graphs/contributors)
[![Total Lines](https://img.shields.io/tokei/lines/github/Prachit99/PackTravel?style=for-the-badge)](https://img.shields.io/tokei/lines/github/Prachit99/PackTravel)
[![Issues](https://img.shields.io/github/issues/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel/issues)
[![Closed Issues](https://img.shields.io/github/issues-closed-raw/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel/issues?q=is%3Aissue+is%3Aclosed)
[![Pull Requests](https://img.shields.io/github/issues-pr/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel/pulls)
[![Commit Acitivity](https://img.shields.io/github/commit-activity/w/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel/graphs/commit-activity)
[![Repo Size](https://img.shields.io/github/repo-size/Prachit99/PackTravel?style=for-the-badge)](https://github.com/Prachit99/PackTravel)
Flaws in Phase 1
- Only basic sign-up/login option which used to break multiple times.
- One was able to create Rides as well as Routes which would create a lot of data redundancy and multiple rides and routes even for the same source to destination travel ultimately causing more confusion to users.
- No scope of deleting or cancelling a ride or route.
- No scope for the user to track his/her rides creating problems for the user track his/her rides and routes and plan accordingly.
- Application was running only on local servers. Not deployed so very less usability scope as well as very less server support.
https://user-images.githubusercontent.com/18501895/205809978-14a5c1c0-65a3-4171-b6f2-f30449325088.mp4
Enhancement and Improvements in Phase 2:
- Restructed the database and object structure to improve efficiency and avoid data redundancy.
- Users can create or join routes which would create or map the rides automatically based on the source and destination avoiding duplicate data and data redundancy.
- Added User based Rides Page which would help the user to track his rides and work on it accordingly.
- Added Google SSO Sign in functionality to add options to signing up which also covers security loopholes.
- Added delete/cancel ride functionality so that if the user has cancelled his plan of going to a particular destination, he/she can cancel/delete the ride so that others are not dependent on the same creating efficient and easy usability for the users.
- Deployed and Hosted the application on AWS making the application more stable, globally acccessible and not dependent on any local machine.
Link to Video 2
Scalability
How can we scale this project? What are the shortcomings which can be covered if we scale it? Everything answered and explained in the in-detailed document attached below.
Click here to know about Scaling this project to the next level
What is Packtravel?
Most of the university students do not have a car to travel off-campus and rely mostly on the Wolfline. But what if someone wants to travel outside Wolfline's limit? Well... why not collaborate on PackTravel to travel off-campus by a cab, rental car, etc.
So, let's go for Packtravel
https://user-images.githubusercontent.com/111834635/194171771-962a585e-5dc7-4ea3-af35-732ebd34e76c.mp4
Built Using:
Features
- Create a PackTravel Ride
- Create mmultiple routes to reach a ride's destination: Bus, Cab or Personal
- Search and view other's rides
- Join a PackTravel Ride's route
- Check all your rides
- Modify your Ride
- Delete a Ride
Who can use our app?
- If you are a user who is visiting our app, you can sign up as a user with view access to rides. You can edit or create your own ride.
- If you are an admin user, you can create, view, update and delete rides and schedule rides.
-
To request for admin privileges, please email on help@packtravel.io with the purpose of use.
Run Locally
Create a virtual environment:
python3.x -m venv env
Activate the virtual environment:
Linux/MacOS:
source env/bin/activate
Windows:
./env/Scripts/activate
Clone the project
git clone https://github.com/Prachit99/PackTravel.git
Go to the project directory
cd PackTravel
Install dependencies
pip install -r requirements.txt
Start the server
python manage.py migrate
python manage.py runserver
- Site gets hosted at:
`http://127.0.0.1:8000/`
Tools
Functionalities in Action
-
Sign Up Page
-
Login Page
-
Creating a Ride
-
Adding New Route
-
Search for a Ride
-
My Rides
Chat Channel
Contributors