Film Rating Application
The Film Rating is a web application that allows users to view films descriptions like genre, year, duration, actors, etc, and rate this films. The system requires user authentication for rating films, and includes an admin interface for managing actors, directors, and films.
Features
- User Authentication: Only authorized users can rate films. User registration and login functionality are implemented to ensure secure access. Users can sign up or log in using email/password or Google authentication.
- Film Rating: Users can rate films on a scale from 0 to 10.
- Film Descriptions: Users can view detailed information about films, including rating, genre, year, director, duration, budget, and actors.
- Admin Interface: Administrators have access to an exclusive admin interface so that they can add, edit, and remove films, actors, and directors.
Technologies Used
Backend:
- C#: Backend development language.
- ASP.NET Core Web API 7: Web framework for building RESTful APIs.
- Entity Framework Core 7: Object-Relational Mapping (ORM) tool for interacting with the database.
Frontend:
- Node.js 18.14.0: JavaScript runtime for building server-side applications.
- Angular 15: Frontend framework for building dynamic and interactive user interfaces.
- TypeScript: Programming language for building scalable and maintainable web applications.
Database and Hosting:
- Azure Blob Storage: Storage service for storing film covers.
- Azure App Service: Platform-as-a-Service (PaaS) for hosting the web application.
- Azure SQL: Relational database service for hosting the database.
Installation and Setup
1. Clone the repository:
git clone https://github.com/nazbez/FilmRating.git
2. Backend Setup:
- Install the latest version of .NET Core SDK
- Open the solution file
FilmRating.sln
in your IDE - Restore the NuGet packages by right-clicking on the solution file and selecting "Restore NuGet Packages" or using a command specific to your IDE.
- Update the database connection string in the
appsettings.json
file with your database configuration. - Apply any pending database migrations. You can do this through the command line by navigating to the root directory of the project and running the command:
Alternatively, you can use IDE-specific tools or commands to apply the migrations, e.g. Package Manager Console in Visual Studio
dotnet ef database update
- Build the backend project to ensure all dependencies are resolved and the project compiles successfully.
3. Frontend Setup:
- Open a command prompt and navigate to the
FilmRating\ClientApp
folder. - Install the dependencies:
npm install
- Start the Angular development server:
ng serve
4. Edit the hosts file (Windows):
- Open the file
C:\Windows\System32\drivers\etc\hosts
for editing. You may need administrator privileges to modify this file. - Add the following line to the file:
127.0.0.1 film-rating.local.com
5. Access the application:
- Open your web browser and go to
https://film-rating.local.com:7057
to access the Film Rating Application.
Usage
- Register a new user account or log in with an existing account. You can sign up or log in using email/password or Google authentication.
- Browse the list of films to view their descriptions. (Note: Unauthorized users can also view film descriptions)
- Rate films by selecting a rating from 0 to 10.
- Administrators can log in with their admin credentials to access the admin interface.
- In the admin interface, administrators can add, edit, and remove films, actors, and directors.
Contribution
If you would like to contribute to the Film Rating project, we welcome your contributions! Follow these steps:
- Fork the repository on GitHub.
- Create a new branch with a descriptive name for your feature or bug fix.
- Make your changes and commit them to your branch.
- Push your branch to your forked repository.
- Submit a pull request to the main repository, explaining your changes in detail.
Please follow the project's coding style and guidelines when contributing.
Team
- Nazar Bezuhlyi: GitHub profile
- Yulia Biriukova: GitHub profile
- dmytryG: GitHub profile
Feel free to reach out to any of the team members if you have any questions or need assistance with the project.
License
This project is licensed under the MIT License