"The world is a dynamic mess of jiggling things..."

Introducing GMG: an application to manage your videogame collection

Topic posted the 2022-06-25 in the category Web

Topic updated: 2022-06-25

GMG (Give Me a Game) is a Web-based application to help you to manage your videogame collection.

Aside from being a programmer, I am also a gamer, from times to times. I have almost 300 videogames in my collection (and more than half them not completed yet, my todo list still growing up).

In early 2017 I decided to create a Web application to help me to manage this collection. I started with something humble, using Silex, very basic. One year later, in mid-2018, considering the limits, I added some extra features and rebuild the application using Symfony. Two years later, during the pandemic, I started over the project (migrating the data though) using Flask. It was a very good application, but it was to self-centered, it was a limited vision, mine and in late 2021, I considered to rebuild it, again, by splitting it in two parts: one back-end, and one front-end. It's now done, and on Github.

The back-end

The back-end application uses the Python microframework Flask and Python 3.7. The data are stored in MySQL. The application itself split your data among several resources:

The application also include some agenda-related features: stories, transactions, todo list...

The main points of this application are:

Below is an example of how a copy is return by the GET endpoint:


"id": 1,

"versionId": 359,

"original": true,

"language": "en",

"boxType": "None",

"casingType": "DVD-like",

"supportType": "CD-ROM",

"onCompilation": false,

"reedition": false,

"hasManual": true,

"status": "In",

"type": "Physical",

"comments": "",

"platformName": "PC",

"gameTitle": "2002 FIFA World Cup",

"transactionCount": 1


With this way to store, edit and return data, you are free from almost every personal consideration.

Wait, no graphical interface?

Yep. Creating and maintaining a good GUI was too much for me. Because of skills, of the time needed, of tastes and colors... So, I decided to not include anything like that. Hence, as a developer/user, you are free to:

So, yes, for me, I created a front, with a basic Bootstrap interface, relying on a Symfony stack (PHP 8.1). It covers most of the features of the back-end, but not all. Below are two screenshots.

Note that for both back and front, a documentation is available (very small for the front as there is not much things to say).

The code is available on Github, here for the back, here for my own front.



Cet article vous a plu? Découvrez d'autres articles :

comments powered by Disqus