Skip to content

DDuu123321/cits5505-group-50

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

cits5505-group-50

Study Time Tracker and Analyzer

Study Time Tracker and Analyzer CITS5505 - Group 50 A web application for tracking, analyzing, and sharing study time data to improve study habits and productivity.

πŸ“š Project Description

Study Time Tracker helps students record and analyze their study sessions. The application provides a comprehensive platform for academic time management and performance analysis.

Key Features

  • πŸ“ Record Study Sessions: Track study time with subject categorization, duration, and efficiency ratings
  • πŸ“Š Visualize Study Patterns: Interactive charts and analytics to identify productivity trends
  • 🎯 Goal Setting: Set and monitor study goals with progress tracking
  • πŸ€– AI Recommendations: Get personalized study suggestions based on your patterns
  • πŸ”— Share Statistics: Selectively share study data with instructors or study groups
  • πŸ“± Responsive Design: Fully functional on desktop and mobile devices

This project is developed as part of the CITS5505 Agile Web Development course at UWA.

πŸ‘₯ Team Members

UWA ID Name GitHub Username
23951946 Bowen Dai goodlearner233
24074639 David Du DDuu123321
24318358 Srinath Rajan srinath-rajan
24076678 Wei Dai WTTheCoder

πŸš€ Getting Started

Prerequisites

  • Python 3.8 or higher
  • pip (Python package installer)

Installation

  1. Clone the repository
git clone https://github.com/[your-github-username]/cits5505-group-50.git
cd cits5505-group-50-main
  1. Create and activate a virtual environment
# Create virtual environment
python -m venv venv

# Activate virtual environment
# On Windows
venv\Scripts\activate

# On macOS/Linux
source venv/bin/activate
  1. Install required packages
pip install -r requirements.txt
  1. Set up the database
# Initialize database migrations (if migrations folder doesn't exist, A test database has already been included)
flask db init

# Create migration files
flask db migrate -m "Initial migration"

# Apply migrations to database
flask db upgrade
  1. Run the application
python run.py
# or
flask run
  1. Access the application Open your web browser and navigate to: http://localhost:5000

  2. There are already accounts available for testing | ID | Email address | Password | |-------|------------|----------| | dbw623811 | [email protected] | Qtdy623811233@ | | example | [email protected] | Qtdy623811233@ | | aswecan | [email protected] | Qtdy623811233@ | | [email protected] | [email protected] | Aa123456|

πŸ§ͺ Running Tests

# Run all tests
python -m pytest

# Run with coverage report
python -m pytest --cov=app

# Run specific test file
python -m pytest tests/test_models.py

πŸ“ Project Structure

cits5505-group-50-main/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ __pycache__/        # Python cache files
β”‚   β”œβ”€β”€ static/
β”‚   β”‚   β”œβ”€β”€ css/            # Stylesheets
β”‚   β”‚   β”‚   β”œβ”€β”€ recommendations.css
β”‚   β”‚   β”‚   β”œβ”€β”€ style.css
β”‚   β”‚   β”‚   └── subject-form.css
β”‚   β”‚   └── js/             # JavaScript files
β”‚   β”‚       β”œβ”€β”€ ai-recommendations.js
β”‚   β”‚       β”œβ”€β”€ charts.js
β”‚   β”‚       β”œβ”€β”€ main.js
β”‚   β”‚       └── typewriter.js
β”‚   β”œβ”€β”€ templates/          # HTML templates
β”‚   β”‚   β”œβ”€β”€ create_report.html
β”‚   β”‚   β”œβ”€β”€ dashboard.html
β”‚   β”‚   β”œβ”€β”€ index.html
β”‚   β”‚   β”œβ”€β”€ login.html
β”‚   β”‚   β”œβ”€β”€ profile.html
β”‚   β”‚   β”œβ”€β”€ register.html
β”‚   β”‚   β”œβ”€β”€ share.html
β”‚   β”‚   β”œβ”€β”€ subject_form.html
β”‚   β”‚   β”œβ”€β”€ upload.html
β”‚   β”‚   β”œβ”€β”€ view_report.html
β”‚   β”‚   └── visualize.html
β”‚   β”œβ”€β”€ __init__.py         # Application factory
β”‚   β”œβ”€β”€ forms.py            # WTForms definitions
β”‚   β”œβ”€β”€ models.py           # Database models
β”‚   └── routes.py           # URL routes
β”œβ”€β”€ instance/
β”‚   └── site.db             # SQLite database
β”œβ”€β”€ tests/                  # Tests folder
β”‚   β”œβ”€β”€ system/             # System tests
β”‚   β”‚   β”œβ”€β”€ __pycache__/
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ conftest.py
β”‚   β”‚   β”œβ”€β”€ test_auth.py
β”‚   β”‚   β”œβ”€β”€ test_home.py
β”‚   β”‚   β”œβ”€β”€ test_share.py
β”‚   β”‚   β”œβ”€β”€ test_timer.py
β”‚   β”‚   └── test_visualize.py
β”‚   └── unit/               # Unit tests
β”‚       β”œβ”€β”€ __pycache__/
β”‚       β”œβ”€β”€ __init__.py
β”‚       β”œβ”€β”€ conftest.py
β”‚       β”œβ”€β”€ test_direct_share.py
β”‚       β”œβ”€β”€ test_forms.py
β”‚       β”œβ”€β”€ test_study_session.py
β”‚       β”œβ”€β”€ test_study_statistics.py
β”‚       └── test_user_model.py
β”œβ”€β”€ requirements.txt        # Python dependencies
└── run.py                  # Application entry point

πŸ› οΈ Technologies Used

  • Backend: Flask 2.3.3, SQLAlchemy 2.0.27
  • Database: SQLite with Flask-Migrate
  • Authentication: Flask-Login, Flask-Bcrypt
  • Forms: Flask-WTF, WTForms
  • Frontend: HTML5, CSS3, JavaScript, Bootstrap
  • Visualization: Chart.js
  • Testing: pytest, pytest-flask
  • HTTP Client: requests

🎯 Main Features

User Management

  • Secure user registration and authentication
  • Profile management and customization
  • Session-based access control

Study Tracking

  • Record study sessions with detailed metadata
  • Subject categorization and management
  • Efficiency rating system
  • Duration tracking with visual timers

Analytics & Visualization

  • Interactive charts showing study patterns
  • Weekly, monthly, and yearly analytics
  • Subject-wise performance breakdown
  • Productivity trends analysis

AI Integration

  • Personalized study recommendations
  • Pattern-based insights
  • Efficiency improvement suggestions

Data Sharing

  • Selective data sharing with permissions
  • Export study reports
  • Collaborative study group features

πŸ”§ Development

Running in Development Mode

# Set development environment
export FLASK_ENV=development  # macOS/Linux
set FLASK_ENV=development     # Windows

# Run with debug mode
flask run --debug

Database Operations

# Create new migration
flask db migrate -m "Description of changes"

# Apply migrations
flask db upgrade

# Downgrade database
flask db downgrade

Coding Standards

  • Follow PEP 8 for Python code
  • Use meaningful variable and function names
  • Add docstrings to functions and classes
  • Write tests for new features

πŸ™ Acknowledgments

  • CITS5505 Course Staff at The University of Western Australia
  • Flask and its amazing community
  • Bootstrap for responsive design components
  • Chart.js for beautiful data visualizations

Made with ❀️ by Group 50 for CITS5505

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •