ReelRealm is a full-stack web application for managing a movie library, developed as part of a course project for the Software Engineering course at the National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute".
- Introduction
- Technical Requirements
- Project Structure
- Installation
- Usage
- Features
- Testing
- Contributing
- License
The objective of this project is to solidify theoretical knowledge and practical skills in designing, modeling, developing, and testing software. The project focuses on developing a web application, "ReelRealm", which is a movie library. This application allows users to interact with a collection of movies, including creating, updating, and deleting entries, as well as managing user authentication and roles.
- Backend: NestJs, Sequelize ORM, PostgreSQL
- Frontend: ReactJs
The project is divided into two main parts:
- Backend: Manages the server-side operations using NestJs.
- Frontend: Manages the client-side operations using ReactJs.
- Users Module: Manages user information and roles.
- Auth Module: Handles user registration and authentication.
- Movies Module: Manages movie information including CRUD operations.
- Genres Module: Manages genre information including CRUD operations.
- Bookmarks & Liked Modules: Manages user interactions with movies.
- Uses JSX components for rendering UI.
- Services for interacting with the backend.
- Custom components and hooks for various functionalities.
-
Clone the Repository
git clone https://github.com/BadOfficer/Movie-Library.git cd Movie-Library -
Backend Setup
cd backend npm install -
Frontend Setup
cd frontend npm install
-
Running the Backend
cd backend npm run start:dev -
Running the Frontend
cd frontend npm run dev -
Access the application at
http://localhost:3000.
- User Management: Registration, authentication, and role-based access control.
- Movie Management: CRUD operations for movies.
- Genre Management: CRUD operations for genres.
- User Interactions: Bookmarking and liking movies.
- Filtering, Pagination, and Search: Enhanced movie browsing experience.
- Responsive Design: Adapts to various screen sizes.
Testing is performed using a systematic approach to ensure the application works as expected. Key functionalities tested include:
- User registration and authentication
- Adding and removing movies from favorites and bookmarks
- Updating user details
- Managing genres and movies
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.