Since around 1.5 years I started developing on my own a local web application to keep track of used and unused keys and gifts for game bundles, to make my trading life easier. That main web app was written in PHP (pure, ugly, with no frameworks), and some of the data fetching was written in Java. This application is meant to be run on a local server, as one of its features is to keep unused steam keys in the DB, if those escape on the web the user risks losing a lot of keys.

here are some screenshots: http://imgur.com/a/NvDxx

After a long time of delays, I finally decided to rewrite it with a modern PHP framework, and release it as open source on Github.

Some of the features of this app are:

  • Keep a list of all bought bundles, each with a list of the games, the status of the single games (redeemed for personal use, traded, sold, etc), whether it is a game or DLC, weather it has a drm free download, flag to put the game on a "Want to try" list.

  • Game details page: the description of the game (fetch from Steam), including genre, features

  • Lists of games: want to trade, owned, want to try, has cards, games with controller support, DRM free games

  • Humble Bundle auto import: for Humble Bundle games, the bundle adding can be done automatically from a json file downloaded from the Humble Bundle website. other bundle site need to be imported manually.

  • Export of the trading list in markdown format.

  • Download library and wishlist from the users Steam profile

  • I also added recently the Steam card average prices, to be able to see card prices per game

  • A page to show the steam library license status ( licenses_print ) to show when each package was redeemed, where and what subs does it contain. this helps in knowing which key was redeemed if you have it in multiple bundles.

I want to rewrite the app with a good PHP MVC framework, that is easy to maintain and understand, and making the addition of new features easy. The framework should be light to be able to run on low-end servers like a raspberry pi or NAS drive. I also hope to use some kind of package manager like npm or bower to install supporting frameworks/libraries.

I tried once to develop a small app with laravel, easy framework but so heavy and slow, same goes for Symphony. CodeIgniter is no bad, seems limited but could be good. I developed a couple of webapps with Angular 1.5 and I liked it, having the MVC run on the client side is great for low-end devices.

I am mainly undecided to go with CodeIgniter or Angular, but I am open to suggestions.

If somebody wants to join, please comment below.

Update 1:

My initial test cases with Symfony are terrible, the Welcome page needs 6+ seconds to load each time (sometimes if I do a quick refresh it might load in around 3 seconds), and an error page (route not found) always need 25+ seconds. nearly same results with Laravel. These tests were made on a clean install of both frameworks with initial Controllers and welcome renderers examples, I did not got thoroughly in the configurations to optimize it, as I guess there is a lot to do, I don't want to invest time in frameworks that at first sight seems very heavy. These results were obtained without any DB access, I can't immagine what will happen there.

The same initial testing with CodeIgniter 3.x installation with basic db access is nearly instant.

I guess I will try a basic setup with Angular 1.x, I will not go with 2.0 as that one uses different approach with everything compiled (scss, typescript, templating system)

7 years ago*

Comment has been collapsed.

I`m not a developer but i would like to run this on my vps, also if you can password protect it (admin) and encrypt the keys stored in db it will be great, can you give us link to the code on github?

7 years ago
Permalink

Comment has been collapsed.

there is not github yet, and the encryption is not even in the current plan, as to have real keys on a public web server, behind some encryption is way harder than you expect, the only way to be secure is to leave the encryption keys on the client side (like LastPass). Losing your keys due to a breach is not like a password breach: you cannot change them...

7 years ago*
Permalink

Comment has been collapsed.

This project looks really promising for traders, although i use excel like everyone else but due to a recent hacking attempt on my pc resulted in many stolen keys especially AAA level games and some other stolen info. i hope you can find people that are interested in it so we can too run this.

7 years ago
Permalink

Comment has been collapsed.

larevel is a even more lightweight then codeigniter, if you decide to stick with Php. Otherwise Angular is a good choice if you have the experience

7 years ago
Permalink

Comment has been collapsed.

Are you sure of what you say?
I tried a simple project in laravel last year, and it is huge, 30-40mb just the base files, and running it off my old Qnap NAS drive was so slow, a simple Hello World would require 3-4 seconds to show.

I like the framework, but using it for this project is an overkill.

7 years ago
Permalink

Comment has been collapsed.

there is Lumen which is a diet Laravel.

7 years ago
Permalink

Comment has been collapsed.

Symfony ain't slow if you know how to configure it. I specialize in PHP, mostly in Symfony, it runs perfectly, on vps or local

7 years ago
Permalink

Comment has been collapsed.

From what I know, Laravel is based on Symphony, right?
and as I wrote in response to MuRado, Laravel performance on an old Qnap NAS drive and server was so terrible.

7 years ago
Permalink

Comment has been collapsed.

never used laravel, but i don't think it's really based on it, laravel just uses similar stuff like Symfony.
i'm running my event website, alongside few others, with symfony on $7/month vps and it's running great

7 years ago
Permalink

Comment has been collapsed.

Laravel uses many Symfony components, with a different ORM.

I tried making the most basic symfony app, and it runs slow, the Welcome pages takes 6+ seconds to load, after few refreshes (and maybe caching) it loads in at least 3 seconds. if I put the wrong url (route that doesn't exist) it needs 25+ seconds to tell me there is no route. this is still without any DB access.

my current CI installation with basic db access is nearly instant.

I want to solution to work on my qnap server (my always on server with UPS): it has a slow CPU and little ram, that's why many frameworks run slow. I can get a VPS (I already have a dedicated server that I use for hosting for some clients, very powerful), but as mentioned above, this project is not safe to host on a remote server.

7 years ago
Permalink

Comment has been collapsed.

6 seconds for welcome page? you have some misconfiguration than. normally welcome page without any configuration changes loads below 60ms, or bit longer if you have cleared cache or changed config.

as you can see in my event website, there's many stuff that uses database and it normally loads in like maximum half a second if cache regenerates or like 150ms if it is loading from cache.

i recently finished a symfony project https://palidziba.lattelecom.lv for my work, it's heavily db dependant, with hundreds of queries and it still loads in half a second most of the time or bit longer if cache is bla, bla, bla...

7 years ago
Permalink

Comment has been collapsed.

but as mentioned, I am running the webapp on a Qnap webserver (QNap nas drive), with slow single core CPU and 256mb ram. with this device any framework that is more than certain limits suddenly become slow, pure PHP and CI runs quite fast

7 years ago
Permalink

Comment has been collapsed.

still too slow, i had a symfony test page running on slow free aws and it still ran quite fast. 6 seconds for welcome page is TOO SLOW, you must have a misconfiguration

7 years ago
Permalink

Comment has been collapsed.

I only installed a fresh copy of symfony, did not optimize anything, just an extra controller with a template twig.

7 years ago
Permalink

Comment has been collapsed.

which version of symfony?
i'm using 2.8 which is LTS, next LTS 3.2 version came out recently but it's still not working properly

7 years ago
Permalink

Comment has been collapsed.

Well, I know next to nothing of PHP, but if you have some knowledge of Javascript you could take a look at node.js. It' supposed to be fast for a simple web app and you can use any Javascript framework or library you wish with it.

7 years ago
Permalink

Comment has been collapsed.

I had a look on node.js few months ago, and did not like the idea behind it.

7 years ago
Permalink

Comment has been collapsed.

Could you elaborate on what exactly you didn't like about it?
I have never used it myself, but I'd like to know your thoughts about it.

7 years ago
Permalink

Comment has been collapsed.

I just maintain a spreadsheet with required informations like : name / key / bundle / empty or destination of used key (account name or giveaway page) / url of source of key in case of massive free GA or url of specific bundle / if it is giftable or not (a Formula) / misc info like date of expiry
+various autoformating to colorize cell background

Why bother maintaining a full app for that ?
Too, I just use auto-filter from LibreOffice (free ad !), to show only unused key / games from a specific bundle, etc.
To import keys from bundles, I generally just run a script to auto reveal keys and scrap keys and information from bundle pages.

Now if you wanna spend time on a dedicated app, well, if it is to be local, you aren't limited to web app or PHP.
If you stick to PHP, sorry, I am not really aware of last available Framework :P
(I would just use PHPMyAdmin or any clone haha, with some saved queries :P)

7 years ago
Permalink

Comment has been collapsed.

I used to have a spread sheet, but i wanted something more, mainly a way for me to recheck my ununsed lists for games that I might want to try, to filter by genre, rating, description. I also keep track of how much I paid for bundles, and what trades went through.

I wanted to make it a webapp because my paying job is developing web apps, so why go and learn something else. Also because like this is automatically becomes cross platform, not tied to a specific OS.

7 years ago
Permalink

Comment has been collapsed.

If you get more proficient at your daily job, why not :-)

Also, this is starting to be ambitious, will you have spare time to play games you index ? :P
LIVE EDIT : (note that when I wrote this, I hadn't notice you had already written your app ^^)

Also, I would add non-web apps and desktop apps aren't necessarily tied to specific OS, you have things like Java or python if cross platform is a concern :-)

7 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 3 years ago.

7 years ago
Permalink

Comment has been collapsed.

:P

7 years ago
Permalink

Comment has been collapsed.

I know java but to web design (web frameworks), not stand-alone apps. And I don't know python yet. plus, those 2 doesn't work on mobile :)

7 years ago
Permalink

Comment has been collapsed.

For java web design, I know like nothing :-)
Please give me hints for curiosity, are you using J2EE, tomcat or things like that ? Is it often used ? I rarely see .jsp pages... though blog-like websites are probably not main targets...

7 years ago
Permalink

Comment has been collapsed.

I worked for a long time with J2EE in enterprise level applications, mainly banking and health.

most of the time there is no direct .jsp pages, they are big huge frameworks (Struts, JSF, Spring, ...), and they use custom extensions, or no extensions at all (like .htaccess). if you ever saw a page that uses a .do extension, it is based on Struts 1.x.

7 years ago
Permalink

Comment has been collapsed.

Deleted

This comment was deleted 3 years ago.

7 years ago
Permalink

Comment has been collapsed.

if you want some help with Symfony, will be happy to help

7 years ago
Permalink

Comment has been collapsed.

Lots of devs like to criticize CodeIgniter and many times they choose a heavy framework but they also like to reinvent the wheel and don't use the features provided by those frameworks. Also a full featured package usually comes with the cost of speed, responsiveness and maintenance among other things.

Unless you really need specific features only present in certain frameworks, any lightweight solution that provides you with the MVC design pattern should be fine as long as you intend to build on it. A framework is just the starting point and its purpose is to make things easier for you.

CodeIgniter is a great start considering it's quite lightweight, extremely easy to use and it provides the basic tools you need to start building your project. The best thing about it is you can shape and transform it into anything you want as long as you have a clear picture of your end result.

You can easily add caching and templating and perform whatever optimizations you are interested in.

Just be careful regarding the database interaction, because it's very easy to create badly optimized queries by using the available tools unless you really know what you're doing.

7 years ago
Permalink

Comment has been collapsed.

Thanks for the support :)

Yes, a lot of web articles suggest to stay away from CodeIgniter and Cake PHP, saying they are dying out, and most recommends Symfony, but CI works just as expected, and is very fast on low-end servers.

My initial test cases with symfony are terrible, the Welcome page needs 6+ seconds to load, and an error page (route not found) always need 25+ seconds. nearly same results with Laravel. these tests are done on a clean install of both frameworks with initial Controller and hello world examples, I did not got thoroughly in the configurations to optimize it, as I guess there is a lot to do, I don't want to invest time in frameworks that at first sight seems very heavy.

7 years ago
Permalink

Comment has been collapsed.

Sign in through Steam to add a comment.