I'm looking for a freelancer who can help with building a simple app for a language school company based around Optaplanner.
Our name is Modulo Language School, from Thailand, and we teach English, Chinese, French, Thai and Japanese.
It's important that the tool is modular for future growth and easy to use as it's to be used by non-technical staff on a Windows platform.
*Part 1: a data entry interface that will allow to enter a list of teachers:
- the language they teach
- their preferred days off, ranked from 1 to 7
- the number of work days a week (4, 5 or 6)
- their preferred number of lessons daily
- their preferred branch
- their seniority rank
*Part 2: a way to enter the required number of lessons, per language, to be scheduled for each weekday (Monday to Sunday), by branch. It should include a way to add a new branch if needed.
Example: Branch 1, Mon 20 English lessons, Tue 18 Chinese lessons, Wed 23 French lessons, etc.
*It is not a timetabling tool and there's no need for subject/classroom/hourly scheduling; it only needs to find the optimal schedule for employees based on a few constraints:
- Number of lessons per language, per day (teachers should teach as close to possible to their preferred number of lessons a day (usually 5 to 7), never more than 8)
- Higher seniority teachers should be given their preferred days off as a priority
- The number of lessons should be balanced between all teachers
- Preferably, limit the number of branch splits (Ex: a teacher working 2 days at branch 1 and 3 days at branch 2. Soft constraint.)
In summary: The final schedule should have all teachers with similar amount of lessons (seniority as a tiebreaker), on their first available preferred days off, sorted by branch and language, presented as a table that can be printed.
Please the attached picture for a very crude idea of the results.