Skip to content

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.

Notifications You must be signed in to change notification settings

LT-733/Snowmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

118 Commits
 
 
 
 

Repository files navigation

Snowmark: Grade Prediction & Study Planning Tool

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.

🎯 Overview

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.

✨ Key Features

  • 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

🏗️ Architecture

Technology Stack

Component Technology
Backend Python Flask
Frontend HTML5, CSS3, JavaScript
Database MySQL/MariaDB
Server Python WSGI

Project Structure

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

🚀 Getting Started

Prerequisites

  • Python 3.8+
  • MySQL/MariaDB server
  • pip (Python package manager)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Snowmark
  2. Install dependencies

    pip install -r src/requirements.txt
  3. Configure database connection

    • Update database credentials in src/connect2DB.py
    • Ensure MySQL/MariaDB server is running
  4. Initialize the database

    python src/db.py
  5. Run the application

    python src/app.py
  6. Access the application

    • Open your browser and navigate to http://localhost:5000

📊 Core Functionality

User Management

  • Register: Create a new account with secure password storage
  • Login/Logout: Session-based authentication
  • User Isolation: Each user has separate data and sessions

Grade Management

  • 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.)

Analytics & Prediction

  • 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

🧪 Testing

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/

📚 Documentation

🔄 Development Process

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)

Key Phases

  1. Phase 1-2: Core functionality (add, edit, delete assignments)
  2. Phase 3-4: Database architecture and user authentication
  3. Phase 5-6: Analytics, prediction, and database-only architecture
  4. Phase 7: Subject management and final refinements

📈 What We Learned

  • 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

👥 Team

Built by a team of five software engineers practicing Scrum methodology and professional development practices.

📝 License

This project was created as an academic exercise for SE101.


Last Updated: December 2025 Status: Complete ✅

About

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7