Project Idea & Motivation
This semester I have completed Application Development with .NET, where I collaborated with fellow peers to successfully complete a fullstack project. The assessment objective was to have a unique real world project idea which adhered to the marking criteria requirements. Our solution is going to tackle the ongoing struggle of choosing a movie by offering mood based recommendations and interactive social features, promoting a dynamic community of movie enthusiasts who appreciate a more engaged and personalised viewing experience. The MoodMovies is a full-stack application that recommends movies based on user moods or through detailed searches and filters. It incorporates features like personal movie lists with ratings and notes, social connectivity for movie related discussions, and comprehensive user authentication for enhanced security and personalisation.
Technology Stacks
Frontend Stacks:
React with Tailwind CSS: Provided a reactive user interface design, utilising Tailwind CSS for responsive and aesthetic component styling.
TMDB API Integration: Connected with the TMDB API to fetch and recommend movies based on selected user moods.
React Hook Form with Validation: Ensured data integrity through form validations, improving user input accuracy.
Routing Mechanisms with React-Router Dom: Implemented private and public routing to control access and ensure user authentication across different components of the application.
Enhanced UI Components: Included a variety of interactive elements such as buttons, dropdowns, navigational bars, react tostify alerts and dynamic effects, all crafted to enhance user engagement.
Comprehensive Page Layouts: From login to profile management, each page is designed with specific functionalities to facilitate user interactions and tasks effectively.
Backend Stacks:
ASP.NET Core with Entity Framework Core: Serves as the backbone for our server-side logic, utilising a data-first approach to handle database operations efficiently.
FluentValidation: Implemented to ensure robust input and data validation across server-side processes.
JWT Authentication: Facilitated secure user authentication processes, safeguarding user sessions and interactions.
LINQ Queries: Employed for dynamic data retrieval and operations, interfacing seamlessly with an external SQLite database.
Controller Architecture: Backend controllers orchestrate data flow between the React frontend and the server, handling requests and responses diligently.
Error and Exception Handling: Comprehensive mechanisms are in place to manage and respond to errors effectively, enhancing reliability.
NUnit Testing: Utilised NUnit as the testing framework to conduct thorough automated tests, ensuring each backend functionality adheres to expected outcomes and maintains high reliability and performance standards.
Project Demo
Project Github Repository: https://github.com/Scorpio-2410/MoodMovies
Learning Outcomes
This project not only reinforced my foundational programming skills but also enhanced my ability to work collaboratively using tools like GitHub in a group setting. The experience has prepared me for further academic projects and professional roles as a software developer. MoodMovies stands as a testament to the practical application of full-stack development in solving real world problems, providing a platform that not only recommends movies based on moods but also fosters community interaction among movie enthusiasts.