One Database.
A Thousand Realities.
GENIE runs on a single, unified data layer. But no two users ever see the same interface. The platform generates a completely different reality for every role โ derived from context, not configuration.
The Problem With Most EdTech
Everyone Sees
Everything.
Nobody Sees Clearly.
Most academic platforms suffer from what designers call "dashboard sprawl" โ a single, monolithic interface that tries to serve every user type simultaneously. The result is a screen that overwhelms a parent looking for one number, buries a lecturer's gradebook under institutional reports they cannot action, and hands a Dean raw student records they should never be reading.
The academic community's response to this is usually more training, longer onboarding documentation, and reluctant adoption. The platform gets blamed for poor UX. The real problem is that the interface was never designed with a specific user in mind.
The role-blind approach โ everything, for everyone
โ All of the above rendered in a single sidebar to every user type.
genie.ui.engine โ polymorphic_render(user.context)
The Interface Is Derived,
Not Configured.
GENIE does not maintain six separate portals. It maintains one, and derives the interface at render time from the authenticated user's role, institutional context, and permission scope. The same database query returns different field subsets depending on who is asking.
Single Source of Truth
One PostgreSQL database. One schema. Every student record, attendance event, grade entry, and institutional metric lives in the same, unified data layer with full referential integrity.
PostgreSQL ยท Single DB
Role-Scoped JWT Claims
At login, the backend mints a JWT that encodes the user's role(s), institutional ID, and permission scope. Every subsequent API request carries this context. The backend filters query results at the ORM level โ not in the UI.
JWT ยท Django REST ยท ORM filtering
Context-Derived Render
The frontend reads the decoded role from the token and renders a completely different component tree. A Parent's render tree has seven data points. A Registrar's has the full system. Same codebase. Different reality.
React ยท Role-conditional render
Every user sees exactly what they need. Nothing they don't.
This is not a UX preference โ it is a data minimization principle. Rendering fewer fields means fewer vectors for data exposure, fewer cognitive decisions for the user, and faster comprehension of the signal that actually matters to them. The interface is not stripped down. It is precision-built.
Role Showcase
Switch the Role.
Watch the Interface Change.
Select a role below to see the interface GENIE generates for that user. Same underlying data โ entirely different context.
Parent View
Visibility without surveillance.
A parent's interface is deliberately minimal. No lecture notes. No grade sheets. Just the three signals that answer the only question that matters: is my child showing up and staying on track?
Interface Profile
out of 140+ system fields
curated for non-technical users
misses trigger WhatsApp within 6h
Tunde Adeyemi โ HND Computer Science
Moshood Abiola Polytechnic ยท Year 2
Above 75% threshold
STAT302, ENG201, PHY211
6 of 8 courses confirmed
STAT302 โ Test 2
Grade sheets, course materials, dispute logs, and staff data are not rendered for this role.
genie.architecture โ data layer
PostgreSQL
Single unified database ยท All roles ยท All institutions
โ JWT role claim โ ORM field-level filter
Parent
7 fields
Student
28 fields
Lecturer
64 fields
HoD
91 fields
Dean
78 fields
Admin
140+ fields
The Unified Data Layer
One Query Engine.
Context-Filtered Results.
There is no separate "Parent Database" and "Lecturer Database." When a parent queries their ward's attendance, they are hitting the same attendance table as the Registrar running an institutional audit. The difference is entirely in the query filter applied by Django's ORM when it reads the JWT claim.
This approach eliminates the synchronization overhead of multi-database architectures and guarantees that what a parent sees and what a Registrar sees are always derived from the same underlying record โ with zero risk of data divergence.
- No data duplication across role-specific stores
- Referential integrity guaranteed at the DB level
- Role permission changes take effect immediately โ no cache flush
- Full audit trail on every field access, per user, per role
What If Your Lecturer
Is Also a Parent?
Dr. Adeyemi teaches Statistics at Moshood Abiola Polytechnic. His son Tunde is a second-year student at UNILAG. Today, GENIE handles both realities with two separate accounts.
Not for much longer.
Dr. Babatunde Adeyemi
genie.ng ยท Logged in ยท 2 active roles
Lecturer Context โ MAPOLY
STAT302 ยท Statistics for Engineers
Session 14 of 18
Below 75% threshold
Deadline: 16 Apr
System evidence attached
Lecturer interface โ institutional data scoped to own courses
One Login
A single set of credentials. No second account. No separate institutional email for the parent role.
Context Switch in One Tap
A single tap toggles between the Lecturer interface and the Parent interface. The JWT is re-scoped client-side; no re-authentication.
Zero Role Bleed
The Parent context has no access to STAT302 student records. The Lecturer context has no visibility into ward data from a different institution.
Dual-Role Identity is currently in internal development.
Design Philosophy
The Four Principles Behind Polymorphic UI
Contextual Visibility
You only see what is actionable for your role. Noise is not minimized โ it is eliminated at the data layer before it ever reaches the interface.
Field-Level Privacy
Data minimization is enforced server-side. A Parent role cannot request a grade field via the API even with a crafted query โ the ORM rejects the field before it leaves the DB.
Zero Configuration
No administrator sets up which fields a role sees. The interface is derived automatically from the role definition. New roles ship with their interface intact.
Interface Parity
Every role gets an interface that feels complete and intentional โ not like a stripped-down admin panel. A Parent's seven fields feel as comprehensive as a Registrar's 140+.
Ready to See It Live?
Every Role, Rendered
in 30 Minutes or Less.
A live deployment walkthrough will show you exactly what a Parent, a Lecturer, a Dean, and a Registrar at your institution will see from day one โ using your own sample data.
