Blog
architecturedjangodruid-learning-hubengineering Druid Learning Hub

Five Audiences, One Codebase: The Architecture of Druid Learning Hub

29 Mar 2026 · Ibukun — Data Druid Tech · Updated 29 Mar 2026

Schools, parents, individuals, businesses, and the public. Same Django app.

Each audience has its own URL namespace, views, templates, and design language. A student sees green and playful. A corporate user sees teal and professional. Same courses. Same lessons. Different experience.

Seven user roles

ADMIN (platform owner), SCHOOL_ADMIN, INSTRUCTOR, STUDENT, PARENT, CORPORATE, ORG_ADMIN. When a user logs in, they are redirected to their audience-specific dashboard.

Course visibility

Three levels: PUBLIC_FREE, PUBLIC_PAID, PRIVATE. School admins pick courses from the global pool. Students only see what has been assigned.

Auto-generated credentials

Students click an invite link, fill in name and class, and get auto-generated credentials like amara_okafor@stcharles.dojo. No email needed.

Why not React?

Server-rendered Django templates with vanilla JS. No build tools. A page loads in one HTTP request — critical for old computers with slow internet. Total page weight: under 500KB.

— Ibukun Omonijo, Data Druid Tech