Introduction

In this post I will share my experience of creating a webapp for keeping track of my schoolwork. I will start by presenting the problem with which I was faced four years ago, before moving on to showcase the solution that I came up with. I will conclude by sharing some statistics with you, because numbers make everything $better^10$

The Problem

When I was at school I struggled with always completing my homework. The reason for this was not that I did not understand it, or that I decided to prioritize CS:GO over it, but rather that I simply forgot to note it down in class. Why is that? Homework is usually announced at the end of class, but at that time you’re also busy with packing up your stuff and rushing out the door. Writing the homework down in a notebook would’ve meant to be later out of the door and thus further down in the queue at the cafeteria. Thus, I needed another way of remembering my homework, that wouldn’t slow me down when leaving class, but also wouldn’t leave me wondering what homework I had to do.

My Solution

… was to develop a webapp that allowed me to note down my homework quickly after class. Why did I choose to go that way?

  • A webapp is quick to develop and easy to expand, it’s possible to build a webapp using only MySql, PHP, HTML, and CSS.
  • A webapp is super portable, and can be used on nearly all devices (even on a fridge)

Features

Login and Registration

Since I was building the backend and database from ground up, I decided to allow other users to register and use the platform. alt

Schedule

I opted for using my weekly schedule as the home screen of the app. That allowed me to quickly have an overview of when in the week I had which subject, and through icons, for which subject I still had to do homework.

The colours used for the subject buttons are corresponding to the level at which I took that subject. (red = advanced level, orange = written/oral exams, blue = ‘normal’ level)

In addition to that, I displayed a bar that shows the next upcoming exams and in how many days they are.

alt

Subject View

This view is the heart of my webapp. It allows a quick glance at all the information related to that subject:

  • Basic information (teacher, weghting of oral mark…)
  • The homework that’s due and when it’s due
  • The marks received (both oral and written)
  • Upcoming exams

In addiiton to displaying that information, it also allows for changing any of it, including:

  • Editing general Information
  • Adding/Deleting marks
  • Adding/Deleting exams
  • Adding/Deleting homework

alt

Account Options

It’s possible to alter both the basic account information (Name, Email), as well as the schedule related information. The maximum hours to be shown in the schedule can be edited, as well as the schedule itself. It’s also possible to specify the current term, so that one can save the marks, and schedule, for previous terms and start afresh in a new term.

alt

Mobile View

image-right Another very important feature, the mobile view is consists of two components: 1) A user friendly dashboard of the schedule view, 2) a direct link to add homework. I will focus on 2). The direct link to add homework requires the user to log in at the beginning and to confirm that they want to stay logged in, afterwards that link can be used without having to log in again. When opening the link, the webapp automatically selects the subject that it believes you to have been in. This happens based on the current weekday, current time, and the specified schedule. It also automatically selects the date of the subjects next occurrence on the schedule as the due date. Those two features massively decrease the time needed to record homework.

Some stats

Database Structure