There are a lot of organization apps on the Google Play store. I should know, I've tried most of them! But, with every app, I seemed to underestimate the time homework assignments would take. The basic design of the app has two parts: a data structure representing your class schedule and a Pomodoro timer. The class structure contains a variety of information that one can add to a course, and one can create assignments with even more detailed information. These assignments are stored within the courses. This gives the app all the information it needs to calculate grades and generate dumb reminders when an assignment is upcoming. This is all very standard.
However, the inclusion of a Pomodoro timer allows one to stay on task and was intended to automatically record the time it takes to do assignments. This would have allowed predictive scheduling of assignments (for example, the app could warn you if you had 4 hours of homework upcoming but only intended to be at the library for 2.5 hours before the due date).
However, I've never worked on a GUI before and I did so with a library (Kivy) which has very little documentation online besides the official function descriptions, so many of my intended features will have to be added later. I think I'm most proud of the dynamically updating timer display, since it took me many hours to get it working.