WatchTime is a web application where users can view detailed information about movies as well as read or add reviews about any movie. It is inspired by Goodreads where users can sign up and register books to generate library catalogs and reading lists.
Welcome to check out a live version of WatchTime here: WatchTime.com
The frontend of WatchTime is handled with pug, CSS, and Javascript. The backend is built on express.js with a PostgresSQL database. Sequelize is used to manage the database.
- Clone this repository
`git clone https://github.com/Kxvin1/WatchTime.git`
- Install dependencies
`npm install`
-
Create a .env file based on the .env.example given
-
Setup your username and database based on what you setup in your .env
-
Migrate and Seed models
`npx dotenv sequelize db:migrate` && `npx dotenv sequelize db:seed:all`
- Start the app using:
`npm start`
- You can use the Demo user or create an account.
- Home Page
- All visitors are able to see the top 10 IMDb rated movies that are stored in the database.
- All visitors are able to see the editors' recommended movies.
- Each movie is linked to a specific movie detail page where a user is suggested to login to gain more authorities.
- Movies Page
- Lists all the movies in the database.
- Each movie is linked to a specific movie detail page where a user is suggested to login to gain more authorities.
- Registration / Login Page
- Recommendations appear if a user wants more actions on a specific movie detail page.
- Demo user account is available for those who do not want to register for an account.
- My Watchlist Page (User's CRUD operations)
- Users are able to add movies to their own personal watchlist.
- Users are able to edit the status of a movie on their own watchlist to any of the following:
- Plan to Watch
- Watching
- Have Watched
- Users are able to delete a movie from their own watchlist.
- Buttons have AJAX functionality.
- A Specific Movie Page (User's CRUD operations)
- Display detail information about a movie.
- Users are able to write their own reviews for any movie.
- Users are able to read all other users' reviews to a specific movie. They can also edit or delete their own reviews.
- Users are able to add a movie to their own watchlist by choosing a watch status.
- Buttons have AJAX functionality.
- Dark Mode
- Links on movie pages to the trailer
- Search feature