REPOSITORY CÔNG KHAI /Python
StudyDiscipline
📚 Ứng dụng kỷ luật học tập Windows — tự động chặn web giải trí, kill game, và Strict Mode chống xao nhãng
README
<div align="center">
<img src="app_icon.svg" alt="StudyDiscipline Logo" width="100"/>
Cách 1: Tải file
<details>
<summary>📦 Danh sách thư viện đầy đủ</summary>
</details>
<div align="center">
📚 StudyDiscipline
Ứng dụng kỷ luật học tập thông minh dành cho Windows
</div>🎯 Tự động chặn web giải trí, kill game và giám sát tập trung — để bạn học không xao nhãng.
✨ Tính năng nổi bật
| Tính năng | Mô tả |
|---|---|
| 🌐 URL Allowlist | Chỉ cho phép các domain học tập (GitHub, Wikipedia, Coursera, v.v.). Tab không hợp lệ bị đóng ngay bằng Ctrl+W |
| 💀 Game Killer | Tự động phát hiện và kill process game (League, Valorant, Steam, ...) |
| 🔒 Strict Mode | Khóa toàn bộ app trong X phút — không thể tắt cho đến khi hết giờ |
| 👁️ Giám sát thời gian thực | Theo dõi cửa sổ đang focus, hiển thị trạng thái trong thanh dưới |
| ⚠️ Overlay cảnh báo | Màn hình đỏ fullscreen + tiếng beep khi mất tập trung |
| 🐕 Watchdog | Tự khởi động lại app nếu bị đóng đột ngột khi đang trong Strict Mode |
| 🔔 System Tray | Thu nhỏ xuống khay hệ thống, chạy nền liên tục |
| 🖥️ Khởi động cùng Windows | Tự động chạy khi bật máy |
📸 Giao diện
Dark mode cao cấp với thiết kế tối giản, chuyên nghiệp
┌─────────────────────────────────────────────────────────────┐
│ 📚 StudyDiscipline [Khởi động cùng Windows] [⏸ Dừng] │
├─────────────────────────────────────────────────────────────┤
│ ✅ Allowlist │ 💀 Game Killer │ 🔒 Strict Mode │
│ │
│ [ Nhập domain... ] [ + Thêm ] │
│ │
│ 🔑 github.com │
│ 🔑 stackoverflow.com │
│ 🔑 coursera.org │
├─────────────────────────────────────────────────────────────┤
│ 📋 Nhật Ký Hoạt Động │
│ [10:30:01] 🚀 Bắt đầu giám sát. │
│ [10:32:15] 🚫 Tab bị chặn: youtube.com/watch?v=... │
├─────────────────────────────────────────────────────────────┤
│ ● Đang giám sát 🖥 github.com — Safe ✅ │
└─────────────────────────────────────────────────────────────┘
🚀 Cài đặt nhanh (Dành cho người dùng)
Cách 1: Tải file .exe (Khuyến nghị — không cần cài Python)
- Vào trang Releases
- Tải file
StudyDiscipline.exe - Double-click để chạy — không cần cài đặt gì thêm!
⚠️ Windows có thể hiện cảnh báo SmartScreen (vì app chưa có chữ ký số). Chọn "More info" → "Run anyway" để tiếp tục.
🛠️ Cài đặt từ Source Code (Dành cho developer)
Yêu cầu hệ thống
- OS: Windows 10 / 11 (64-bit)
- Python: 3.10 trở lên
- Quyền Admin (tuỳ chọn, cần để kill protected processes)
Bước 1 — Clone repository
git clone https://github.com/ilcde/StudyDiscipline.git
cd StudyDisciplineBước 2 — Tạo virtual environment (khuyến nghị)
python -m venv venv
venv\Scripts\activateBước 3 — Cài đặt dependencies
pip install -r requirements.txt| Thư viện | Phiên bản | Mô tả |
|---|---|---|
customtkinter | ≥5.2.2 | Giao diện hiện đại |
psutil | ≥5.9.0 | Quản lý process |
pywin32 | ≥306 | Windows API (GUI detection) |
pyautogui | ≥0.9.54 | Gửi phím tắt (Ctrl+W) |
uiautomation | ≥2.0.29 | Đọc URL từ thanh địa chỉ trình duyệt |
pystray | ≥0.19.5 | System tray icon |
Pillow | ≥10.0.0 | Xử lý ảnh icon |
plyer | ≥2.1.0 | Thông báo hệ thống |
Bước 4 — Chạy ứng dụng
python main.py💡 Chạy với quyền Admin để Game Killer hoạt động đầy đủ:# Mở PowerShell với quyền Admin, rồi chạy: python main.py
⚙️ Cấu hình
Sau lần chạy đầu tiên, file cấu hình được tạo tự động tại:
%APPDATA%\StudyDiscipline\config.json
Bạn có thể chỉnh sửa trực tiếp trong giao diện app hoặc sửa file JSON:
{
"allowlist_urls": [
"github.com",
"stackoverflow.com",
"coursera.org"
],
"game_processes": [
"league of legends.exe",
"valorant.exe",
"steam.exe"
],
"check_interval_seconds": 5, // Chu kỳ kiểm tra (giây)
"distraction_timeout_seconds": 60, // Thời gian mất tập trung tối đa
"startup_enabled": false // Khởi động cùng Windows
}🔒 Strict Mode — Hướng dẫn sử dụng
- Vào tab 🔒 Strict Mode
- Chọn thời gian (mặc định 25 phút — Pomodoro)
- Nhấn "BẬT STRICT MODE"
- Trong lúc Strict Mode bật:
- Nút đóng app bị vô hiệu hóa
- Không thể chỉnh sửa danh sách
- Task Manager bị kill tự động
- Watchdog tự khởi động lại nếu bạn cố tắt app
🔑 Mã thoát khẩn cấp: Nếu cần tắt khẩn cấp, gõ mã bí mật của bạn vào cửa sổ app (mã mặc định làadmin— hãy đổi ngay trong fileapp.pyở biếnSECRET_EXIT_CODE).
🔨 Build file .exe từ source
# Cài PyInstaller nếu chưa có
pip install pyinstaller
# Build (hoặc double-click build.bat)
pyinstaller StudyDiscipline.spec --clean --noconfirmFile output:
dist\StudyDiscipline.exe🗂️ Cấu trúc project
StudyDiscipline/
├── main.py # Entry point — singleton guard, khởi động app
├── app.py # Giao diện chính (CustomTkinter)
├── monitor.py # Background thread giám sát window & process
├── overlay.py # Cửa sổ cảnh báo fullscreen
├── config_manager.py # Đọc/ghi config.json
├── watchdog.py # Tự restart app nếu bị kill trong Strict Mode
├── requirements.txt # Dependencies
├── StudyDiscipline.spec # PyInstaller build config
├── build.bat # Script build một click
├── app_icon.ico # Icon ứng dụng
└── app_icon.svg # Icon nguồn (vector)
🤝 Đóng góp
Mọi Pull Request và Issue đều được chào đón! Vui lòng:
- Fork repository
- Tạo branch mới (
git checkout -b feature/ten-tinh-nang) - Commit thay đổi (
git commit -m 'feat: thêm tính năng X') - Push lên branch (
git push origin feature/ten-tinh-nang) - Mở Pull Request
📄 License
Phân phối theo giấy phép MIT License — xem file LICENSE để biết thêm chi tiết.
<div align="center">
Made with ❤️ by ilcde — Kỷ luật là chìa khóa thành công 💪
</div>