Transform grade tracking into a targeted study plan. Snowmark helps students prioritize their studying by learning from historical performance and calculating the exact hours needed to meet academic goals.
Snowmark is a full-stack web application designed to help students optimize their academic performance. The tool learns from a user's historical grades across different subjects and assignments, predicts future performance, and provides personalized study recommendations.
Development: Built across four weekly sprints by a team of five using Scrum methodology, Git version control, and agile project management.
- Grade Tracking: Log assignments, grades, and categories across multiple subjects
- Performance Analysis: Visual insights with pie charts showing study hours by subject
- Grade Prediction: Intelligent algorithm that forecasts future grades based on historical data
- Study Planning: Calculates exact hours needed to reach specific academic goals
- Subject Management: Organize assignments and categories by subject
- Category Weighting: Customize how different assignment categories contribute to final grades
- User Isolation: Secure authentication with separate data for each user
- Responsive Design: Clean, intuitive interface optimized for all devices
| Component | Technology |
|---|---|
| Backend | Python Flask |
| Frontend | HTML5, CSS3, JavaScript |
| Database | MySQL/MariaDB |
| Server | Python WSGI |
src/
├── app.py # Flask application & route handlers
├── db.py # Database schema & initialization
├── crud.py # Create, Read, Update, Delete operations
├── query_db.py # Database query functions
├── connect2DB.py # Database connection management
├── requirements.txt # Python dependencies
├── templates/ # HTML templates
│ ├── index.html # Main dashboard
│ ├── login.html # Login page
│ ├── register.html # Registration page
│ ├── about.html # About page
│ └── stats.html # Statistics page
└── static/
├── css/styles.css # Styling
└── js/main.js # Client-side logic
tests/ # Comprehensive test suite
Project/ # Project documentation & reports
- Python 3.8+
- MySQL/MariaDB server
- pip (Python package manager)
-
Clone the repository
git clone <repository-url> cd Snowmark
-
Install dependencies
pip install -r src/requirements.txt
-
Configure database connection
- Update database credentials in
src/connect2DB.py - Ensure MySQL/MariaDB server is running
- Update database credentials in
-
Initialize the database
python src/db.py
-
Run the application
python src/app.py
-
Access the application
- Open your browser and navigate to
http://localhost:5000
- Open your browser and navigate to
- Register: Create a new account with secure password storage
- Login/Logout: Session-based authentication
- User Isolation: Each user has separate data and sessions
- Add Assignments: Create new assignments with grades, weights, and categories
- Edit/Delete: Modify or remove existing assignments
- Subject Organization: Manage multiple subjects independently
- Category Management: Group assignments by type (homework, exams, projects, etc.)
- Grade Summary: View current grades across all subjects and categories
- Visual Analytics: Pie charts showing study hour distribution
- Performance Metrics: Historical grade analysis
- Predictive Modeling: Algorithm that learns from past performance to forecast future grades
- Study Planning: Calculate hours needed to achieve target grades
Comprehensive test suite covering:
- Database schema and operations
- Authentication and user isolation
- CRUD operations for all entities
- Grade prediction logic
- Route/API verification
- End-to-end workflows
Run tests:
python -m pytest tests/- Project Charter - Project vision and goals
- Requirements - Detailed functional requirements
- Test Plan - Testing strategy and coverage
- Test Report - Test execution results
- User Stories & Use Cases - User requirements
- Sprint Retrospectives - Team reflections and improvements
- Phase Summaries - Detailed implementation notes for each phase
This project demonstrates professional software engineering practices:
- Scrum Methodology: Four 1-week sprints with daily standups
- Version Control: Git with feature branches and merge requests
- Code Reviews: Peer review process for all changes
- Testing: Test-driven development with comprehensive coverage
- Documentation: Requirements, design docs, and retrospectives
- Team Collaboration: Cross-functional roles (development, testing, QA)
- Phase 1-2: Core functionality (add, edit, delete assignments)
- Phase 3-4: Database architecture and user authentication
- Phase 5-6: Analytics, prediction, and database-only architecture
- Phase 7: Subject management and final refinements
- Full-Stack Development: Integrating Python backend with web frontend
- Database Design: Schema design, normalization, and optimization
- Agile Project Management: Scrum ceremonies, sprint planning, retrospectives
- Git Workflows: Branching strategies, merge conflicts, collaborative development
- Software Quality: Testing strategies, code reviews, and continuous improvement
- Team Communication: Daily standups, documentation, knowledge sharing
Built by a team of five software engineers practicing Scrum methodology and professional development practices.
This project was created as an academic exercise for SE101.
Last Updated: December 2025 Status: Complete ✅