This is an Interactive Full-Stack Application.
-
As a user, I want to make a web application which allows a user to browse movies using movie api and view details about the movie.
-
The USER creates an account providing a NAME, an EMAIL, and a PASSWORD.
-
The USER can then LOG IN with the correct CREDENTIALS.
-
THE USER will then be taken to a HOME PAGE with a SEARCH area.
a. The HOME PAGE consists of MOVIE POSTERS that the USER has FAVORITED.
b. THE SEARCH area has BUTTONS that correspond to specific GENRES.
b-1. The BUTTONS each take the USER to the specified GENRE.
b-2. The SEARCH area has an input field for the USER to search for a MOVIE TITLE.
-
Upon clicking a GENRE or searching a MOVIE TITLE the page is populated with MOVIES based on the USER'S REQUEST.
-
The USER is given the capability of saving the MOVIES to their FAVORITES by clicking the HEART at the bottom of the MOVIE CARDS.
-
Should the USER not find a MOVIE that they want to FAVORITE, they may return HOME by clicking the 'HOME' ICON in the Upper Right and SEARCH AGAIN. (Future project feature).
-
The USER can click on a POSTER and be taken to a page with DETAILS about the MOVIE such as a DESCRIPTION and CRITIC REVIEWS. (Future project feature).
-
The USER will still be able to FAVORITE the MOVIE on this page.(Future project feature).
-
When the USER is finished FAVORITING MOVIES they may RETURN HOME to view all of their FAVORITES(Future project feature).
-
If the USER does not want to risk their FAVORITES being changed by someone else, then the USER should click 'LOG OUT' in the Upper Right.
-
Node.js and Express.js to create a RESTful API.
-
Handlebars.js as the template engine.
-
MySQL and the Sequelize ORM for the database.
-
Have both GET and POST routes for retrieving and adding new data.
-
Have a folder structure that meets the MVC paradigm.
-
It Includes an authentication (express-session and cookies).
-
Protected API keys and sensitive information.
- eslint
- prettier
- auth
- axios
- bcrypt
- connect-session-sequelize
- dotenv
- express
- express-handlebars
- express-session
- mysql2
- sequelize