Curriculum as a service: An internal tool
Problem
Winter break for K-12 students was peak season for Codelicious. A short window to update all the content within the curriculum and to package new courses to the specifications of what the schools had decided to teach in the rapidly approaching Spring Semester. It was heroic work for the Codelicious team, but unsustainable. Staffers needed more effective tools than Google Docs and Google Sheets for managing curricula. They needed tools to offload repetitive tasks to, something to lighten the load, something to give them the chance to enjoy their own well-earned holiday vacations.
The process of creating Codelicious courses involved pulling individual lesson plans or supporting documents from a course materials library. This was organized using a library classification system of Codelcious' design.
Once course materials were selected, they had to be distributed through modules, each roughly equivalent to one day of class and based upon the specifications of a given school and/or school teacher. One class might be 45 minutes three times a week, another might be two hours once a week. For either case, course materials would be broken up or merged together in order to build a full course curriculum. As our volunteer team was coming onboard, this process was fully-manual. However, Codelicious had a patent and a plan to invest in a more automated process. One that would free up their team to devote their resources to making even more effective curriculum rather than be distracted by packaging and repackaging it.
Parts of the Solution
Part 1: The Database
The course materials library had been organized in a Google Sheet when we kicked off the project. Both to add extra layers of security and to better interface with the data it held, our team designed and built a Firebase database as a more sustainable management system for the Codelicious library.
Part 2: The Web-app
While the Google Sheet hadn't been a scalable way to manage and operate the library, it had been a usable one for the Codelicious team. To give them a way to interface with the data stored in the database we built a web-app intended to be used as an internal tool to edit, add to, and generally interface with the database.
Part 3: Automation scripts
After building the database and web-app we didn't have the bandwidth to continue to a fully automated course building system. However, we did add in "macro-like" areas of automation. These included scripts which automatically:
- Populated a given course with correctly arranged lesson plans based on library metadata and specifications from the relevant teacher regarding the length of their course and class sessions.
- Generated the i-Frames needed to insert a lesson plan into the Learning Management System a particular school was using.
- Generated syllabi which provided information about their associated course and overviewed all the lesson plans therein.
- Listed state educational standards covered by a given course.