Eikaiwa Admin Dev Diary #3 - Staff Names and Future Classes
Progress has been a bit slower recently due to my teaching schedule... and time spent browsing the Steam Summer Sale for video game bargains! I did find time to work on two important areas however.
Staff name simplification
When I first built the database for Eikaiwa Admin, I gave all students and staff a first and last name field for romaji, katakana and kanji. Having six different name fields had been bugging me ever since. I previously converted student names into a single field for each character set, and last week I did the same thing with staff names. It makes the entry of new names simpler and removes some of the bloat in the code. The functionality remains the same.
Shadow planning
I added date ranges for classes
This was the big one. Originally, the plan was to give school managers a way to switch the system from the current school year to the next, allowing for setting up classes in advance. The need for this comes from the problems that would arise from editing classes that are currently active.
For numerous technical reasons, separating school data into year groups would prove to be an enormous and unnecessary challenge. Instead, I opted for a much simpler approach - adding a date range to classes.
Future classes
If you recall, Eikaiwa Admin uses a Program -> Class -> Session hierarchy. To plan a future Class (e.g. Elementary 2 on Monday at 16:30), all you need to do is create a new Class and set its start date in the future, such as April 2027). Students can be added or removed from it, and Sessions won't be generated until it officially begins. Likewise, an existing Class will expire at its end date, or left to continue forever if no end date is set.
This means that lesson scheduling, class rosters, student billing and teacher salary considerations aren't affected by making changes to a Class while it still has active sessions.
Program changes
But what about Programs? These top level data structures hold information such as class names, textbook names, tuition fees, material fees and more. You might have three "Elementary 2" Classes each week. What if you want to change these names and fees? Well, since a Class inherits from a Program, you can just point the future class at a new Program and it won't kick in until that Class' start date. Easy.
Upcoming plans
I have some time off work this week, so I can push ahead.
First, I want to add a "duplicate" button to Classes and Programs to make a manager's job much easier. Essentially, copying a class or program to make amendments for a new school year should be no more difficult than copying a spreadsheet and labelling it "2027/28". If a manager has to jump through hoops to do something that was always easier in Excel, then there's little benefit to using this system, right?
After that, there are some very boring, but necessary tasks I need to push through before sharing the demo:
- Ensure everything has a Japanese translation
- Write info boxes to explain what each page is and how to use it.
When will it be ready?
Not for a while yet. If I look at the tasks in my Major Features list, the ones that really stand out are "Calendar Overhaul" for setting your school's holidays, "Historical Expenses" for tracking expenditures, and "Better Backups". That last one is for integration with cloud services - not a simple task at all.
Once those are done, I'll be on the home stretch :)