Hi Samejima here
The burning journal is a database that holds your entire collection of video games. it holds valuable information such as, how many hours you've played the game, whether you finished the game, whether you completed the game, and what year you began playing the game, and even what you rate the game. I created this project because I wanted a place to catalog and track my backlog of games, At first I tried using things like backlog.gg the app...but you had to input everything manually(bleh). If any of you are steam users you know how large your gaming collection can get, and me personally... i didn't feel like manually typing 500 different entries in along with the meta data that i wanted with it. So since it didn't exist I went and made it myself. I made this tool to collect all the information and put it in a single database. While this worked wonders, it needed a frontend tool to be usable and that is where the burning journal came into play.
Now when it comes to designing the frontend for my database... i wanted it to represent me in some way. you know, if i'm going to make something for me, i want it to be unique to me and i wanted it to be something i wanted to make. something usable. I designed it with my "alter ego" in mind, Samejima Mamimi and designed it in the spirit of the character. the burning journal front end is supposed to be nostalgic, 2000s, cigarette ash and cloudy skies. This is not just a place where my data lives, this is where memories live, this is where a chunk of your life is spent. and i wanted to feel something when i visited.
Technical Stack
ExpressJS backend – I chose this because I just wanted to keep using the one language I was already using for the burning journal, javascript. Otherwise I would have used fastapi as i did in other projects.
I implemented the IGDB api to add things such as game art for your games and summaries for them too. The limitations being the rate limits that are given to you, also it gives you less control over your project I feel... and I want to change that(I'm working on it in secret hehe).
I am storing all the data in a postgresql database, it is all managed autonomously so that you don't even have to interact with anything if all you're interested in is gaming, or maybe you're just not feeling up to it mentally.
I used React as the frontend, I hate React but unfortunately it is the way to create a frontend like this. it's the right tool for the job, even if you aren't a fan of the tool lol. I'm styling it with all css, no special tricks. to be honest, i am not well versed in all the cool front end things that make things easy for the developer.. so i am using what i know and building off of that.
Challenges
There are many challenges with what I am making. The first being, there are no official APIs for xbox, or playstation, you can't get that information from your library and they won't export it to you or anything, they gatekeep that information hardcore so the first thing i had to do was find a way to get around that, steam you could do it through their official apis but if i wanted someone else to get their info theyd need to get an api key too but thats for later!!! there are websites online that have special connections with microsoft and sony that gives that information, somehow they get the information so i had to figure out how they did it, and implement it and combine it. Two, game art and information are also very closely gatekept, there are only a few places where you can get that information and they have very hardcore anti scraping policies and measures too. they do everything they can to make sure you can't get that information. I don't want to put out how i managed to get all the information because then things might get patched and they probably will kill my project even though... im the only one using it... even tho i would like to make money off of it in the future (im poor, unfortunately graduated in CS :( )
What’s Next
Planned features
- Filters
- soundtracks that play on inspection of the game
- video clips of the game that auto play
- my own achievement system
- combining the hours of the games you play on different platforms
- game of the year polls
- people can add their accounts to the website
- make the website responsive(please help)
Final Thoughts
This project started off as just making something I wanted for my own nerdy obsessions but in the end it taught me a lot about linux, hosting, servers, databases, react and even apis(making them and using them). I would have never learned this much about any of that if I hadn't had this gaming addiction lol
if you want to contribute to the project you can here and if you want to donate to me(i am seriously poor its not a joke lol) you can sponsor me on github or cashapp me $amejima or kofi. it'd be much appreciated but make sure you talk to me before or send a note with it so i know that it's you just being kind.
anyways... im gonna go work on the project some more now byeeee...
Top comments (2)
Hey, IGDB here. Looks like a cool project!
But no need to develop it in secret or dealing with rate limits. Just apply for a partnership and you will get access to data dumping. That way you can replicate our entire DB every 24 hours. And, partnership are free.
Hope that helps and good luck!
thank you for the advice!! i will look into this