Skip to content

Latest commit

Β 

History

105 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ScheduleMate

ScheduleMate

Manage your academic life. Track grades. Never miss a class.

πŸš€ SourceForge β€’ ✨ Features β€’ πŸ“¦ Getting Started β€’ 🀝 Contributing

Download (Latest) License: MIT Flutter Dart Platform Status


ScheduleMate Mockup

ScheduleMate is a modern, student-focused Flutter application that brings your entire academic life into one place. Track GPA in real-time, import faculty timetables from HTML exports, and stay on top of every class with intelligent reminders β€” all completely offline.

Β  Β Download ScheduleMate


✨ Features

  • πŸ“Š GPA Calculator β€” Real-time semester GPA calculation with cumulative tracking and customizable grade point scales.
  • πŸ—‚οΈ Structured GPA View β€” Semesters are grouped by academic year, providing a clean and organized overview of your progress.
  • πŸ“„ Result Sheet Generation β€” Export a beautifully formatted PDF report of your academic performance and grades.
  • πŸ“… Smart Timetable Import β€” Import schedules directly from faculty HTML exports with automatic parsing.
  • πŸ“ Exam Tracking β€” Organize and keep track of your upcoming exam schedules effortlessly.
  • πŸ“š CA Marks Extraction β€” Upload multiple PDFs at once to automatically extract and track your Continuous Assessment marks.
  • πŸ’¬ Collaborative Rooms β€” Create and join study rooms, chat with peers, and share files seamlessly via Google Drive.
  • ☁️ Automatic Cloud Sync β€” Seamlessly back up and restore your data using Google Drive integration with automatic room synchronization.
  • πŸ–οΈ Holiday Integration β€” Automatically detects and highlights special public holidays (Poya Days, Christmas, etc.) on your timetable.
  • πŸ”” Class Reminders β€” Weekly notification reminders with customizable lead times for Android 12+.
  • πŸ’Ύ Offline First β€” All data stored locally via SQLite β€” no internet connection required.
  • πŸ—‚οΈ Organized by Day/Week β€” View your timetable in a clean, structured layout organized by day and time slot with a sleek weekly calendar view.
  • πŸ€– AI Task Planner β€” Break down complex assignments into structured milestones and calculate exact deadlines using Gemini & Groq APIs.
  • 🎨 Premium Glassmorphism UI β€” Stunning modern interface featuring transparent cards, glowing accents, and Material 3 design guidelines.
  • βš™οΈ Flexible Customization β€” Adjust grade point scales and notification timings to fit your institution's system.
  • πŸš€ Mandatory App Updates β€” Enforces essential app updates with a modern, beautifully designed UI dialog to ensure all users are always on the latest version.

βš™οΈ Tech Stack

Category Technologies
Language Dart 3.x
Framework Flutter 3.x
UI Design Material Design 3
State Management Provider
Database SQLite, Firebase, Google Drive
HTML Parsing package:html
Notifications flutter_local_notifications
Platform Android (iOS support planned)

πŸ–₯️ App Preview


🧭 Quick Start Guide

1️⃣ Clone the Repository

git clone https://github.com/TharushaAkash/ScheduleMate.git
cd ScheduleMate

2️⃣ Install Dependencies

flutter pub get

3️⃣ Generate Native Folders (if needed)

flutter create --project-name schedulemate . --overwrite
flutter pub get

4️⃣ Configure Android Permissions

Add the following to android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

Note

Exact alarm permissions are required for Android 12+ to schedule class reminder notifications.

5️⃣ Run the Application

flutter run

6️⃣ Start Managing Your Academic Life

  1. Tap "Add Semester" β†’ Enter name, year, and date range.
  2. Add your courses β€” input name, credit hours, and grade.
  3. Watch your GPA calculate automatically in real-time ✨
  4. Export HTML from your Faculty Portal β†’ Upload in App to import your timetable.
  5. Toggle Notifications β†’ Receive weekly class reminders πŸ””

πŸ“ Project Structure

ScheduleMate/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart                 # App entry point & theme setup
β”‚   β”œβ”€β”€ models/                   # Data models
β”‚   β”‚   β”œβ”€β”€ course.dart
β”‚   β”‚   β”œβ”€β”€ semester.dart
β”‚   β”‚   └── timetable_entry.dart
β”‚   β”œβ”€β”€ providers/                # State management
β”‚   β”‚   β”œβ”€β”€ gpa_provider.dart
β”‚   β”‚   β”œβ”€β”€ timetable_provider.dart
β”‚   β”‚   └── app_provider.dart
β”‚   β”œβ”€β”€ services/                 # Business logic
β”‚   β”‚   β”œβ”€β”€ database_helper.dart
β”‚   β”‚   β”œβ”€β”€ timetable_parser.dart
β”‚   β”‚   └── notification_service.dart
β”‚   └── screens/                  # UI Screens
β”‚       β”œβ”€β”€ home_screen.dart
β”‚       β”œβ”€β”€ gpa_screen.dart
β”‚       β”œβ”€β”€ timetable_upload_screen.dart
β”‚       └── timetable_view_screen.dart
β”œβ”€β”€ android/
β”œβ”€β”€ ios/
β”œβ”€β”€ assets/
└── pubspec.yaml

🚧 Roadmap

  • ✏️ Edit/Delete semesters and courses
  • ⏰ Customizable reminder lead times in settings UI
  • πŸ’Ύ Auto-backup timetable cache
  • 🎯 Multiple timetable parser profiles per institution
  • πŸ“Š GPA trend analytics & charts
  • πŸŒ™ Dark mode support
  • 🌍 Multi-language support (Sinhala, Tamil, English)
  • πŸ“€ Export GPA transcript as PDF

🀝 Contribution

We welcome all kinds of contributions β€” not just code! Whether you're improving the UI, fixing bugs, adding features, or improving documentation β€” your input makes ScheduleMate better for every student.

πŸ’‘ Ways You Can Contribute

  • 🧩 Code Improvements: Fix bugs, optimize performance, or suggest new features via GitHub Issues.
  • πŸ—‚οΈ Timetable Parser Profiles: Help us support more faculty HTML export formats by contributing parser configurations.
  • πŸ› Bug Reports: Found something that doesn't work? Open a detailed issue with steps to reproduce.
  • 🧠 Ideas & Feedback: Share feature suggestions or general feedback in GitHub Discussions.
  • 🧾 Documentation: Improve readability, fix typos, or expand the project documentation.

πŸ› οΈ Getting Started

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Commit your improvements with clear, descriptive messages.
  4. Submit a pull request β€” we'll review and merge it!

Follow the Dart style guide and add tests for new features where applicable.

❀️ Every contribution, big or small, is appreciated. Let's make ScheduleMate better for students everywhere β€” together!


πŸ› Troubleshooting

Problem Solution
HTML import fails Check that format matches the parser; update selectors in timetable_parser.dart if needed
Notifications don't show Verify Android permissions are granted; check exact alarm support on device
GPA calculation wrong Update grade scale constants in lib/models/course.dart
App crashes on startup Run flutter clean then flutter pub get
SQLite errors Clear app data via device settings and reinstall

πŸ“œ License

Licensed under the MIT License. See the LICENSE file for full details.


⚠️ Disclaimer

This application is intended for personal academic use only. Timetable HTML parsing depends on the structure of your institution's faculty portal export. Parser compatibility may vary.


Made with ❀️ by TharushaAkash and contributors

About

πŸ“± A Flutter app for students to track GPA and manage timetables with smart offline-first reminders

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages