Requirements
User stories
- As a student, I want to create, tick as completed and delete tasks so that I can keep track of my study activities.
- As a student, I want to assign priorities and time slots to tasks so that I can better plan my weekly schedule.
- As a student, I want to visualize my scheduled tasks in a weekly planner so that I have a clear idea of how my days are organized.
- As a student, I want to create and organize notes under specific topics so that I can easily retrieve study materials.
- As a student, I want to use a Pomodoro timer so that I can study in focused sessions with breaks.
- As a student, I want to view my tasks and notes in a simple, clear interface so that I can quickly access what I need.
Use Case Diagram

Requirements analysis
Functional requirements
- The system must allow the creation, update, and deletion of tasks.
- Acceptance criteria: user can add a task, modify it, and remove it; the changes must be reflected immediately in the task list.
- The system must allow the creation, update, and deletion of notes.
- Acceptance criteria: user can add a note, modify it, and remove it.
- The system must support topic creation and allow associating tasks and notes with topics.
- Acceptance criteria: user can create a topic; tasks and notes linked to it must show the topic’s name.
- The system must provide a weekly planner to visualize scheduled tasks.
- Acceptance criteria: the planner shows tasks distributed across the days of the week, based on their scheduled time slot; in the planner, tasks are represented as rectangles with different colours based on their priority (green for low, yellow for medium, red for high priority).
- The system must provide a Pomodoro timer with customizable study and break durations.
- Acceptance criteria: user can start a Pomodoro session, see the countdown, and be notified when a session ends. User can also interrupt the timer.
- The system must update the graphical interface immediately after each operation (e.g. task/note creation, deletion).
- Acceptance criteria: no manual refresh is required; the UI reflects the latest data.
Non-functional requirements
- The application runs offline without requiring internet connectivity.
- Acceptance criteria: all functionalities work without network access.
- The application must store user data persistently.
- Acceptance criteria: after restarting the software, all tasks, notes, and topics are preserved.
- The application must be simple and intuitive to use.
- Acceptance criteria: a new user should be able to create a task and a note within 5 minutes of first use.
Implementation requirements
- The system must be developed in Python.
- Motivation: requirement of the Software Engineering course.
- The application must use Kivy / KivyMD for the graphical user interface.
- Motivation: ensures cross-platform compatibility and allows a native-like GUI in Python.
- The application must use SQLite for local data persistence.
- Motivation: lightweight relational database, easy to embed and distribute with the application.
Glossary
- Task: an activity to be completed, with associated priority and possibly scheduled.
- Note: a piece of study material created by the user, optionally linked to a topic.
- Topic: a category used to organize tasks and notes.
- Pomodoro: a time management method dividing work into intervals separated by short breaks.
- Planner: the weekly visualization of tasks scheduled on specific days and times.