A Flutter app for lecturers to manage student grades with Supabase backend and Excel export.
- CA1 × 15% + CA2 × 15% + Exam × 70% = Total (/100)
| Total (%) | GPA | Grade |
|---|---|---|
| 70 – 100 | 4.0 | A |
| 65 – 69 | 3.5 | B+ |
| 60 – 64 | 3.0 | B |
| 55 – 59 | 2.5 | C+ |
| 50 – 54 | 2.0 | C |
| 45 – 49 | 1.5 | D+ |
| 40 – 44 | 1.0 | D |
| Below 40 | 0.0 | F |
- Go to https://supabase.com and sign up for free
- Click New Project, give it a name (e.g. "ict-grades"), choose a region close to Cameroon (e.g. Europe West)
- Set a strong database password and click Create Project
- Wait ~2 minutes for it to provision
- In your Supabase dashboard, click SQL Editor in the left sidebar
- Click New Query
- Open the file
supabase_setup.sqlfrom this project - Paste the entire contents into the editor
- Click Run — you should see "Success" messages
- In your Supabase dashboard, click Settings (gear icon) → API
- Copy:
- Project URL (looks like: https://xxxxxxxxxxxx.supabase.co)
- anon / public key (a long string starting with "eyJ...")
- Open
lib/main.dart - Replace the placeholder values:
const _supabaseUrl = 'YOUR_SUPABASE_URL'; // paste Project URL here
const _supabaseAnonKey = 'YOUR_SUPABASE_ANON_KEY'; // paste anon key hereflutter pub get
flutter runlib/
├── main.dart # App entry point + Supabase init
├── models/
│ └── student_record.dart # Student data model + grade logic
├── services/
│ ├── supabase_service.dart # Database CRUD operations
│ └── excel_service.dart # Excel export (one sheet per course)
└── screens/
├── home_screen.dart # Main screen with tabs per course
└── student_form_screen.dart # Add/Edit student form
- Add students with: Name, Matricule, Email, Course, CA1, CA2, Exam
- Email validation: must be
name.name@ictuniversity.edu.cm - Automatic grade calculation: GPA, Letter grade, Pass/Fail
- Live grade preview while entering marks
- Students grouped by course (tab navigation)
- Search by name, matricule, or email
- Class statistics banner (total, GPA, pass rate)
- Export all results to Excel (one sheet per course, sorted by mark)
- Duplicate matricule detection
- Edit and delete students