Onyva is an innovative travel application that aims to simplify the process of planning a trip and enhance the overall travel experience for users. With Onyva, users can easily create personalized itineraries for their trips, complete with local recommendations for restaurants and tourist attractions. Users can also invite their friends to join them on their trips and manage their trip details together.
At its core, Onyva is committed to providing an exceptional travel experience for users, and we believe that our application can be a valuable tool for anyone looking to plan their next adventure.
Organize your upcoming travel plans with Onyva!
This repo is a frontend application built on Rails which consumes our Onyva Backend API endpoints in order to display our data.
The backend repo is available here.
- API building and consumption
- Use of an external OAuth provider to authenticate users
- Implement a production-quality user interface using Bootstrap or other common CSS styling framework
This application was designed according to the project specs here.
Running this project requires:
- Rails 5.2.8
- Ruby 2.7.4
- External APIs:
- This application required external API keys which are stored in a .env file at the top level of the program directory
- API keys can be requested but must be named as follows:
- 📍 GEOAPIFY_KEY - Geoapify
- You will need to create a project in the Google Cloud Console, enable the Google OAuth 2 API, and create a client ID and client secret.
- 🆔 GOOGLE_CLIENT_ID - Google Client ID
- 😶 GOOGLE_CLIENT_SECRET - Google Client Secret
- API keys can be requested but must be named as follows:
- This application required external API keys which are stored in a .env file at the top level of the program directory
- Fork and clone this repository
cd
into the root directiorybundle install
rails db:{drop,create,migrate,seed}
- Run the test suite with
bundle exec rspec
- Pull down the Back-End repo. Set up instructions are in that repository's README. Do not nest this inside your front-end repository.
- Start the local server by running
rails s
- Visit the app on
localhost:3000
in your web browser.
To use the application, go to http://localhost:3000 in your web browser. You should see the homepage, which displays a list of your trips if you are logged in, or a login/signup form if you are not.
This application uses Google OAuth 2 for user authentication. When you click the "Sign in with Google" button on the homepage, you will be prompted to log in to your Google account and authorize the application to access your basic profile information. Once you are authenticated, you will be redirected back to the application and logged in.
To create a new trip, click the "Create Trip" button on the homepage. You will be taken to a form where you can enter the details of your trip, such as the name, destination, and dates. Once you submit the form, your new trip will be added to the list on the homepage.
To edit a trip, visit the trip details page and click the "Update Trip" button. You will be taken to a form where you can update the trip details. Once you submit the form, the trip will be updated.
To delete a trip, visit the trip details page and click the "Delete Trip" button. You will be riderected to your home page.
To invite a friend to your trip, click the "Invite friends" button on the trip page. You will be taken to a form where you can enter the email of the user. Once you submit the form, the trip will be added to your friends trip list where they can accept or decline the invitation.
🎓 All participants in this project are graduates from the Turing School of Software & Design.
👩 Anhnhi Tran, PT, DPT
GitHub: @anhtran811
LinkedIn: anhtran8
👩 Kaylah Rose Mitchell
GitHub: @kaylahrose
LinkedIn: kaylahrose
👦 Matisse Mallette
GitHub: @MatisseMallette
LinkedIn: matisse-mallette
👦 Braxton Eddings
GitHub: @beddings81
LinkedIn: braxton-eddings
👦 Alastair Lloyd
GitHub: @Adrlloyd
LinkedIn: adrlloyd
If you would like to contribute to the project, feel free to fork the repository and submit a pull request. Please make sure to follow the project's coding conventions and testing guidelines.