Manage your academic life. Track grades. Never miss a class.
π SourceForge β’ β¨ Features β’ π¦ Getting Started β’ π€ Contributing
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.
- π 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.
| 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) |
git clone https://github.com/TharushaAkash/ScheduleMate.git
cd ScheduleMateflutter pub getflutter create --project-name schedulemate . --overwrite
flutter pub getAdd 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.
flutter run- Tap "Add Semester" β Enter name, year, and date range.
- Add your courses β input name, credit hours, and grade.
- Watch your GPA calculate automatically in real-time β¨
- Export HTML from your Faculty Portal β Upload in App to import your timetable.
- Toggle Notifications β Receive weekly class reminders π
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
- βοΈ 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
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.
- π§© 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.
- Fork the repository.
- Create a new branch for your changes.
- Commit your improvements with clear, descriptive messages.
- 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!
| 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 |
Licensed under the MIT License. See the LICENSE file for full details.
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





