View Code? Open in Web Editor
NEW
A web application for planning your journeys with a travel companion to analyse routes based on fuel costs and environmental impact. Developed with Flask.
Python 53.71%
HTML 42.14%
CSS 2.37%
JavaScript 1.78%
travel-buddy's Issues
Problem Statement
Add support for different countries with a fuel price API.
Fuel prices vary per country, so the API must account for this.
Ensure that the fuel prices are displayed in the local currency of the origin country once this is implemented to avoid confusing the user.
Could support a fixed number of countries (UK, US, France, Germany, Canada) with separate APIs, or use one API that supports a wide range of countries.
Each user should have 1 car for now.
Each car has a make, owner (username), mpg, and fuel type (petrol/diesel).
Problem Statement
Users should be able to perform actions on a carpool page such as:
Updating information (if created by user)
Adding and removing themselves (if not created by user)
Number of seats should be decremented accordingly
Commenting
Breakdown
Monitor route statistics (CO2, average speed, time)
Recommendations for alternate methods (walking, cycling)
Time taken for each of these alternatives (you would need to leave x minutes earlier)
CO2 saving for this journey (plus saving over time)
Modify routes planner page to include real-time address autocomplete
Problem Statement
Create a page for global stats based on the data of all users in the app. This may include:
Total distance travelled from carpooling
Total CO2 reduced from carpooling
Total fuel costs saved from carpooling
Total number of carpools
Users can submit a form without some data (by bypassing the html "required" tag) causing the backend to crash.
Users should be able to save most frequently travelled routes with a name so that they can be displayed on the route analysis page with their estimated fuel cost for that day.
Potentially, users can click the route to display it on the map.
Breakdown
Sections to include are:
Monitor route statistics (CO2, average speed, time)
Recommendations for alternate methods (walking, cycling)
Time taken for each of these alternatives (you would need to leave x minutes earlier)
CO2 saving for this journey (plus saving over time)
Update carpool listing to include route analysis data on journey
Problem Statement
Add a page for global stats at /stats
Add calculations for global stats based on the data of all users in the app. This may include:
Total distance travelled from carpooling
Total CO2 reduced from carpooling
Total fuel costs saved from carpooling
Total number of carpools
Add statistics for calories burned by transport method
Problem Statement
Users should be able to block each other.
This means they can't view each others' profiles, carpools, etc.
Problem Statement
Users should be able to perform actions on a carpool page such as:
Viewing details about the carpool listing
Adding and removing themselves (if not created by user)
Number of seats should be decremented accordingly
Viewing passenger list for the carpool
Problem Statement
Take input from the user about their estimated travel distance per week/month, and make estimations for fuel costs (and possibly other things like insurance) over the span of:
1 month
3 months
6 months
12 months
Add suggestions based on electric vs petrol car ownership.
This could be part of a new page called 'Your Trends'.
Problem Statement
Users should be able to view available carpools, select a carpool, and join it.
Problem Statement
Integrate TfL's API to support more detailed public transport info in the route analysis section.
For example, some people may want to avoid the tube.
Detect routes that only involve London to enable these additional features.
Problem Statement
Password requirements are unnecessarily strict on the front-end.
I would suggest changing it to be a minimum of eight characters and one number to match the backend.
High priority as the mismatch of the backend is confusing and doesn't allow some passwords that should be allowed.
Calculate statistics on CO2 usage for a specific journey
Implement route statistic and travel recommendation data in front end
Breakdown
Research on existing products for CO2 emissions
Research on existing solutions for route alternative recommendations
Research on apis for data collection
Research on public opinions the issues at hand
Breakdown
After successful registration, a default user profile should be created in the database.
username
first_name
last_name
is_driver
: 0 by default
bio
: Empty by default
photo
The user should be forwarded to their profile page at /profile
.
Viewing other users' profiles should be accessible via /profile/{username}
.
Problem Statement
The user should be able to edit their user profile details, including:
First and last name
Profile picture
Bio
Driver status
Calculate statistics on fuel usage and price at local value for a specific route
Breakdown
Section for drivers and a section for passengers.
Offering car pooling/searching for car pooling.
Breakdown
Fields:
First Name
Surname
Email address
Password
Consider looking into potential built-in Django account system?
Add address autocomplete to carpool creation
Problem Statement
The user profile page needs some basic functions to display information about the user, which may include:
First and last name
Bio
Profile picture
Top three stats
Problem Statement
Rate limiting would be useful for database calls, and especially API calls.
Google Maps API records the usage and charges once a certain limit is hit.
Database calls are computationally expensive, and mass requests will quickly cause a slowdown, especially before eventual migration from SQLite to PostgreSQL.
Problem Statement
We're currently missing prices for carpool requests and rides, which is a significant omission.
Passengers need to know how much they need to pay the driver, and drivers need to know what people are willing to pay.
Problem Statement
Users should be able to change their password from the 'Edit Profile' page.
They must enter their current password, their new password, and their new password repeated (for confirmation).
Problem Statement
Users should be able to view available carpools at /carpools
.
Carpools available (all)
Carpools joined
Carpools created
Carpools history (separated by joined/created?)
From this page, they should be able to view a carpool listing at /carpools/{journey_id}
.
Can join the carpool if seats available > 0.
Can leave the carpool.
Problem Statement
The user should have a page to edit their user profile details, including:
First and last name
Profile picture
Bio
Driver status
Note that the functionality is outside the scope of this issue - only the user interface is required here.
Breakdown
Profile picture
Bio
Top statistics (not all statistics - this should be on another page)
Driver or not (no by default)
Assume everyone's a passenger.
Breakdown
Optimise a combination of distance to the petrol station and price to provide recommendations.
Consider using an API to find the prices, such as this.
May work with a crowd sourcing system similar to Waze?
Users could give feedback for recommendations (thumbs up/down system?)
Problem Statement
Unnecessary details are currently shown in route analysis, such as ridiculous calorie counts and £0.00 fuel costs.
Add some checks so that only necessary details are displayed.
For example, calories may not be shown if the journey is >10km.
Problem Statement
Carpool listings are not currently refreshed when a new ride is successfully created.
This may confuse the user, so we should look to refresh it upon successful creation.
Validate address in google maps api call
Account for journeys with no available route for a certain transport type
Add a link to view carpool route on route planner from carpool listings screen
Breakdown
Create an SQLite3 database structure with some tables for the key features.
Account system (user ID, first name, surname, email, password)
User profiles (user ID, driver or not)
Journeys (journey ID, driver ID, location from, location to)
Driver profile (user ID, driver rating)
Passenger profile (user ID, passenger rating)
Post the file on the Discord text channel database
.
Embed map to route planner with directions displayed using google maps api
Functionality to enter 2 addresses and return information on the distance between the points and the duration of travel for multiple modes of transport
Hide carpool offers with pickup timestamp in the past.
Problem Statement
Uploading new avatars shows up immediately on the settings page, but it doesn't seem to save properly.
When you go to the profile page of the user, it doesn't show the image.
Problem Statement
In /routes
, the map is misaligned vertically.
This could be fixed by adding a margin to the top of the side panels.
Change the layout to have the map in full-screen, with the panels as overlays on top of this.
Use statistics on CO2, fuel usage, and travel duration to recommend alternative travel options
Problem Statement
Text isn't currently being wrapped in carpool listings, which means long locations can go off the page (see screenshots below).
Desktop View
Mobile/Responsive View
Problem Statement
Searching a route in /routes
currently doesn't work.
Problem Statement
Some developers are having problems with the path of the database - could be caused by MacOS/Windows differences?
Create a file with environment variables, and point towards that in all files where the database path is required.