sqush
- 46 Devlogs
- 429 Total hours
My goal is to make a platform similar to itch.io. It's a big goal but I'm motivated to do it.
My goal is to make a platform similar to itch.io. It's a big goal but I'm motivated to do it.
You can interact with others message them and earn badges.
And of course you can download games.
The backend was one of the hardest things I have ever done.
I had to fix so many errors along the way (see devlogs).
One time I forgot to initialise a value the other time my complete logic was bullax.
Sometimes I even pushed code without proper testing. It did not turn out well.
And then there was how I organized the code first. It was messy and hard to read. Implementing something new could take ages because of the code not being easy enough to read through.
Also some platforms just hated me for no reason and made it harder for me to add something new.
On the other hand it was extremly refreshing to try something new and fail misrebaly at it. I can now propely set up automatic emailing systems use payment services like Stripe, make automatic file scanners, hash password, make upload systems that will hopefully not fail after 1000 game uploads, even learnt a bit of drawing (name me Picasso) ,migrate databases (couldn’t actually do it before. Even tho its easy) and set up servers for the site ( even if I did use AI for that last part).
My plan was actually to put up a real game on this platform and actually test it.
But school is starting now and I don’t know if there is still enough time for it (Cause I signed up for something big).
Stress Test it to your’e liking but PLEASE dont upload thousands of 2 GB files cause that costs money.
This name is peak btw. I don’t accept other opinions.
Today I overlooked the site one last time and fixed secruity issues and others. I fixed Email service added an option to change the background Image of the score and made my testdata a bit more secure (had my real emails in there before).
I used AI for much of the progress cause it was my first time starting a server (see commits). I ran into many issues while setting everything up.
So there is the list of what I have done:
And I also added Unit Tests.
So i fixed many Issues regarding the performance of the website
Thats all I wanna write for today
Yea I promised to make the code cleaner today. But I found out that doing that is boring. Thats why I added more features. Now I’m paying for it by having new errors pop up every few minutes.
If I’d like to just feel some progress at cleaning this mess up I had to do it in small steps. (cause I ain’t fixing 3000 lines in one day)
So tommorow I’ll at least try getting the first 1000 lines cleaned up again
So I added Refund Handling for my Store.
Unfourtanely I could’t finish it but I did get to finish the frontend. So what did I do.
I updated the library page so its now easier to see that you can actually refund the game and how long you have until its not possible anymore.
For the backend I currently have some problems with the real refund. You cant really get the money back because of how the buying of a game currently works.
Especially automated refunding would be extremly hard in the current system.
Unfourtanetly I can’t push the code right now cause of github having problems with their API.
So but it did take very long cause im Albert himself.
So first I tried hardcoding Rate Limits with timers and stuff like that and I very much had very dumb ways to deal with it. Then I found out that Flask actually has a own Libary just for Limits.
So after failing doing it my own way I just sticked with that.
So now its getting rememberd if you also have a password and not only auth with google or hackclub.
Also in the database there is a completly new columm for the hackclub ID.
Backend:hackclub_callback() now also checks for Login/register or Link Modus.
google_login() now accepts link mode.There are two new routes for unlinking google and hackclub.
And last but not least. There is also a secruity check. The last used login methoid cant be deleted.
So I finally fixed the authentication. So here is a list of all of my mistakes:
Tommorow I’ll do something. Maybe I’ll even be finished. Cause I dont know what to add anymore.
If you have some recommendations just drop them off.
thats the list of all current features:
Please drop some recommendatins🥲
So like I said yesterday I rewrote the js.
So what was the problem? Well yesterday while testing out the Site I
found out that the buy button didn’t send a GET request to the backend.
So when I looked at the js I first looked confused cause everything
seemed to be fine. After some debugging I found out that my new feature
somehow collided with the buy button (Don’t ask how) So I fixed it.
Here is my totally real payment information, Everything works fine
now:
So I fixed the old issues you can now see the updates page and actual updates. But I began cleaning up some of the js code and I’m still not finished.
So now I need to get over 100 more lines of js.
Also I need to look over my python code cause well.
1800 lines of code in one file is horrendeus(At least for me)
So wish me luck for tommorow!
So I’m back from my holidays and my stress with Oracle.
So I added a new simple feature and also updated some of my secruity checks.
So I did test the file scanner on my PC and it turns out to be good enough. It can find malicious files and get them out before even anyone sees them.
Also you can now update your game. Currently you can write what you changed but there is no way of seeing what you wrote for now. I will add that tommorow. It will just be a thread of all updates and the newest come out on top.
So I have fnished the backend and already had a plan, but Oracle had to ruin the fun.
I wanted to host a VirtualMachine on Oracle Servers because I already have experience with them. But after wanting to sign up I was straight up rejected from getting the Server I paid for .They also debited my money twice (Not cool). So now I have to wait for the support to answer me and give me some of my money back.
There is a small snippet of the code:
That was a lot less work than in the last days.
So what have I added today?
Beforehands the Dropdown Menu always was a bit behind the page. Now I have fixed it and also it has become much more interactive.
Now the Store search has more options to search for a game.
You can now change Important settings on the help tab. For example your Email Adress, your username, or your password.
You can now choose a username when logging in with google. You couldn’t do that yesterday!
So guys like I said I finished it today so thats what I added:
So there are the three factors for the Recommendations:
All of that is done in phython, which is very dumb to do if you wanna have thousands of games. (But for that small store its enough)
So for that I have used firebase.
For me it was extremly hard configuring this.But I made it. Also I have used a gmail address to send a potential user the verification and email confirmation. And if you dont wanna verify anything you can deactivate it with the checkmark(But please if the demo is online do it(Note: Analytics are activated on firebase))
You can also login in with google. For that I had to use the most irrating API Keys. Really why is Google making it so hard?
For now your Username will automatically be the name you have on you Google account.
So today I began working on something big.
But I havent really made any real progress in that.
I had to work around so many logic problems.
Also over the course of working on this I found out that my code isn’t really optimised for much data.
If this code would ever be used with 10.000 games or even more it would most likely crash. But still I will finish the feature tommorow. And also I will start a Demo site in the next days. It would be great if anyone just tested it out.
Here a code snippet
So today I added a new metric to the stats page.
It was really hard getting it right. Especially in the graph because I didnt wanna use the same axis for the revenue again.
I also made the backround image more pixelated so it gets more of a retro look.
Tomorrow I’ll begin making something big(I already did some of the work today but yeah)
I added a stats page for every game a developer has published. You can see the history of how your game has developed. Thats why I’ve worked on the wishlist ,views and purchase features, so I can actually put them on a stats page.
Adding the graph was especially hard and also saving the old datapoints was difficult. For example I had used simple Optimization like if its the same data as yesterday there will just be no new datapoint added.
So there is a look at the new page::
I added comments to user profiles.
The great thing is you can deactivate the comment tab and delete comments you dont like.
It really took super long making this feature. Especially handling the errors. In the end I did make it but I still have to fix some errors tomoorow. Now I’ll go to sleep (:
So today I added Demos you can install.
I just copied the code of the game upload.
I also added a user badge so you can see who is a dev and who is a user.
Now youn will also not see your whole email but reade just the first three letters. (That took way too long to do)
And I also overworked all of these pages so they have a look that better fits the entire store.
so today I already began working on bigger features.
It was a bit hard to do all off this but I made it.
I just found out today that you can actually migrate databases wth Flask.
I always thought I had to delete the hole database and set it up again to make everything work.
Also I spent around 4 hours searching for a mistake just to find out that I linked the wrong javascript file.
My backend code gets worse every day. I must find a solution for that.
Here my new wishlist page and the reactions:
So today I decided to look through all of my code and look for ways to improve. In the end I made several fixes and I’am satisfied with how it ended up.
The reason I did this is because I wanna add many more features tommorow.
But yesterday I already noticed that its hard to look through the code and that there were so many issues. Also some on the performance side.
I believe that all errors are fixed for now.
Here a code snipet:
For the notifications I mjust had to add a new route and add it to the front end.
The countdown was really hard to figure out for my but it worked out with unix time I searched for an error the entire time just to find out that my countdown was written in white on a white background.
The friend request are why I added notifications. Because I wanted to let the user see who sent a request and respond to that. For the new system I had to delete the entire database to make it work.
After that I added reviews. You can now give a game a thumbs up or down. The average score will be shown and your text (the review).
When finishing that I overworked some of the most Important UI’s and made it much better to look at. Like you see here:
So first the biggest: I added paying with Stripe. I only used the sandbox but you could basicially just add your own API Keys in an .env file and youd be able to start.
The documentation was really tuff to read through but I made it with the help of a tutorial.
After that I added user profiles. I just reused my game backend with the screenshots and so for the avatar.
When I was finished with the unique users I started with the view system. For now it’s pretty basic and you just have to view a site for 5 seconds to count as a view.
After that I added the community tab where you can search users and befriend them.
Some of my error highlights:
“stripe is not defined”; I forgot to add the API key.
Not an error but. I hardcoded the API Keys. Already fixed but still. “Template…… unexpected” I had to delete the database because I added a new velue for it.
Today was really crazy.
I worked for the hole day and made some big progress.
I first added a dashboard for developers. So you can finally add a game. I used flask (python) for the backend. You can also add screenshots and youtube links or mp.4. On the homepage you can preview the games trailer by hovering over it.
Also editing of the game is only possible if you are the owner of the game. So I had to add a System for User Authorization and hashing for the passwords of course. Luckily Flask did most of it.So its getting checked if you are even a developer. When you are not you dont even get the options shown to publish a game or edit one.
I also expanded on the media upload . You can now add as many screenshots or videos as you want
(Little side note: don’t keep the video upload blank).
And the biggest part you can add games now.
The UI also got a big Overhaul. I have decided to use a comic style for the site. Please Note that the background image at the nav is still AI generated(Even tho I did edit it a bit too get more of a retro style)
Also I fixed several error. Mostly just typos that ended up getting the hole site down.
I also added new features such as tags, genres, game pages, the developer dashboard, search and an edit page for the games you made.
Today I began overworking my initial concept from yesterday and I made some progress.
The home site now has a background banner with the most important things in the nav.
The background Image currently is AI generated but I will make my own in the next few days.
I also made the site much more interactive. Everything you see here has an effect when hovering it. But don’t worry I didn’t exaggerate with the effects.
For the pulsing Image I used the inbuild keyframes CSS has. I also blurred the text when hovering the image but that may has to be reverted tommorow.
I also don’t think that I’l be able to make much more in the next 3 days. But I will try making small changes. I will most likely begin with the backend in the next week at the current pace.
Ideas for the front end
Today I only ended up making some bold prototypes for the front end in HTML and CSS. I did have a small error already because of using bootstrap. I always load up the scripts for the HTML and CSS from the Bootstrap site, and that was not a good idea.
I ended up searching for an error that didn’t really exist. In the end I found out what was wrong by seeking help from gemini.
Nothing else was done with the help of AI as you can see by the bad UX.
I didn’t really have time for anything big so thats what I ended up with.
I will make it much nicer tomorrow if I have the time to do it.