In July of 2015, I volunteered to create a web app to score college gymnastics. There’s an old blog post from my original COGSS project. COGSS 2.0 is going to be a place to submit scores and have rankings for a meet. Sounds simple right? Turns out it is not, this project feels like it is turning into a full blown application which ideally would require a dev team… Instead there is me!
Notes from the first attempt at COGSS
The site was built using PHP, blame my three years of experience working with older projects while I was a programmer at Matrix. PHP was my most proficient web app language at the time. The only issue was that the code was monstrous. In a rush, I didn’t use a class structure. Sections of PHP and HTML interwove each other and there were even 50 line chucks of echo .= “<html>stuff…”. After more years of better web development and looking at Java classes and NodeJS, I knew there were much cleaner ways to code. I vowed to revisit the code and clean everything up…. one day
Something else that slipped my mind but was a major overlook on my part was being too lax with my Github commits. Without a .gitignore file, I committed the entire project to easily load it onto my server. Not a big deal, except that it means my config file (and credentials) were stored publicly in plaintext. When I found that recently, I had a mini-heart attack. Well, guess it’s a good a time as ever to change passwords…
The last take away from the old version I had was performance. Page loads were waiting on SQL, server side pages would take minutes to load for a client. That’s terrible, so hopefully this next time around the cleaner code and one-page-application (thanks Node) will make things run slightly smoother.
COGSS 2.0 Redesign
Over the summer, I talked to my girlfriend who is the president of the EMU Gymnastics club and she told me a lot of things about the layout and design that I overlooked. It will be a lot cleaner with the new design and I’ll upload more pictures when I have something better to show later on. It’s still heavily reliant on Bootstrap because I’m not going to spend the time to customize everything, I’m not even sure what people want so I’m going to go with their “minimalist” look.
I wanted to have better URLs as well, so routing was something I was looking into so that instead of “teams.php?q=blah” in the URL, it would be something clean, and that requests would be used correctly. NodeJS should make that really simple, but I have little to no experience with it.
Tasking / Planning
Last time, I didn’t have a good plan, I had goals… but no plan. It was chaos and it surely showed in the final design. This time I’m using Trello to create a sort of Kanban board. There are four sections, backlog, blocked, doing, and done. Tickets are smaller items with only one feature. This will help me organize what to do, and my commit will look cleaner as well. For example, my next task is to “Add [the] Teams Page”. Basically set up the routing and use a template to load a proper page. Hopefully the smaller tasks will make this easier. I need to finish the project by the end of February.
Why COGSS 2.0
A lot is changing from the old version, for one thing I’m switching from a PHP web app to a NodeJS app. That in itself is scary and awesome at the same time. It is scary because I have barely used Node before and my main reference is a coworker’s Github repo that he presented last summer. It includes a lot of things I don’t know much about, like Express, Angular, and Less. I can learn on the job and I am really excited to see how it all turns out. What makes it awesome is that is lightweight, fast, and makes routing simple and easy. The only things that will be the same after I’m done will be the database structure and the Bootstrap framework.