I have been unable to find people who are active and motivated to develop the system with me and at this point I am unable do it alone. There are still 7 months to go until the end of 2019 so things might take some type of turn before that but I felt it my responsibility to notify people of this so they can properly plan ahead and migrate their website or tournament system elsewhere.
This project was fun. I learned a lot and tried out new things from a development perspective. For any tech savvy person, I’ll be listing some of the tools and techniques we used in the project below.
- Version control handled by Bitbucket as well as issue tracking
- Hosted on a single server and actual plans to migrate to AWS for reliability and scalability. Amazon RDS for database, EC2 as a server, S3 for storage, Application Load Balancer to handle traffic (if needed) etc.
- Release logs and documentation using MKDocs. Builds static HTML files which we could push to docs.xerberusapp.com. Very nifty.
- REST API operational, but required development.
- Multisite solution. Operated 10+ websites. Designed and programmed all the templates myself.
- Twig as front-end template engine. I actually had plans to allow site administrators to manipulate templates using Twig but didn’t have time to create this feature. It would've messed up our version control.
- PHP back-end with MVC architecture. Very simple and fast. All SQL queries are written by hand. No abstract modeling, just some simple tools to help the queries.
- SASS (SCSS) as CSS preprocessor. Used a PHP compiler to create changed files on page load (dev only)
- PHPUnit for testing and preliminary tests written, unit and functional.
- Documented my own code and tried to document most of the code others wrote when needed. There are some funky solutions in there I would’ve liked to rewrite so they would be much simpler.
- Social media sign ins for Facebook, Twitter and Google. Dropped Facebook later after they implemented a more aggressive policy on their app development.
- PHP 7 compliant ofcourse
- Database is actually very small at this point making it really fast and easy to develop.
- Role based access control implemented. Created policies inside controllers to access different parts of said module and those can be attached to roles.
- Twilio SMS integration (disabled, but code remains)
- CRON script tools
- Image manipulation (aspect ratio \ crop \ trim) based on URL args.
- Agile development. We actually used Scrum for a while.
I’m glad I got to write the platform myself so the code is well written and structured. I’m kinda disappointed that I didn’t get to rewrite some of the code to make it simpler.
Also, big thanks go to Juho "Azhrak" Nieminen who initially developed, and helped me develop further, the tournament side of the system.
Small thanks to Kasper Koho, who took the time to help us fix a few security issues that helped make the system a little bit safer for the user.