Project is hosted in Azure and features a Three-Layer architecture:
Presentation Layer: consists of ASP.NET Core 2.2 Web Project with fully responsive beautiful design.
Business Layer: Services and business features processing class library.
Data Layer: Holding the configuration for the data-base and additional mappings of table-relationships.
App includes thorough unit testing for the services and business features.
The Website allows the client to Register choosing between two distinct Roles: User and Manager.
One super-user is seeded upon initial start-up of the application along with basic
data-base information via JSON files and pre-made images.
The User can login and enjoy different authorised features based on his User Role.
Project includes caching for some parts of its Movie Collections to lower the database trips.
Example: Top Eight movies Collection inside every single movie is a very-frequently seen collection.
Caching it would allow Dramatic performance boost for the daily usage of the website.
Project was developed using end-to-end Feature branches (left un-deleted in the git-system for the purpose of showcasing the process)!
Un-Logged users Can:
Browse all movies;
Search Movies by Name and have paginated result;
Open and view detailed info about movies and actors;
Read user Reviews for the movie;
Perform Advanced Movie search via jquery.DataTable interface;
Perform Advanced search for Actors and preview Categories as well;
Enjoy the various Carousels for Top Movies and more;
Logged users with role "USER" Can on top of all previous:
Leave Reviews for movies;
Edit their own Reviews;
Delete their own Reviews;
Logged users with role "MANAGER" Can on top of all previous:
Add Movies using ajax search for actors and categories in the process;
Edit Movies using ajax search for actors and categories in the process;
Delete Movies;
Add Actors using ajax search for movies;
Edit Actors using ajax search for movies;
Delete Actors;
Edit Reviews;
Delete Reviews;
Logged user with role "ADMIN" Can on top of all previous:
Delete user accounts inside the special Admin Area
that includes table for all users;