Skip to content

VSangarya/PackTravel

 
 

Repository files navigation

🐺 PackTravel

Build Codacy Badge Codacy Badge DOI Commit Acitivity Issues Contributors License Languages Code Size Contributor Covenant Repo Size

PackTravel is a web-application that connects people who want to carpool, share a cab or ride a bus together. Users can offer rides with their own vehicles, or travel together as a group in a cab or a bus. PackTravel helps you stay on a budget by reducing your travel expenses so that you don't have to miss out on that concert you've been wanting to attend 😉.

💎 Features

  • Users can create rides - personal vehicle, cab or taxi
  • Autocomplete for source and destination points
  • Users can send requests to join rides, cancel a ride request
  • Ride owners can accept requests from other riders to join rides, ride owners can delete their own rides
  • Forum for every ride to discuss logistics
  • Integration with Google Maps to show ride route , distance and duration.
  • Users can now get an estimated cab fare predicted with machine learning using date and time of the ride as attribute.
  • Emails are sent to ride owners when a ride capacity is reached.
YN7JIC44O9604G33.mp4

👥 Audience

Any person who is looking to reduce spending on their commute expenditure can use our application.

⚒️ Deployment and Installation

  • PackTravel is built using MongoDB Atlas database, Django (Python) for backend-services, and HTML/CSS/JS/Bootstrap for the front-end.
  • The application can be deployed on any web-server running on premise or in the cloud. See django deployment to setup django on a VM.
  • See developer environment setup to setup your development server.
  • Common issues faced by users while setting up the developer environment are listed here.

Scaling PackTravel

Scale PackTravel

  • It is possible to scale PackTravel horizontally because of how we designed the application.
  • All APIs are stateless (REST); Therefore, any application server in a cluster can handle a request.
  • We can use a CDN such as Amazon S3, Cloudflare to serve static assets (images). This enables quicker load time as CDN servers are spread across geographic regions.
  • The bottleneck in PackTravel is the email sending feature. If we use a message queue such as Kafka to offload the task of sending an email to a different application (Kafka consumer), it will free our application server's resources quickly.
  • MongoDB is designed to handle large amounts of data and high levels of throughput. It can distribute data across multiple servers and process it in parallel. It has built-in support for sharding and this makes it easy to scale MongoDB horizontally by adding more servers as needed to handle the increased load.

🎯 Enhancements

  • Merge rides - users should be able to join rides in a via point between a source and a destination (feature).
  • Ride ratings - users should be able to rate other users after a ride is complete (feature).
  • 2FA - Add functionality to support 2 factor authentication to login (security)
  • Cab Fare estimation to help make a more informed ride choice.
  • Owners of ride now notified via email when the ride has reached capacity!

📨 Help and Troubleshooting

For any help or assistance regarding the software, please e-mail any of the developers with the query or a detailed description. Additionally, please use issues on GitHub for any software related issues, bugs or questions.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 55.7%
  • Python 43.0%
  • Other 1.3%