Now that you know the reasons behind me building this project, we need a plan. As I've advanced in the linked article, all I know is that teachers, parents, and students, deserve a platform that focuses on useful features and that can be source of good life!

I admit I don't have the whole context of what a school system is supposed to do, at the moment, but I do have experience in academia: I have been a student, and now I'm a parent. Combining those experiences, and remembering some of the responsibilities of my teachers, I can infer some basic features for them. The rest can come after the MVP is done.

To build this project, I'll take the same approach as Infraspeak - the company I work with, at the time of this writing - took when building the first versions of their product: focus on the base users of the software. For Infraspeak, it's the technicians. For Syllabus, it's teachers. Much of the value will come from teachers, and much of the students' interactions will be driven based on initial input from teachers. They are important. So, for the teachers, I thought about these basic features:

  1. Access to their class schedule. It's important to know which class, where it is, and at what time they're presented. This schedule should also allow access to a list of students that are enrolled.
  2. Allow to mark which students were present during class, and to add a resume of the topics presented. Also, have the ability to mark a disciplinary action taken for a student, for those cases of misbehaving, for example.
  3. Some teachers have additional responsibilities before the class. Those are considered the headteachers and manage the whole class. Those headteachers will have access to a list of unjustified absences and disciplinary actions taken and will be able to send messages to students' parents.
  4. Allow sending/receiving messages from students and/or the headteacher.
  5. Allow inserting tests' scores for each student in their class, as well as insert their intermediate and final grades.

I kept it to what I think is the bare minimum to make this platform useful to teachers. But for this platform to generate data, it needs to involve students, too. So, with that in mind, here's a very rough outline of features for students:

  1. Access to their class schedule. It's important to know which class, where it is, and at what time they're presented. This schedule should also allow access to details about the syllabus of the class for the whole year, the teacher, and a list of other students that are also enrolled.
  2. Access to a list of unjustified absences from classes.
  3. Access to their test scores and intermediate and final grades.
  4. Access to internal messages and system notifications.

I believe that this set of features, both for students and for teachers, are enough to keep information and interaction going inside the system. Its viability and adoption will probably come down to UI and UX, two fields I'm not too comfortable with (I'm an API kind of guy) but I think that worst that what exists is not possible, so the bar is not too high, even for me!

But, before finishing this blog post, there's one missing piece in all this: parents. After the little rant I wrote in the last post, I couldn't leave this out. So, for parents, a crucial influencer in the students' life, I thought about the following features:

  1. Access to their student's class schedule. They have access to the same information as students.
  2. Access to their student's absence list and allow to add a justification for it.
  3. Access to their student's test scores and class intermediate and final grades.
  4. Allow sending/receiving messages from headteachers.

And that's it for the blueprint for this platform. I know there were a lot of other things I could add, but I wanted to keep the minimum required to get the ball rolling and allow for a good base school dynamics.

The next steps will include break all these features into user stories and add them to the already created GitHub repository, and then open it up to the public. I've also already chosen the tech stack, but I'll leave it to another blog post. Hopefully, shorter than these initial two!