Skhola — Offline School Management System
Mission-critical school administration desktop platform built for attendance tracking, student fee ledgers, and academic reports without internet dependency.
Why this was built
Many schools in regional Nepal experience unstable internet connectivity. Cloud-only school management portals cause administrative delays when staff cannot take attendance, issue fee receipts, or record exam grades.
Technical Approach
Building an offline-first desktop platform using Flutter Desktop with direct sqflite_common_ffi bindings. Integrates local Nepali date utilities (nepali_utils) for accurate Bikram Sambat (B.S.) calendar scheduling, student registration, fee accounting, and exam report generation.
// Skhola Desktop: Offline SQLite FFI initialization and schema setup
Future<Database> initializeSkholaDatabase() async {
sqfliteFfiInit();
final databaseFactory = databaseFactoryFfi;
final appDocDir = await getApplicationDocumentsDirectory();
final dbPath = p.join(appDocDir.path, 'skhola', 'skhola_core.db');
return await databaseFactory.openDatabase(
dbPath,
options: OpenDatabaseOptions(
version: 1,
onCreate: (db, version) async {
await db.execute('''
CREATE TABLE students (
id TEXT PRIMARY KEY,
admission_no TEXT UNIQUE,
name TEXT NOT NULL,
class_grade TEXT NOT NULL,
parent_contact TEXT,
enrollment_bs TEXT NOT NULL
)
''');
},
),
);
}Key Architectural Features & Outcomes
100% offline-first operation with local SQLite FFI database storage
Integrated Nepali calendar (Bikram Sambat B.S.) for academic terms
Student registration, attendance tracking, and parent contact logs
Fee payment ledger and automated receipt generator
Phase 1 standalone desktop application (Linux & Windows)