In this project I worked in a 4 person team, where we developed a full stack movie application to search and bookmark movies from IMDb. The application was designed from the ground up with a PostgreSQL database, backend and single page application for the frontend.
Link to code:
https://github.com/ThomasBonderup/RAWDATA-project-group-1
https://github.com/ThomasBonderup/RAWDATA1-portfolio-subproject-2
Database design
Designed relational database design with database normalization and E-R models for the full stack movie application.
Database functionalities
Developed database query functionality to search for movie titles, trigger functions to save users queries into a search history table, extended search functionality to search for movie titles based on title, plot, characters and actor, exact-match querying with inverted index to match intersecting keywords, VARIADIC arrays, search ranking functionality.
Application Design
Designed backend system in ASP.NET Core with C# for the full stack movie application. The architecture consisted of a layered software architecture with a Web Service Layer developed in ASP.NET Core MVC to provide a REST API, that communicates with a Data Access Layer with Entity Framework through Data Transfer Objects to get data stored in a PostgreSQL database running on a server.
We added pagination to the REST API and basic security for the API with user authentication. Unit testing and Integration testing was used heavily in the project.
Single Page Application
The movie application was designed as a Single Page Application (SPA) with functionality developed in JavaScript and Knockout web framework. Bootstrap was used for UX.