---
# System prepended metadata

title: Milestone 4

---


# Milestone 4

## Revised List of Features

### 1. Account Creation

Site visitors can register a persistent account where they can create a profile, use the rideshare system and interact with other users.

### 2. Ride Creation

The driver intitiates the ride-share, and inputs vehicle and location information.  The ride is then listed in searches.

### 3. Ride Search

Given travel dates, origin, and destination, lists relevant 'rides' to join as well as individual 'travelers' so potential drivers can decide whether to create a ride.

### 4. Joining a Ride

Any member of the group can send invites to people in search results or their friends.  Additionally, non-drivers can request to join the group after finding it in search results.

### 5. Ride-Share Interface

Group members have access to group chat, a map showing the trip route, and cost information

### 6. Public Profiles

Users can upload information and a picture to their public profile.

### 7. Friends

Users can send, accept, and decline friend requests.  Friends can private chat and invite eachother directly to groups.

### 8. User Feed

Display recommendeded destinations and rides based on previous trips, and friend activity.

### 9. Rating System

Allow users to rate other users based on the experience they have had through the ride.

### 10. Community Feature
Allow users to share photos & stories about their recent trips, users who are friends with each other can like and comment, functions similar to instagram.
## Architecture Diagram

![](https://i.imgur.com/oziALS8.png)


## Front-End Design


[Link to diagrams in Figma](https://www.figma.com/file/hx8Tududfz6ovsFXTx39rp/Milestone-4-Wireframe)

## Web Service Design

| API | Description | Data Submitted | Data Received |
|---|---|---|---|
| [OpenRouteService](https://openrouteservice.org/dev/#/api-docs/v2/directions/{profile}/get)| Computes routes for trip planning | Origin and destination coordinates | JSON object with route information |
| [OpenStreetMap](https://wiki.openstreetmap.org/wiki/API) | Provides map tiles to display on pages (with [Leaflet](https://leafletjs.com/) JS library) | Look-at coordinates | Visual map tiles |
| [Fuel Economy Web Services](https://www.fueleconomy.gov/ws/rest/ympg/shared/ympgDriverVehicle/26425) | Provides gas mileage to calculate trip cost | Vehicle ID | MPG dataset (of which we take average)|
[CollectAPI](https://collectapi.com/api/gasPrice/gas-prices-api/stateUsaPrice) | Provides average gas price for US state | state | average gas price |

## Database Design - PostGreSQL

![](https://lh4.googleusercontent.com/TC9YXLCFrqWNjE_iigPwYgH4oG54VKVevE47wqeYVY13vAayw0KCemkl5ZRKcjqougmKd9qknvNIlIrwwkaKStmuSiqwIGNnyoGbxa7jfT1ZVHtsXEDANcWZXMFvVbhXye3vG_VW)

## Individual Contributions

### Allen Zhang
- Revised Login and Registration page
- Front end design with Figma
- Created My Account page
- [Lates commit](https://github.com/CSCI-3308-CU-Boulder/3308Summer21_300_4/commit/09145515bdcc876caf87664c2380ada6149ef671)

### Caleb Noel
- Improving styling for chat page
- Starting to implement javascript features to make chat actually functional
- Helping to update routes, move to ejs
- Finally fixed bug where scroll bar appears and dissapears when typing in chat
- [Latest commit](https://github.com/CSCI-3308-CU-Boulder/3308Summer21_300_4/commit/f17751039a0cc423bffa20248c07dd961a6f8df4)

### Daniel Lisle
- Converted HTML views to EJS templating engine and updated relevant hyperlinks and routes
- Created header and footer partials
- Created web services design
- Revised and prioritized feature list
- Updated architecture diagram
- [Latest commit](https://github.com/CSCI-3308-CU-Boulder/3308Summer21_300_4/commit/2cd468c7c049407394a66a71a7fa176255243fac)

### Erica Shivers
- finished writing queries to fetch appropriate chats and send to the chat page
- User registration queries are setup at the back-end
- Validating the user registration POST request data through “express-validator” package
- Login functionality works properly
- Restriction of logged-out users from critical pages
- Search Implementation to a marginal extent
- [Latest commit](https://github.com/CSCI-3308-CU-Boulder/3308Summer21_300_4/commit/1e55013927c902a5d87b8c7b1fe39294495ff389)

### Justin Lee
- Made navbar update on login
- Continued working on search function
- Updated Jira sprints and continued clean up on front end
- Design work on feature that saves rides and favorite hiking spots with EJS
- [Latest commit](https://github.com/CSCI-3308-CU-Boulder/3308Summer21_300_4/commit/42c599d12ab0eb36f34422da1d45c5446497827a)
## Challenges
1. Implementing chat features: we can remove group ride chats and focus on direct chats.
2. Community feature: This feature is a stretch feature, and can be cut if we do not have the time to complete it.
3. Integrating database with front end: Adding the serverside/database stuff has messed up our file structure. Also the whole team is not fully confident with working on the back end features required. If we struggle with this we can ask our TA for adivce or help to get it finished since this is a must do.
