Skip to content
Menu

Application case study · Classroom platform

KaSkwela

Designing and building a classroom-first learning platform.

A classroom-first application bringing announcements, resources, discussions, and live teaching into one workspace. I designed and developed the product around teacher permissions, student participation, and the journey from preparing a lesson to reviewing attendance.

My role
Solo designer and developer
Stage
In-development beta
Intended audience
Teachers, students, and platform administrators
Scope
Product planning, interface design, architecture, and full-stack development
KaSkwela product presentation showing its landing page, classroom announcements, and teacher workspace on laptop and tablet screens.
A product presentation of KaSkwela's classroom-first experience. The project is in development; release acceptance remains ongoing.
On this page

Project status and evidence

This study draws on the project's design and engineering documentation. Documented implementation is distinct from independently verified provider integration or release acceptance. No adoption figures or measured user outcomes are claimed.

The classroom is the starting point.

I designed and developed KaSkwela around a complete classroom journey: helping a teacher prepare and teach a lesson, and helping students join and participate. The application brings classroom communication, learning resources, live teaching, controlled speaking, a collaborative whiteboard, and participation-based attendance into one workspace.

Rather than building a general-purpose community platform or a full learning management system, I focused the product on activities that directly support teaching. The current documentation describes implementation through the core classroom phases, while provider integration, device acceptance, and release hardening remain ongoing.

One coherent journey, with deliberate boundaries.

The central product question was how to keep communication, teaching, participation, and attendance coherent without making the classroom unnecessarily complex. A lesson needs a clear preparation, participation, and review flow, with permissions that reflect different responsibilities.

These priorities come from the product specification, not a claimed interview or survey study. The MVP deliberately excludes a full gradebook, payments, parent portals, public community discovery, student direct messages, automated proctoring, and face-recognition attendance.

Classroom organization
Keep announcements, resources, discussions, and live lessons within a shared classroom, with purpose-based rooms.
Trust and participation
Establish teacher verification and ownership before sensitive actions, while letting students request to speak during lessons.
Mobile participation
Support joining, reading, discussing, and attending on a phone through intentional navigation rather than compressed desktop screens.

From product decisions to system boundaries.

As the solo designer and developer, I worked across product planning, interface design, architecture, and full-stack development. I translated the classroom workflow into role-aware screens and defined the boundaries between persistent records, realtime events, live media, and collaborative drawing.

My development approach favors complete vertical slices. A feature connects the interface, validation, authorization, persistence, success and error feedback, and meaningful verification before its scope expands. Changes to a permission or contract also need corresponding documentation updates.

The visual direction is friendly and academic: blue accents and light everyday workspaces, with darker presentation surfaces for live teaching. On desktop, grouped room navigation provides context; on mobile, a single main pane and drawers or sheets keep the task readable.

KaSkwela workspace overview with classroom access, updates, and teacher verification, alongside a tablet classroom view.
The workspace overview brings classroom access, updates, and teacher verification into one starting point. The accompanying artwork is an interface presentation, not acceptance-test evidence.

Prepare. Participate. Review.

The classroom loop begins with trust. Teachers verify their email and submit private verification evidence before creating a classroom. Students enter through an invite and a validated membership operation. Platform role and classroom membership remain separate: an administrator does not automatically receive teacher controls.

During a lesson, students subscribe to media by default. Raising a hand requests permission; the teacher grants or revokes microphone publishing, and the student still chooses whether to turn their microphone on. The shared whiteboard has teacher-only, collaborative, and read-only modes.

Prepare a classroom
Create the classroom and default rooms, share an invitation, and publish announcements and private learning resources.
Teach and participate
Discuss in chat, start a live lesson, present on supported browsers, manage raised hands, and use a session-scoped whiteboard.
Review participation
End the lesson and review attendance derived from connected time, with reasoned, audited teacher overrides where needed.
KaSkwela classroom announcement interface on a laptop and phone, with navigation for resources, discussions, and live teaching.
A classroom communication presentation across desktop and mobile. Announcements, resources, discussions, and live-class access share the same classroom context.

Different realtime problems need different systems.

Next.js, React, and TypeScript support the application interface and protected operations. Better Auth establishes identity, while Prisma and Neon PostgreSQL hold persistent classroom records. Socket.IO and Redis handle realtime coordination, LiveKit transports media and enforces publishing capabilities, tldraw synchronizes drawing, and private S3-compatible storage holds files.

The architecture separates workloads by their needs. High-frequency drawing should not compete with chat events, media transport should not become the durable attendance record, and a failure in an optional subsystem should not block unrelated classroom actions.

Persist before broadcasting
Chat follows validation, authorization, persistence, then broadcast. Stable message identifiers support retries without treating provisional optimistic UI as a confirmed record.
Authorize where the action happens
Protected pages are only one boundary. Domain operations and realtime handlers also check current identity, membership, ownership, role, and feature state.
Derive attendance from intervals
Signed provider events, deduplication, and connection pairing reconcile reconnects and overlapping connections before duration is calculated. Socket presence alone is not attendance evidence.
Make the whiteboard lifecycle explicit
Drawings are temporary and session-scoped. That simplifies the teaching canvas but trades away saved history and recovery after a realtime-process restart.

Implementation and acceptance are separate milestones.

The documentation describes substantial progress across the classroom workflow. It does not establish a fully accepted MVP, production uptime, measured performance gains, or user impact. Actual services and devices are still needed to validate the behavior described by the implementation notes.

The verification strategy prioritizes teacher gates, invitation integrity, message retries, actual media permission changes, attendance event replay, private resource access, and whiteboard modes. Mocked providers or skipped credential-dependent suites cannot establish real-service acceptance.

Documented implementation
Accounts and teacher verification; classrooms and invitations; announcements, resources, and chat; live participation; attendance; and a temporary collaborative whiteboard.
Pending acceptance
Provider round trips, multi-browser collaboration, phone and virtual-keyboard behavior, recovery, privacy operations, and comprehensive accessibility review.
Roadmap
Offline shell, install and push completion, source-grounded AI assistance, load and recovery testing, monitoring, and broader production hardening.

Permissions are part of the experience.

KaSkwela reinforced that permissions are part of the product experience, not just backend rules. Teacher verification, classroom ownership, and student participation influence both the interface and the systems beneath it. A complete preparation-to-review flow matters more than a long list of disconnected features.

The next milestone is validating the complete classroom loop with actual services and devices, closing operational and recovery gaps, and completing the PWA foundation. Optional AI assistance comes after classroom stability, with source grounding and access isolation.

Technologies used

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • Better Auth
  • Prisma
  • Neon PostgreSQL
  • Socket.IO
  • Redis
  • LiveKit
  • tldraw
  • S3-compatible storage