A comprehensive desktop application for students to track their learning progress, take AI-generated exams, practice coding problems, and manage their study goals - all with an elegant Ubuntu-inspired interface.
- User Authentication: Secure registration and login system with password hashing
- Topic Management: Create and track learning topics across different subjects
- Smart Goals: Set and track learning goals with optional deadlines
- Note Taking: Organize notes by topic with timestamps
- Task Management: To-do list with priorities and due dates
- Learning Streak: Track daily study activity with streak visualization
-
AI-Powered Exams: Generate custom multiple-choice exams using AI
- Offline template-based generation (no internet required)
- Optional Ollama integration for advanced question generation
- Configurable question count and difficulty levels
- Detailed results with explanations
-
Coding Practice: LeetCode-style coding problems
- Generate problems by topic and difficulty
- Built-in code editor with syntax highlighting
- Automated test case validation
- Support for Python, JavaScript, and Bash
-
Code IDE: Integrated development environment
- Write and execute code directly in the app
- Real-time output display
- Support for multiple programming languages
- Save and manage code snippets
- Dashboard: Comprehensive overview of your learning journey
- Grade Calculator: Calculate required scores for target grades
- Visual Streak Calendar: 30-day activity visualization
- Exam History: Track all completed exams and scores
- Progress Reports: Subject-wise progress breakdown
- Python 3.8 or higher
- pip (Python package installer)
- Git
- Clone the repository
git clone https://github.com/yourusername/study-progress-tracker.git
cd study-progress-tracker- Create a virtual environment (recommended)
# On Windows
python -m venv venv
venv\Scripts\activate
# On Linux/macOS
python3 -m venv venv
source venv/bin/activate- Install required dependencies
pip install -r requirements.txt- Run the application
python main_app.pyCreate a requirements.txt file with:
torch>=2.0.0
transformers>=4.30.0
requests>=2.31.0
For enhanced AI features (Ollama integration):
- Install Ollama on your system
- Pull the Mistral model:
ollama pull mistral
The application features a modern Ubuntu Radiance-inspired theme with:
- Clean, minimalist design
- Intuitive navigation
- Color-coded sections for different features
- Responsive layout
- Smooth animations and transitions
- Primary: Ubuntu Orange (#e95420)
- Secondary: Ubuntu Purple (#762572)
- Success: Green (#38b44a)
- Warning: Amber (#efb73e)
- Error: Red (#df382c)
-
Register an Account
- Launch the application
- Fill in the "Create Account" form
- Minimum requirements:
- Username: 3+ characters
- Password: 6+ characters
- Valid email address
-
Login
- Enter your credentials
- Click "Sign In"
- Navigate to "๐ Topics"
- Add new topics with:
- Topic name (e.g., "Python Functions")
- Subject (e.g., "Programming")
- Update progress (0-100%) as you learn
- Track multiple topics across different subjects
- Go to "๐ Exams"
- Select a topic from your list
- Configure:
- Number of questions (5-30)
- Difficulty (easy/medium/hard)
- Click "Generate Exam"
- Answer all questions
- Submit and view detailed results
- Navigate to "โจ๏ธ Coding Practice"
- Generate a problem by topic
- Write your solution in the editor
- Run test cases to validate
- View detailed results for each test
- Go to "๐ป Code IDE"
- Write code in the editor
- Click "Run Code" to execute
- View output in the console
- Save useful snippets for later
- Navigate to "๐ฏ Goals"
- Add new goals with:
- Goal description
- Optional topic association
- Optional target date
- Toggle completion status
- Track progress on dashboard
- Go to "โ Tasks"
- Add tasks with:
- Task description
- Due date (optional)
- Priority (low/medium/high)
- Toggle completion
- Delete completed tasks
The application uses SQLite with the following tables:
- users: User accounts and credentials
- subtopics: Learning topics and progress
- goals: Learning goals and targets
- notes: Study notes
- exams: Generated exams and results
- tasks: To-do items
- code_snippets: Saved code
- activity_streak: Daily activity tracking
- practice_attempts: Coding practice history
- Template-based question generation
- No internet required
- Instant generation
- Pre-configured problem sets
- Advanced AI-powered question generation
- More natural and varied questions
- Requires Ollama installation
- Internet connection needed
To enable Ollama:
- Install Ollama from ollama.ai
- Run:
ollama pull mistral - Ensure Ollama service is running
- The app will automatically use Ollama when available
In offline_exam_generator.py:
# Change question templates
self.question_templates = self._load_question_templates()In ollama_integration.py:
# Change AI model
self.model = "mistral" # or "llama2", "codellama", etc.By default, the database is stored as tracker.db in the project directory. To change:
In enhanced_database_manager.py:
def __init__(self, db_name: str = "your_custom_name.db"):study-progress-tracker/
โ
โโโ main_app.py # Main GUI application
โโโ enhanced_app_logic.py # Business logic layer
โโโ enhanced_database_manager.py # Database operations
โโโ offline_exam_generator.py # Template-based exam generation
โโโ offline_coding_generator.py # Coding problem generation
โโโ ollama_integration.py # Optional AI integration
โโโ tracker.db # SQLite database (auto-generated)
โโโ requirements.txt # Python dependencies
โโโ README.md # This file
- Selects appropriate question templates based on subject
- Fills templates with topic-specific content
- Adjusts difficulty by modifying question complexity
- Shuffles answer options to prevent pattern recognition
- Generates unique explanations for each answer
- Automatically tracks daily activity
- Counts consecutive days of study
- Displays 30-day activity calendar
- Motivates consistent learning habits
- Runs code in temporary isolated files
- 5-second timeout limit
- Captures both stdout and stderr
- Automatic cleanup after execution
- Supports multiple programming languages
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow PEP 8 style guide for Python code
- Add docstrings to all functions
- Test new features thoroughly
- Update documentation as needed
- Code execution limited to Python, JavaScript, and Bash
- Ollama integration requires local installation
- Large transformer models may be slow on older hardware
- Web-based version using Flask/Django
- Mobile app (React Native/Flutter)
- Cloud sync for multi-device access
- Collaborative study groups
- Spaced repetition flashcards
- Export to PDF/Excel
- More programming languages support
- Voice notes integration
- Calendar integration
- Study analytics dashboard
This project is licensed under the MIT License - see the LICENSE file for details.
Your Name
- GitHub: @yourusername
- Email: sayendranadh2005@gmail.com
- Ubuntu design team for color scheme inspiration
- Ollama team for AI integration capabilities
- Hugging Face for transformer models
- The open-source community
If you find this project useful, please consider giving it a star on GitHub!
Happy Learning! ๐โจ
Made with โค๏ธ for students everywhere