← All work

Social-Educational Platform · 2026

MAKTABNET

A social-educational platform connecting students, teachers and school administration in one digital environment.

Links coming soon

Engineering snapshot

  • 29 Database Models
  • 100+ API Endpoints
  • 20+ Backend Modules
  • 3 Platforms
  • 627+ Automated Tests

Technologies

Backend
  • NestJS 11
  • Node.js
  • TypeScript
  • Prisma ORM
  • PostgreSQL
  • JWT + Passport
  • EventEmitter2
  • Multer
  • Jest
  • Supertest
Web
  • React 19
  • Vite
  • TypeScript
  • Tailwind CSS
  • i18next
  • Lucide
Mobile
  • React Native
  • Expo
  • TypeScript
Infrastructure
  • pnpm monorepo
  • Shared TS packages
  • Docker
  • Docker Compose
  • Nginx
  • Let's Encrypt
  • Hetzner VPS

Problem

In Uzbek schools, communication between students, teachers and administration is scattered across Telegram groups, notice boards and word of mouth. Ideas, problems and events get lost, and there is almost no structured collaboration between schools.

Maktabnet replaces that with a single organised, transparent environment.

Solution

Maktabnet brings students, teachers and school administration onto one social-educational platform. Users publish posts, submit and vote on ideas, report problems, run projects and organise events — and schools can form official collaborations with one another.

An event-driven notification layer keeps the right people informed when actions such as likes, comments, membership requests or new posts happen.

My role

I built the project solo, from architecture to production.

That covered backend and database design, the REST API, authentication and a role-based permission system, the React web app, the React Native mobile app, the media upload and image-validation pipeline, localization and dark mode, and the deployment.

I also configured the server so Maktabnet runs alongside a separate, unrelated production project on the same VPS without the two interfering.

Architecture

API-first. A NestJS + PostgreSQL + Prisma backend of 29 data models, 100+ endpoints and 20+ domain modules.

Web and mobile both talk to the backend through a shared, typed @maktab/api-client package, so the API contract is identical across platforms and drift between them is designed out.

Notifications are event-driven: domain services emit events, a central listener picks them up and passes them to the notification service, which persists them.

Domain modules
  • Posts
  • Ideas
  • Problems
  • Projects
  • Events
  • Collaboration
  • Moderation
  • Notifications
  • Authentication
  • Users
Notification flow
  1. Post · Idea · Membership
  2. Event emitted
  3. Central listener
  4. Notification service
  5. Persisted to database

Notification logic stays separate from the core business logic.

Challenges

The core challenge was a permissions matrix that stays correct across four roles — Student, Teacher, School Admin, Platform Admin — and across membership states (PENDING / APPROVED / REJECTED) and moderation states (WARNED / RESTRICTED / SUSPENDED).

One subtle case: separating the real author of a piece of content from the context it is displayed in, and from content published on behalf of a school.

Deployment was the other one. Adding Maktabnet to a VPS that already ran an unrelated production project meant avoiding conflicts in networking, container naming, reverse-proxy configuration and SSL certificates.

Result

Maktabnet is a working three-platform product — backend, web and mobile — deployed to production on a live domain.

It is covered by 370+ unit tests and 257+ end-to-end tests, and the architecture is built to absorb more features and roles without rework.

Key features

  • Authentication & Authorization
  • Role-based permissions
  • Posts
  • Ideas & Voting
  • Problems
  • Projects
  • Events
  • School Collaboration
  • Moderation
  • Real-time Notifications
  • Media Uploads
  • Multi-language Support
  • Dark Mode
  • Web + Mobile
  • Admin Features

Overview

Maktabnet is a social-educational platform that brings students, teachers and school administration into one digital environment.

It is built as a three-platform product — a NestJS API-first backend, a React web application and a React Native mobile application sharing a typed API client. The system combines social interaction, cross-school collaboration, moderation and event-driven notifications in a single ecosystem.

Want something like this built? Let's talk →