DMIT Capstone (Bazaar Brick)

Overview

This capstone project we did at the final semester of our program in DMIT encapsulates all that we learned throughout our two years. We worked in a team of 4 people, each in charge of different parts of the project. We were to create a website based on our client's needs.

We met with our client, then after a productive meeting, we figured out their needs. They wanted a website similar to Brickset that would let users register an account, and then be able to track their Lego collections. However, he didn't like that Brickset's site was not very aesthetically pleasing, and wanted a brighter, colourful, and more "kid-friendly" site. That was our task.

We started with a design sprint. We went through the whole sprint process, from the identifying our needs, to creating ideas, to prototyping and testing, and then back to the drawing board when we wanted to make changes. We eventually agreed on a design and tools, and went to work.

My task was to come up with the database design, and then the back end admin panel design/functionality for our client to manage the database. My other team members were in charge of web design and functionality of the front facing website.

My first step was to come up with an ERD or Entity Relationship Diagram. Legos are actually very complex in terms of categories, the different sets they have, etc. I spent a good amount of time figuring out a diagram that would work. The diagram above that is labeled "Lego Market ERD" is the first iteration that I came up with. The other ERD is the final one after many revisions. I exported that diagram using mySQL Workbench.

The framework we ended up using was Laravel 10. If you don't know, Laravel is a PHP framework, one of the most popular ones out there actually. We went with Laravel because of its popularity, and therefore, strong community support. We had to teach ourselves how to use it, as we didn't learn this framework in any of our classes. All we had was basic PHP and database knowledge.

In my part of the project, I had to then teach myself how databases work in Laravel and the MVC (model-view-controller) school of thought that it followed. I had to figure out how database migrations worked, and how the databases are managed by the models and controllers in the Laravel app.

I then had to figure out the best way to create an admin panel for our client to use to manage his database. After much research, I came across Filament PHP. Filament is a sort of add-on to the Laravel framework that creates an easy way to create an admin panel. So on top of learning Laravel, I also had to teach myself how to use and integrate Filament into our Laravel app.

The screenshots above showcase the finished Filament admin panel that I created. It is able to Create, Update, and Delete items in the database seamlessly. It is able to pull information from the categories that the admin creates for their Lego sets. There is image upload functionality with built-in image editor. The admin can sort and search for existing Lego sets in the database. It is also secured by only being accessible via a secret URL, and a login page that only recognizes the admin user. The Lego sets that the admin adds in the back end is successfully displayed on the front end of the website thanks to the teamwork between my team members and I.

And lastly, I wrote up hand-off documentation that was given to the client so that they can easily reference to use the admin panel in case they are confused.

Overall our capstone project was deemed a resounding success by our instructor and our client. We didn't end up achieving every goal that was set due to time constraints, but we gave a strong foundation and starting point for the project to continue with the next capstone team that can finish it.

Skills Focus:
  • Laravel PHP

  • MySQL

  • Independence/Self-Teaching

Preview Link:
  • No live link but you can check out the code here in my Github page.