Advanced Higher Computing
For my Advanced Higher Computing project I built a Physical Media Inventory Manager which was a web app for tracking collections of vinyl records, cassettes and CDs. The project covers both web design and integration with a relational database, all running through a local XAMPP server that I tunnelled to a live domain using Cloudflare so others could actually use it.
I had to analyse the problem, design a full solution. Showing the prorcess across analysis, design, implementation, testing and evaluation stages. The site is a multi page PHP website where users can create an account, log in, add physical media to their personal collection using a form, and then search, filter and sort everything they own. On top of the required features I also added a public user leaderboard and a collection stats page.
The database side was where I felt most out of my depth at first as I've never created and accessed a database before. Getting the dynamic search filters and server side validation all chaining together properly was very cool. I'm very pleased with the overall UI/style of the site.
I built a multi page PHP website with HTML forms for adding, editing and deleting media items. CSS media queries for the responsive layout for smaller screens. PHP session variables keep users signed in across all pages storing their userID, username and login time. Serverside validation makes sure fields only accepts correct inputs, enforced in PHP rather than relying on the HTML alone.
I designed two MySQL tables. One for user login details and one for the media collection, linked via a foreign key on userID. PHP PDO handles all the queries covering: INSERT, SELECT, UPDATE and DELETE. The collection view builds a dynamic SQL query that chains WHERE conditions based on whichever filters and search terms the user has active at the time, including title, artist, location, media type and a year range. I also wrote more complex JOIN queries to power the user leaderboards ranking users by collection size, average release year and most collected artist.
Media Collection Page
Collection Leaderboard Page
Navbar Showcase
Add Media Page
User Profile Page
User Stats Page