Formative Assessment-Based Learning Management System

A development blog for an LMS and other projects

Starting a Development Blog

The first step is the hardest

I'm starting this blog as a way to document what my development thoughts are when building this thing.  I hope it serves as a way to actually get me to write about what I'm doing, and to put somewhere the development decisions that will be going into this project. I'll see how much it actually gets done though...

Start at the beginning. 20 years ago I joined a wonderful school that had been running for less than 10 years. It was a hippy, liberal school, which fitted my views great at the time. I was looking for work as an independent contractor and a friend from an old job recommended me to a guy he met at church, Joe. Joe would hire me originally as a consultant to help him develop a "Learning Tool" that would be able to have grades , assignments, and all the classroom things in the web. At the time, this was barely starting to happen at certain rich school, but it was no means a regular thing. Grades were just starting to be posted online at some public schools, and SOME LMS's were starting to migrate to the web, but it was mainly at colleges at this point. Also, a full-fledge assignment, courses, enrollment, you name it over the web didn't really exitst that was affordable for such a small school. So they had a math guy who knew how to code, taught himself php and mysql, and built...something. It was really pretty, and it did a lot. But it was a jumble of spaghetti code and mysql tables with no idea how relationships should be formed.  It was really pretty on the outside, but the inside was hell.

Of course, a the time, php had a single framework (ZEN, symphony was just due to be officially released next year) which costed money. At this point I was a programmer in systems. I had worked for Erickson last (before I burned out and became a teacher) developing code for switches. I had dabbled in web development and knew PHP from other jobs and understood databases from college and I really needed the job, so I said of course I can do it!

My original job was to build a sub-system for the Development (fundraising) department that would be "like Raiser's Edge", which the school could not afford. I spent 6 months developing the system but I would get constantly stuck trying to integrate my code into the existing codebase and database. After 6 months I had...something, but I told them this is as good as it can get without re-working the original system. So I sold them on that. I was hired 6 months after that as a full-fledge IT person for the school, doing 1/2 time programming and 1/2 time "other computer stuff", which turned out was a new network that didn't run on a netgear router, re wiring the whole school and basically everything.

During the first year I rebuilt the whole system piece by piece maintaining the data intact, while redoing all their systems. It was a lot of work that paid off, as my system, named "The Learning Tool" or LT for short went on to run the school for over 10 years. It still runs on a forgotten server as it has roughly 15 years worth of student data, assignment, papers, corrections, you name it. It still is used because schools require record going back really far. I still get compliments over it, as none of the new systems really did everything this thing did. Joe became my mentor and taught me a lot about school curriculum development and pedagogy. I'm indebted to him in more ways that I can count. 

Since then, the school got a new LSM (Blackbaud, stay away!) and things now are a patchwork of systems which my job primarily consist of having them talk to each other.  I'm the Director now and the school runs really well considering my miniscule budget. I still build systems for them, mainly services that talk to all our existing software to keep it synched up, as well as other things to make school run better.

Lately though, I've been coding a lot more and decided that I wanted to sharpen up some of those skill privately. To this end I wanted to sort-of re-create my original LMS, only with all the new tech that I now have access to.  So that is the purpose of this project, to recreate a fully functional LMS, with all the cool updates that I can do now. I'm in love with Laravel, and I haven't dipped my toe in version 11, so I will be using that for my framework. I develop everything in docker and phpstorm now, so that will be use as well. Since I have this Google Workspace account since they first came out, I wanted to try out and learn Google's new cloud compute engine. I know that it is possible to run Laravel apps through docker in google cloud, so I plan on figuring that out as well. 

The goal for today:

Set up a Laravel project using Sail and Docker

Set up authentication and bootstrap-ui

Install some packages, add admin user, etc.

Publish it up to GIT.

Find a good tutorial on starting out with Google Cloud so I can host the project there.

Will update when that happens.