We enabled the military unit to reliably deliver training information and manage it regardless of any soldier's deployment situation.
Situation
A US Army unit had developed a custom learning management system (LMS) for their soldiers but faced several challenges with its implementation. The initial version, developed by a cheaper overseas developer, was unstable and unreliable, causing frequent issues for users. Additionally, the unit wanted to enhance the system by implementing progress reports that would allow soldiers to update their progress after each session.
A crucial new requirement was to make the web application accessible as a mobile app, enabling deployed soldiers to benefit from education and communication resources even when stationed overseas.
What We Did
To address these issues, we began by conducting an audit of the existing code. This revealed several problems that had to be resolved:
- There were over 120 SQL injection vulnerabilities due to a lack of input filtering. This would have enabled a relatively unskilled hacker to alter or destroy the database that the LMS relied upon.
- Two different kinds of databases were being used to run the application. This increased the needed development time to work on the application because it prevented using the existing capabilities of the underlying platform.
- The offshore developers had stolen code from a different application and were trying to use this code to run the application. It saved them time initially, but because they didn't actually understand how the code worked, the result was code bloat that slowed the application and created inconsistent stability.
Based on our findings, we made the recommendation to rewrite the LMS. Our primary objectives were to remove the identified security holes and improve the system's stability and performance. In just six weeks, we were able to rewrite all of the functionality from the original buggy version, something it took the original developers almost five years to patch together.
Once we had rebuilt the core application, we extended its functionality by implementing additional reporting features. This included a survey system that would prompt soldiers to track their progress after each session, providing valuable data on their learning journey.
Finally, we developed a mobile application available on both Apple iPhones and Android devices. This mobile version brought the educational lessons from the website directly to soldiers' handheld devices, greatly expanding the reach and accessibility of the LMS.
Result
- A much more stable and expandable LMS.
- Eliminated security vulnerabilities present in the original version.
- Expanded the ability for soldiers to monitor their progress and see their growth through regular check-ins.
- The mobile application allowed for: syncing of data from soldiers' mobile devices, offline functionality, with the mobile apps working without internet access, and the ability for the unit to control mobile access to the LMS via the website.
Overall, we enabled the military unit to reliably deliver training information and manage it regardless of any soldier's deployment situation.