Wi-Lab

A learning and supervision platform: lecturers publish modules, and each student gets a real-time chat with their own supervisor that the lecturer can open and close.

Supervision usually happens across a messaging app, a shared drive and a lecturer's inbox, and none of them know who supervises whom. Wi-Lab brings it into one place: lecturers and students, the materials they share, and the conversations between them.

Every student is linked to a supervising lecturer. Lecturers publish modules with files; students study them and talk to their supervisor in a live chat, on the lecturer's schedule.

What's  inside

Students and lecturers

Profiles with student or staff ID numbers, department, bio and avatar, and each student assigned to a lecturer.

Modules

Lecturer-authored modules with drag-and-drop file uploads (images, documents, PDFs) and open or restricted visibility.

Guidance chat

One-to-one conversations with read receipts and edited or deleted messages kept in the record.

Office hours

A lecturer can lock a conversation and set when it next opens, so supervision happens on their time, not at midnight.

Real  time  on  a  custom  server

Next.js alone doesn't keep sockets open, so the app runs on a small custom Node server that hosts Socket.IO next to Next.js. Each conversation is a room: joining announces the user, and a message is relayed to everyone else in the room while it's saved through the API. Notifications cover the rest, and the interface is fully in Indonesian.

Built  with

  • Next.js
  • TypeScript
  • Socket.IO
  • Prisma
  • Clerk
  • Tiptap
  • react-dropzone
  • TanStack Query
  • shadcn/ui

Related  Work