viewing_party's Introduction
viewing_party's People
viewing_party's Issues
Continuous Integration with Travis CI
Go Here and set up your account.
Add the project to your repositories. You can do this from the main dashboard page by clicking the plus button next to My Repositories
Configure your API keys that are environment variables for the travis environment. You can find configuration for environment variables by selecting your repository from the Travis dashboard and clicking More Options -> Settings.
Configure deployment to Heroku by filling in the api_key and app variables in the .travis.yml file.
You can test that your Travis set up is working by pushing a commit to your repository. You should see a build triggered by the Travis dashboard. When the build is complete, you should see the change automatically deployed to Heroku.
RuboCop
You will use RuboCop to enforce style guidelines. The evaluation rubric at the end project will use it to measure code quality.
RuboCop will be installed when you bundle install.
Simply run bundle exec rubocop
from the command line to see if there are any violations. Run RuboCop throughout the project to pick up on style violations as you go. DO NOT wait until the end to fix a giant pile of RuboCop errors.
As you work through the project, you may find some of the RuboCop complaints difficult to decipher. Reference the RuboCop documentation and the RuboCop Rails documentation for more information.
Please reach out to your instructors if you find any style violations that you believe should not be enforced. Ask your instructors before editing .rubocop.yml
Deploy with different service
Explore using a different service for deployment.
Services to Consider:
Google Cloud
AWS Elastic Beanstalk
You can also look into another option, but please talk to your instructors about which service you will be choosing.
Movie Details Page: Create Viewing Party
As an authenticated user,
When I visit the movies details page,
and I click the button to create a viewing party,
I should be redirected to a new viewing party form
Discover Page: Find Movies
As an authenticated user,
When I fill in the text field with a keyword(s),
And I click on the "Find Movies" button
I should be taken to the movies page
Details:* To get the top-rated movies the application will be consuming The MovieDB API
Movies Page: Getting Movie Details
As an authenticated user,
When I visit the movies page,
I should see the 40 results of my search,
And I click on the movie title link,
I should be redirected to the movie's details page.
Welcome Page Login
As a user,
When I visit the root path,
I should see a button to Log In with Google
Details: Implement Google OAuth 2.0 For the application, you will need the user to authorize access to their email or profile, as well as, calendar events. As part of the OAuth process, you will need to include the appropriate scopes for the users authorization. This documentation may be helpful.
- Uses OmniAuth Google DO NOT hand roll the OAuth handshake
Discover Page: Top-Rated Movies
As an authenticated user,
When I click on "Find Top-Rated Movies",
I should be taken to the movies page
Details: To get the top-rated movies the application will be consuming The MovieDB API
Movies Page
As an authenticated user,
When I visit the movies page,
I should see the 40 results from my search,
I should also see the "Find Top Rated Movies" button and the Find Movies form at the top of the page.
Details: The results from the search should appear on this page, and there should only be a maximum of 40 results. The following details should be listed for each movie.
- Title (As a Link to the Movie Details page)
- Vote Average of the movie
Dashboard
New Viewing Party Page
As an authenticated user,
When I visit the new viewing party page,
I should see a form with the following:
- Movie Title (that is un-editable)
- Duration of Party with a default value of movie runtime in minutes
- When: field to select date
- Start Time: field to select time
- Checkboxes next to each friend (if user has friends)
- Button to create a party
Details When the party is created, the authenticated user should be redirected back to the dashboard where the new event is shown. The event should also be seen by any friends that were invited when they log in.
Send Viewing Party Event Details via Email to Invited Friends
Explore ActionMailer for sending emails.
When a user creates a viewing party and invites friends use ActionMailer to send an email with the event details to each friend.
Discover Page
As an authenticated user,
When I visit the '/discover' path
I should see
- Button to Discover top 40 movies
Details When the user clicks on the top 40 button they should be taken to the movies page.
- A text field to enter keyword(s) to search by movie title
- A Button to Search by Movie Title
Details When the user clicks on the Search button they should be taken to the movies page
The movies will be retrieved by consuming The MovieDB API
Movie Details Page
As an authenticated user,
When I visit the movie's detail page,
I should see
- Button to create a viewing party
Details: This button should take the authenticated user to the new event page
And I should see the following information about the movie:
- Movie Title
- Vote Average of the movie
- Runtime in hours & minutes
- Genere(s) associated to movie
- Summary description
- List the first 10 cast members (characters&actress/actors)
- Count of total reviews
- Each review's author and information
Details: This information should come from 3 different endpoints from The Movie DB API
Registration Page
When a user visits the '/registration' path they should see a form to register.
The form should include:
- Password
- Password Confirmation
- Register Button
Once the user registers they should be logged in and redirected to the dashboard page
Familiarize yourself with Github Projects Tooling
Below is a checklist of some of the features that you can use to help your project management easier. Take some time to explore how to use this tool more effectively as a team.
- Press the ? key to see available keyboard shortcuts
- Add a new column
- Drag and drop this card to the new column
- Search for and add issues or PRs to your project
- Manage automation on columns
- Archive a card or archive all cards in a column
- Automatically move your cards to the right place based on the status and activity of your issues and pull requests.
Welcome Page
When a user visits the root path they should be on the welcome page which includes:
- Welcome message
- Brief description of the application
- Button to Log in
- Link to Registration
Details: Implement basic auth in the application allowing a user to log in with an email and password. The password should be stored in the database using bcrypt.
Dashboard: Friends
As an authenticated user,
I see a section for friends,
In this section, there should be a text field to enter a friend's email and a button to "Add Friend"
Scenarios:
-
If I have not added any friends there should be a message. "You currently have no friends".
-
If I have added friends, I should see a list of all my friends.
Details: Users should be able to add a friend by their email address, as long as, the friend is a user of our application and exists in our database.
Example:
Bugs Bunny and Lola Bunny are users of our application, but Daffy Duck is not.
- When Bugs Bunny enters
[email protected]
to add friend it will be successful and Lola should show up as Bugs Bunny's friend. - When Bugs Bunny enters
[email protected]
to add friend it should give an error message that the user does not exist.
Tips: You'll want to research self-referential has_many through. Here is a good starting point to understand the concept. You will probably need to do more googling but that's part of the fun ;)
- Write a happy path test
- Write a sad path test
Write front-end Javascript
Explore front end JavaScript within your Rails application.
Currently, whenever we click "Find Top Rated Movies" or "Find Movies" the user is redirected to a new page. Implement JavaScript so that instead of redirecting to a new page the results will be displayed on the current page without refreshing.
Consume additional API endpoints
Explore additional endpoints that could be consumed from The MovieDB API. Choose 2 additional endpoints to consume and display within the application.
Dashboard: Viewing Parties
As an authenticated user,
I should see the viewing parties I have been invited to with the following details:
- Movie Title
- Date and Time of Event
- Status of Invited
I should also see the viewing parties that I have created with the following details:
- Movie Title
- Date and Time of Event
- Status of Host
Implement Chat Functionality with ActionCable
Explore ActionCable and WebSockets
Implement chat functionality within your application so that 2 users can chat with one another.
Welcome Page: Log In
As a user,
When I visit the root path,
I should see a button to Log In with Google
Details: Implement Google OAuth 2.0 For the application, you will need the user to authorize access to their email or profile, as well as, calendar events. As part of the OAuth process, you will need to include the appropriate scopes for the users authorization. This documentation may be helpful.
Tips: Testing this is tricky. Don't worry about testing during the spike. In fact, TDD'ing this is really tricky if you've never done it before. Get a working implementation first even when you are pairing and backfill a test. You should not try to fill out the form and click buttons on Google in your tests. Omniauth gives us a special way to test this. Use these docs as a starting point:
- Uses OmniAuth Google DO NOT hand roll the OAuth handshake
- Tests the handshake using OmniAuth mock_auth (see above tips section).
Dashboard: Discover Movies
As a authenticated user,
When I click on the "Discover Movies" button,
I am redirected to a discover page.
Deploy Heroku
In addition to the normal deployment, you will also need to set up any API keys manually for your Heroku production environment.
New Viewing Party: Submission
As an authenticated user,
When I visit the new viewing party page,
And I fill out the duration,
And I pick the date,
And I check boxes for each invited friend,
And I click "Create Party",
The event should be added to my Google Calendar,
And I should be redirected back to my dashboard where I see the event details.
Details: The event should also be displayed on the selected friend's dashboard with a button to add to their calendar.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.