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.
Study Time Tracker helps students record and analyze their study sessions. The application provides a comprehensive platform for academic time management and performance analysis.
- π 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.
| UWA ID | Name | GitHub Username |
|---|---|---|
| 23951946 | Bowen Dai | goodlearner233 |
| 24074639 | David Du | DDuu123321 |
| 24318358 | Srinath Rajan | srinath-rajan |
| 24076678 | Wei Dai | WTTheCoder |
- Python 3.8 or higher
- pip (Python package installer)
- Clone the repository
git clone https://github.com/[your-github-username]/cits5505-group-50.git
cd cits5505-group-50-main- 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- Install required packages
pip install -r requirements.txt- 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- Run the application
python run.py
# or
flask run-
Access the application Open your web browser and navigate to: http://localhost:5000
-
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|
# 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.pycits5505-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
- 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
- Secure user registration and authentication
- Profile management and customization
- Session-based access control
- Record study sessions with detailed metadata
- Subject categorization and management
- Efficiency rating system
- Duration tracking with visual timers
- Interactive charts showing study patterns
- Weekly, monthly, and yearly analytics
- Subject-wise performance breakdown
- Productivity trends analysis
- Personalized study recommendations
- Pattern-based insights
- Efficiency improvement suggestions
- Selective data sharing with permissions
- Export study reports
- Collaborative study group features
# Set development environment
export FLASK_ENV=development # macOS/Linux
set FLASK_ENV=development # Windows
# Run with debug mode
flask run --debug# Create new migration
flask db migrate -m "Description of changes"
# Apply migrations
flask db upgrade
# Downgrade database
flask db downgrade- Follow PEP 8 for Python code
- Use meaningful variable and function names
- Add docstrings to functions and classes
- Write tests for new features
- 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