About four years ago, I had the idea of creating a student database program for my dad’s karate organization, SKKSA. Since then, my technical experience in programming has evolved, and so has the karate oraganization’s reputation – as one of South Africa’s leading karate organizations. SKKSA has become known for a unique, innovative flair that’s unparalleled.
This year, after much research and testing, I was able to finally sit down and write a completely new system for the organization, initially codenamed “Project Nexus”, and now officially renamed SKKSA ID. In this post, I’ll attempt to explain some of the processes, and philosophy that drives this new system.
The UNIX Software Philosophy
Whilst (at least at this stage) SKKSA ID is Windows-based, I did implement some Unix thinking. For those that don’t know, Unix is the underlying core that powers some of the world’s most advanced operating systems, including Apple’s Mac OS X. One of the philosophies of Unix is to build software that is simple and elegant: instead of building one large program, rather build smaller, simpler solutions that can talk to each other. Apple’s achieved this with their popular iLife suite. And I’ve attempted to integrate this way of thinking into the design of SKKSA ID’s software apps.
SKKSA ID is built around a Microsoft SQL Server database: this central database, called the Nexus for SKKSA DB, houses all SKKSA students’ info. It also includes each student’s unique Student ID – an alphanumeric number which I’ll talk about a little later.
The beauty of this modular design is that the system can easily be extended as more uses for it become available. At present, we have two apps custom-built for SKKSA ID: Nexus for SKKSA, and Seminar. Both were coded from the ground-up by me, in Visual C#. The database backend was built with Microsoft SQL Server Compact 3.5.
Nexus for SKKSA is the entry-point into the SKKSA ID system: each student, once affiliated with the karate organization, gets entered into the database with this app. Nexus features a host of tools that makes the data-capture process easy. There’s also filters that allow us to view portions of the database, such as only seeing students from a particular dojo, or belt grade. This has already come in handy during mid-year exams.
Seminar is the first app that extend the capabilities of our database: it’s access-control software that is the first to use our new barcodes. The heart of the SKKSA ID project is the barcodes: each student will now be issued a barcode that encodes their unique Student ID number. Our new barcode scanner (a CipherLab 1000) can be used to scan their code, and our custom-built software will bring-up their data. With Seminar, this is used to verify if a student is eligible to enter a particular session during a training course.
SKKSA ID uses a variety of tech to power it: barcodes, programming languages… etc. For the code, I used the powerful and efficient Visual C# language. The database was handled with SQL Server Compact. To transfer data between Nexus and Seminar, an XML-based file format was used. This file encodes the entire database in a .nexus or .seminar file that can be loaded into the apps. The only limitation with this system being written with Microsoft programming languages is that it can only work on Windows-based machines. I am researching the possibility of extending this system to a cross-platform variant, probably written in Java (in which case, the database will have to be based on MySQL or a variant). But this plan is completely secondary to the priorities of continued development of these apps on the .NET framework, in order to make them the best, most streamlined solutions they can be.
I have plans to build more apps to leverage our new barcode technology and enhance the capabilities of SKKSA ID. One such app is already in research and development. It’s called TrainingBook and will probably be our most advanced app yet – it’ll replace our current “pen and paper” training registers, and will be able to provide reports on a student’s attendance at weekend training sessions.
I’m really excited about our new software system. And I’m also quite pleased at how it turned out; I’ve spent months researching and writing the thousands of lines of code that make this thing possible. For now, though, I think it’s time to take a break from the world of code.