Viewing party is an application created by Angela Guardia & Cam Chery, as part of the Turing School of Software and Design Backend curriculum. It was completed over a period of 10 days.
- CI & Deployment
- About This Project
- Learning Achievements
- Local Setup
- Schema Design
- Testing
- Contributors
- Resources
The deployment for our application in production is handled by Heroku and can be accessed here:
If you'd like to get the full experience you can use this account that already has friends and viewing parties added:
email: [email protected]
password: 1234
Viewing party is a web application that allows the user to explore movies and create events to watch them with friends. Users can register with their name, email, and password, and are automatically logged into the application. Returning users can also login. Once they are authenticated, users can discover movies by top 40 rated movies, or they can search by movie title and get the top matching results. Movie pages show movie information as well as a poster and trailer. All movie data is obtianed by TheMovieDB API.
Users can add friends through their email addresses. Users can then create viewing parties by picking a movie, a date, and adding friends. On the user dashboard users can view all of the parties that they are either hosting or been invited to.
- Consume JSON APIs that require authentication
- Implement basic authentication
- Implement a self-referential relationship in ActiveRecord
- Apply RuboCop’s style guide for code quality
- Utilize Continuous Integration using Travis CI and deploy to production using Heroku
- Fork and Clone the repo
- Install gem packages:
bundle install
- Setup the database:
rails db:{create,migrate}
- Install Figaro gem to gain access to your local application.yml file:
bundle exec figaro install
- Add your API key to application.yml file: must be in format of
TMDB_API_KEY: "<your API key>"
- Ruby 2.5.3
- Rails 5.2.4.3
We used RSpec with the help of Capybara, Shoulda-matchers, FactoryBot, Webmock, and VCR to implement thorough and efficient tests that resulted in full test coverage:
-
- We used the following endpoints:
- "/movie/top_rated"
- "/search/movie"
- "/movie/{movie_id}"
- "/movie/{movie_id}/credits"
- "/movie/{movie_id}/reviews"
- We used the following endpoints: