Skip to content
d.nikolaev
All projects
FlagshipProductUnder NDA

Learning platform: a single entry point

A redesigned student workspace: real-time chats, native notifications, two builds

Role
Frontend engineer: redesign, chats, notifications, optimisation
Period
Mar 2025 — present
Team
6 people
Company
LazurM

Details and code are covered by an agreement: I describe the problems and solutions without exposing internals.

Anonymised learning platform workspace marked NDA

The workspace from which a student reaches every university service: schedule, courses, library, finance, internships, portfolio. I took part in the redesign and the move to a modern stack, and built WebSocket chats and the notification system including native push.

What I did

  • Two builds for different devices: desktop and mobile sharing a domain layer
  • Real-time chats: a custom WebSocket client with ping/pong, channel subscriptions and connection auth
  • Notifications: live delivery over the socket, in-app history and native push through the Web Push API
  • Virtualised long chat and conversation lists instead of paginated loading
  • Single sign-on with several profiles per user
  • Zod schemas at the data boundary and typed routing with a generated route tree
  • A dedicated visually-impaired theme

Context

The product

The platform brings everything a student needs into one workspace: schedule, courses and materials, the digital library, finance, internships, the thesis, surveys and messaging with teachers.

The project went through a redesign and a stack change: the interface is built on modern React with a typed router, server state is handled by a caching query layer, client state by compact stores.

Problem

The problem

The difficulty is real time. Chats and notifications must arrive instantly, while the connection has to survive a sleeping tab, network loss and profile switching.

The second difficulty is volume. An active student has dozens of conversations and hundreds of messages, and a naive chat list render noticeably degrades on mobile devices.

The third is two clients. Desktop and mobile differ in interface but not in domain logic, and duplicating authentication, notification and request rules between them would lead straight to drift.

Solution

The solution

Chats and notifications arrive in real time, including when the tab is closed. Long lists stay responsive, and the rules for desktop and mobile are described once.

Outcome

The outcome

The workspace got live chats and notifications that reach the user even with the tab closed, and lists stopped lagging on long histories.

For me this is the most modern stack among my work projects: a typed router, a caching query layer and schemas at the data boundary together produce noticeably fewer runtime surprises than the usual store-plus-manual-requests combination.

Interface

Anonymised learning platform workspace marked NDA

Related projects