- The frustrating part about planning a trip with friends is keeping track of all the details. Wouldnโt it be easier if all the details were in one place for all to see? Travel Buddies makes it easy to organize a trip while keeping everyone involved on the same page.
Travel Buddy is a 10 day, 6 person project. The idea was to build a web application that allows users to connect and plan trips to national parks.
- Apply principles of flow control across multiple methods
- Design a one to many relationship using an API backend application
- Design a many to many relationship using an API backend application
- Design self referential relationship using an API backend application
- Write migrations to create tables with columns of varying data types and foreign keys.
- Use Rails to create web pages that allow users to CRUD resources
- Use Rails to allow users to connect with other users
- Create instance and class methods on a Rails model
- Write model and feature tests that fully cover data logic and potential user behavior
Development | Testing | Gems |
---|---|---|
Ruby 2.7.2 | RSpec | Pry |
Rails 5.2.5 | WebMock | ShouldaMatchers |
PostgresSQL | VCR | Capybara |
Postico | Launchy | Figaro |
Atom | SimpleCov | Faraday |
Github | Capybara | |
FactoryBot |
The base path
of each endpoint is:
https://travel-buddy-api.herokuapp.com/api/v1
The following table presents each API endpoint and its documentation.
Endpoint | Docs/Example |
---|---|
Get One User | GET /api/v1/users/{user_id} |
Find or Create User | GET /api/v1/users/{user_id} |
Get User Friendships | GET /api/v1/users/{user_id}/friendships |
Create User Friendship | POST /api/v1/users/{user_id}/friendships |
Get One Trip | GET /api/v1/trips/{trip_id} |
Create Trip | POST /api/v1/trips |
Update Trip | PATCH /api/v1/trips/{trip_id} |
Get Trips Accommodations | GET /api/v1/trips/{trip_id}/accommodations |
Get single Trip Accommodation | GET /api/v1/trips/{trip_id}/accommodations/{accommodation_id} |
Create Trip Accommodation | POST /api/v1/trips/{trip_id}/accommodations |
Update Trip Accommodation | PATCH /api/v1/trips/{trip_id}/accommodations/{accommodation_id} |
Delete Trip Accommodation | DELETE /api/v1/trips/{trip_id}/accommodations/{accommodation_id} |
Get Trips Travel Buddies | GET /api/v1/trips/{trip_id}/travel_buddies |
Create Trip Travel Buddy | POST /api/v1/trips/{trip_id}/travel_buddies |
Get Trip Checklists | GET /api/v1/trips/{trip_id}/checklists |
Get single Trip Checklist | GET /api/v1/trips/{trip_id}/checklists/{checklist_id} |
Create Trip Checklist | POST /api/v1/trips/{trip_id}/checklists |
Get Trip Checklist Items | GET /api/v1/trips/{trip_id}/checklists/{checklist_id}/checklist_items |
Create Trip Checklist Item | POST /api/v1/trips/{trip_id}/checklists/{checklist_id}/checklist_items |
Update Trip Checklist Item | PATCH /api/v1/trips/{trip_id}/checklists/{checklist_id}/checklist_items/{checklist_item_id} |
Delete Trip Checklist Item | DELETE /api/v1/trips/{trip_id}/checklists/{checklist_id}/checklist_items/{checklist_item_id} |
Get NPs by State | GET /api/v1/parks?state='WY' |
Get NPs by Activity | GET /api/v1/parks?activity='Fishing' |
Get NP by Park Code | GET /api/v1/parks/{park_code} |
Get Weather | GET /api/v1/weather |
๐ค Antonio King
- Github: Antonio King
- LinkedIn: Antonio King
๐ค Elliot Olbright
- Github: Elliot Olbright
- LinkedIn: Elliot Olbright
๐ค Carina Sweet
- Github: Carina Sweet
- LinkedIn: Carina Sweet
๐ค Michael Abbott
- Github: Michael Abbott
- LinkedIn: Michael Abbott
๐ค Matt Kragen
- Github: Matt Kragen
- LinkedIn: Matt Kragen
๐ค Matt Toensing
- Github: Matt Toensing
- LinkedIn: Matt Toensing