Skip to content

Repository files navigation

Smart Study Planner Logo

Smart Study Planner

A secure, feature-rich desktop productivity app for university students

Python Version License: MIT Platform Tests PRs Welcome

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


✨ Features

πŸ“‹ Task Management

  • Full CRUD β€” add, edit, delete, complete tasks
  • Priority levels (High / Medium / Low), categories, deadlines, and status tracking
  • Search and filter across all tasks
  • Ctrl+N to add, Delete to remove, Space to complete

πŸ“… Study Timetable

  • 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

⏱️ Focus Timer

  • Pomodoro-style countdown with session tracking
  • Ambient soundscapes (looping, with volume control)
  • Live audio-wave visualizer synced to playback

πŸ€– Study Assistant

  • Local AI-style assistant with typewriter streaming output
  • Quick prompts: explain a concept, summarize task load, generate practice questions

πŸ‘₯ Study Groups & 🌐 LAN Rooms

  • 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

πŸŽ“ Academic Profile

  • Department, Class/Batch, Section, and Batch Year stored per account
  • Shown in the sidebar and broadcast in LAN room beacons

πŸ“ Notes Scratchpad

  • Distraction-free writing workspace
  • Live word, character, and paragraph counts
  • Auto-saves per user; export as .txt

πŸ“Š Visual Insights

  • Completion donut chart
  • Priority distribution and category breakdown charts
  • 5-day task load graph

πŸ” Security

  • 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

🌍 Localization & Themes

  • 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

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    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.


πŸ› οΈ Technology Stack

Third-party packages

Package Purpose
Pillow Image loading and resizing
PyInstaller Windows .exe packaging (build only)

Standard library (no install needed)

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

πŸš€ Getting Started

Requirements

  • Python 3.8 or newer
  • Pillow β€” the only runtime dependency

Install and run

git clone https://github.com/SufiyanAasim/smart-study-planner.git
cd smart-study-planner
pip install -r requirements.txt
python main.py

Launch modes

python main.py          # GUI (default)
python main.py --cli    # Terminal interface
python main.py --menu   # Mode picker

Or double-click SmartStudyPlanner.exe on Windows.


πŸ—‚οΈ Project Structure

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

⌨️ Keyboard Shortcuts

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

πŸ§ͺ Testing

python -m unittest discover -s tests

Covers: authentication, password reset, duplicate registration prevention, per-user task isolation, and task CRUD.


πŸ“¦ Building the Windows Executable

python -m PyInstaller SmartStudyPlanner.spec
.\build_exe.ps1

Output: SmartStudyPlanner.exe in the project root.


πŸ›‘οΈ Security

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.


🀝 Contributors

SufiyanAasim
Mohammad Sufiyan Aasim

System Architect Β· AI/MLOps Β· Docs
FahadBinNasir
Fahad Bin Nasir

Back-end Development
Ifrahim-yousuf
Ifrahim Yousuf

UI/UX Β· Front-end Β· Animations
13eeCoder
Taha Siddiqui

Networking Β· Cyber Security

πŸ“„ License

MIT License Β© 2026 Smart Study Planner Contributors.


⭐ Star this repo if it helped you study smarter.

Report Bug Β· Request Feature Β· Ask a Question

About

A secure, feature-rich offline desktop productivity app for university students. Manage tasks, timetables, study sessions, local AI assistance, and LAN study rooms from a single themed Tkinter dashboard.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages