A movie database website implementing NodeJS, PostgreSQL and Express
This project is made by Group Y25 for the final programming assignment in Semester 2022/2023 for course Database System + Lab in Undergraduate of Computer Engineering study program, Department of Electrical Engineering, Faculty of Engineering, Universitas Indonesia. The group consists of:
For this project, our group has created a website implementing a SQL-based data system (PostgreSQL
). The front-end utilizes ReactJS
, while the back-end utilizes Node.JS
framework and Express
to connect it to the front-end. We also use TMDB
, a movie database API which will contain the movie information that will be displayed in the website
Users can register for an account or login to access the website. Once successfully logged in, there are several things the user can do, including:
- Searching for movies by name or by ID using the search bar
- Browsing through a list of movies in the main menu, and accessing the movie information page by clicking on a movie poster
- Accessing their user information page, containing information about their preferences and displaying a list of their favorite movies
- Adding movies to their favorites list, giving movies a rating, and discussing with other users using a comment system in the movies information page
- Logging out
The website utilizes TMDB's database of movies to store detailed information about the movies that will be displayed on WatchYouWant, while the remaining information that are vital to the operation of the website (like user information, comments, movie rating) will be stored in a PostgreSQL database utilizing NeonDB
's database services
Since WatchYouWant utilizes PostgreSQL (which is a relational database), there are several tables containing information that will be used. Here are the following tables:
Contains user information. This table has several attributes, including:
1. user_id
2. username
3. password
4. email
5. fav_movies
Contains local movie information. This table has several attributes, including:
1. movie_id
2. title
3. genre
4. rating
Contains data used in comment system. This table has several attributes, including:
1. comment_id
2. body
3. user_id
4. movie_id
5. created_at
Contains data to be used in the movie rating system. This table has several attributes, including:
1. user_id
2. movie_id
3. rating