A web app to plan your next great trip.
Users can add trips and build out an itinerary.
- Fork and clone this repository.
- Install dependencies with
npm install
. - Use
npm start server
to spin up develpment server.
- Fork and clone this repository.
- Install dependencies with
bundle install
. - Use
bin/rails server
to spin up develpment server.
- Planning:
- Create user stories.
- Develop wireframes.
- Develop ERD.
- Build out back end.
- Decided to use Ruby, Rails.
- Scaffold api.
- Create and update database.
- Build out front end.
- Decided to use JS, React.
- Work through CRUD on the first resource (trips).
- Work through CRUD on the second resource (activities).
- Once the above is complete, shift to general (non-api) front end functionality.
- Then focus on styling.
- HTML
- Bootstrap
- Javascript
- React
- Ruby
- Rails
As a user, I want to sign up & auto sign in.
As a user, I want to sign in.
As a signed-in user, I want to change my password.
As a signed-in user, I want to sign out.
As a signed-in user, I want to add a new trip.
As a signed-in user, I want to edit existing trips.
As a signed-in user, I want to delete existing trips.
As a signed-in user, I want to add activities to my trip.
As a signed-in user, I want to edit and/or delete activities.
The application will have a two one-to-many relationships: users to trips and trips to activities.
Table: Users
- email: string
- id: index
Table: Trips
- country: string
- city: string
- id: index
Table: Activities
- begin_date: datetime
- end_date: datetime
- activity_title: string
- trip_id: index
- id: index
Prefix | Verb | URI Pattern | Controller#Action |
---|---|---|---|
trips | GET | /trips(.:format) | trips#index |
trips | POST | /trips(.:format) | trips#create |
trip | GET | /trips/:id(.:format) | trips#show |
trip | PATCH | /trips/:id(.:format) | trips#update |
trip | PUT | /trips/:id(.:format) | trips#update |
trip | DELETE | /trips/:id(.:format) | trips#destroy |
activities | GET | /activities(.:format) | activities#index |
activities | POST | /activities(.:format) | activities#create |
activity | GET | /activities/:id(.:format) | activities#show |
activity | PATCH | /activities/:id(.:format) | activities#update |
activity | PUT | /activities/:id(.:format) | activities#update |
activity | DELETE | /activities/:id(.:format) | activities#destroy |
sign_up | POST | /sign-up(.:format) | users#signup |
sign_in | POST | /sign-in(.:format) | users#signin |
sign_out | DELETE | /sign-out(.:format) | users#signout |
change_password | PATCH | /change-password(.:format) | users#changepw |
- Improve input field for activity date and time.
- Allow for more detail to be saved within trip (flight info, hotel, etc.).
- Connect to Google API, so users can search and select locations for activities.
- Could then incorporate directions to each activity.
- Allow users to invite others to collaboratively build itinerary.