A secure, feature-rich desktop productivity app for university students
Manage tasks, timetables, study sessions, and group study β all from a single themed desktop app. Built with Python, Tkinter, and SQLite. No cloud, no subscriptions, no data leaving your machine.
Download .exe Β· Changelog Β· Roadmap Β· Report a Bug
- Full CRUD β add, edit, delete, complete tasks
- Priority levels (High / Medium / Low), categories, deadlines, and status tracking
- Search and filter across all tasks
Ctrl+Nto add,Deleteto remove,Spaceto complete
- Weekly, monthly, and 6-month calendar views
- One-click ICS export β open in Google Calendar, Outlook, or Apple Calendar
- Auto-generate a study plan distributed across your deadline load
- Pomodoro-style countdown with session tracking
- Ambient soundscapes (looping, with volume control)
- Live audio-wave visualizer synced to playback
- Local AI-style assistant with typewriter streaming output
- Quick prompts: explain a concept, summarize task load, generate practice questions
- Create groups, add members by email, assign shared tasks and study sessions
- LAN Study Rooms β host a named room on your local network; peers discover it automatically via UDP broadcast (no server required)
- Rooms show host name, department, class, and section
- Department, Class/Batch, Section, and Batch Year stored per account
- Shown in the sidebar and broadcast in LAN room beacons
- Distraction-free writing workspace
- Live word, character, and paragraph counts
- Auto-saves per user; export as
.txt
- Completion donut chart
- Priority distribution and category breakdown charts
- 5-day task load graph
- Passwords and security answers hashed with PBKDF2-HMAC-SHA-256 (100,000 iterations, unique random salts)
- All queries are parameterized β no SQL injection surface
- Strict per-user data isolation enforced at the query layer
- 12 languages β English, Deutsch, EspaΓ±ol, FranΓ§ais, Π ΡΡΡΠΊΠΈΠΉ, δΈζ, ζ₯ζ¬θͺ, νκ΅μ΄, ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯, Ψ§Ψ±Ψ―Ω, Ψ§ΩΨΉΨ±Ψ¨ΩΨ©, ΩΨ§Ψ±Ψ³Ϋ
- Full RTL support for Arabic and Persian
- Light and Dark theme β switch live without losing your current screen
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Entry Point β
β main.py β
ββββββββββββββββββ¬βββββββββββββββ¬βββββββββββββββββββββββββββ
β β
βββββββββββββΌβββββββ ββββββΌβββββββββββββββββββββββ
β CLI Mode β β GUI Mode β
β (main.py) β β (src/gui.py) β
βββββββββββββ¬ββββββββ ββββββββββββββ¬ββββββββββββββββ
β β
βββββββββββββΌβββββββββββββββββββββββββΌββββββββββββββββ
β Business Logic β
β src/logic.py (TaskManager) β
βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββΌβββββββββββββββββββββββββββββ
β Data Layer β
β src/database.py (DatabaseManager) β
βββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β
ββββββββββββΌβββββββββββ
β data/planner.db β
β (SQLite) β
βββββββββββββββββββββββ
src/lan.py βββΊ UDP broadcast (port 50505) β LAN room discovery
Full module breakdown in docs/Architecture.md.
| Package | Purpose |
|---|---|
| Pillow | Image loading and resizing |
| PyInstaller | Windows .exe packaging (build only) |
| Module | Purpose |
|---|---|
tkinter / ttk |
GUI framework β windows, widgets, themed controls |
sqlite3 |
Embedded relational database |
hashlib + secrets |
PBKDF2-HMAC-SHA-256 hashing, random salts |
socket + threading |
LAN room discovery via UDP broadcast |
wave + winsound |
Audio synthesis and playback |
csv |
Task data export |
json |
App preferences and task backup |
webbrowser |
GitHub profile links in Credits screen |
tkinter.filedialog |
Native save/open dialogs |
datetime / re / os |
Date handling, validation, path resolution |
- Python 3.8 or newer
Pillowβ the only runtime dependency
git clone https://github.com/SufiyanAasim/smart-study-planner.git
cd smart-study-planner
pip install -r requirements.txt
python main.pypython main.py # GUI (default)
python main.py --cli # Terminal interface
python main.py --menu # Mode pickerOr double-click SmartStudyPlanner.exe on Windows.
smart-study-planner/
βββ src/
β βββ gui.py # All Tkinter panels, canvas, dialogs
β βββ database.py # SQLite schema and queries
β βββ logic.py # TaskManager β CRUD, stats, JSON backup
β βββ models.py # Task dataclass and constants
β βββ lan.py # LAN study room discovery (UDP)
β βββ translations.py # 12-language dictionary
β βββ utils.py # Validation, audio, path helpers
βββ tests/
β βββ test_database.py # Integration test suite (5 tests)
βββ docs/
β βββ Architecture.md
β βββ Database.md
β βββ Development.md
β βββ Troubleshooting.md
β βββ releases/ # Per-version release notes
βββ assets/
β βββ icon.ico
β βββ logo.png
β βββ sounds/ # Synthesized audio and soundscapes
βββ data/ # Created at runtime
βββ .github/
β βββ ISSUE_TEMPLATE/ # Bug, feature, question, docs templates
β βββ workflows/ # CI β test, lint, build, release
βββ main.py
βββ SmartStudyPlanner.spec
βββ requirements.txt
βββ CHANGELOG.md
βββ CONTRIBUTING.md
βββ SECURITY.md
βββ LICENSE
| Shortcut | Action |
|---|---|
Ctrl+N |
Add new task |
Ctrl+F |
Focus search |
Ctrl+L |
Log out |
Double-click |
Edit selected task |
Delete |
Delete selected task |
Space |
Mark task complete |
python -m unittest discover -s testsCovers: authentication, password reset, duplicate registration prevention, per-user task isolation, and task CRUD.
python -m PyInstaller SmartStudyPlanner.spec.\build_exe.ps1Output: SmartStudyPlanner.exe in the project root.
Passwords and security answers are hashed with PBKDF2-HMAC-SHA-256 (100,000 iterations, unique random salts per user). All database queries are fully parameterized. Per-user data isolation is enforced at the query layer β cross-user access is structurally impossible.
See SECURITY.md to report a vulnerability.
![]() Mohammad Sufiyan Aasim System Architect Β· AI/MLOps Β· Docs |
![]() Fahad Bin Nasir Back-end Development |
![]() Ifrahim Yousuf UI/UX Β· Front-end Β· Animations |
![]() Taha Siddiqui Networking Β· Cyber Security |
MIT License Β© 2026 Smart Study Planner Contributors.
β Star this repo if it helped you study smarter.



