A Game Collection Web Site

I wanted to create a project that showed that I can do full stack web development. I wanted to do something that was small enough to get done relatively quickly but complex enough to show that I did it myself and didn’t just follow a tutorial. I want it to be something that I can show potential employers as an example of the full stack web development that I am capable of. gcsite.crookedfingerguy.com is what I came up with.

I used C# ASP.Net Core 5.0 with Razor pages for the web development. For the database I used SQL initially for testing and then I switched to MariaDB on RDS on the Amazon cloud. I hosted the web application on AWS ECS Beanstalk. I deployed the software by using the amazon extension for Visual Studio 2019. I setup GitHub for version control. I used SendGrid to handle the account registration and password reset emails.

There was a lot of learning new technologies for me on this project. I really didn’t encounter any new programming concepts on this project. I was mostly going over the way ASP.Net (Model View Control) MVC system works. Learning how data moves between pages and the server was in this context was new to me.  Getting code first Entity Framework was something that I had never used before this project. I had always just made the tables on the database and used SQL Queries from the application before. Having the Entity Framework handle whole migration process was probably the most confusing aspect of the project for me. Because I had to learn a lot of syntax to get it to create a database that made sense for the project.

I learned to use the IGDB API to search for games to add to collections. Keeping the API key and database connection string secret on multiple systems with version control caused some problems for me but I sorted that out eventually. Otherwise, the IGDB API, which is owned by Twitch.tv, was not too difficult to get working with my web site.

I used the software I wrote about in my blog before to create the 3D models of the game boxes that I uploaded and displayed on the web site. It shows the game boxes in animated 3D on my phone browser even.

This is just a minimum viable program meant to be a proof-of-concept web application. The concept I am proving is that I can create and deploy a full stack web application by myself.

The main problem with the web site currently is that the caching from the IGDB API is stored on the beanstalk instance. That means the cache can get out of sync with the database if I republish the application for an update. It can also get out of sync if an additional instance is spun up due to web site being overloaded. To fix that I need to store the IGDB API cache and the uploaded 3D models on an AWS S3 bucket. Figuring out how to do that is on the list of things to learn how to do. Of course there is a large list of possible improvements that I could make to the site. I’m not sure if I will have time to get to any of those things anytime soon. I want to work on learning more JavaScript to make it more likely I will get a software development job.