Logo Lanfrica

es-protocol/wikinTich

Domain:

education

Record type:

software
Creator:
es-
Host:
Educational platform connecting institutions and students with qualified teachers in Sierra Leone. Built with Next.js 14, TypeScript, and Supabase. # Tutor-Link Tutor-Link is a full-stack web application that connects parents with tutors for in-home tutoring. The backend is implemented as **one deployable Next.js 14 app** (modular monolith): HTTP endpoints live under `app/api`, business rules live under `lib/services`, and data plus authentication are provided by **Supabase** (PostgreSQL and Supabase Auth, including email OTP). Optional **Redis** backs **server-side rate limiting** when `REDIS_URL` is set so limits stay consistent across multiple instances. **Live demo:** wikin-tich.vercel.app --- ## Architecture The browser talks to a single Node process that serves both the React UI (App Router) and JSON API routes. **`middleware.ts`** adds security headers and protects dashboard routes with a lightweight session check; **CSRF validation, sanitization, validation, and rate limiting** for state-changing APIs run inside **`app/api`** handlers, which call **`lib/services/*`** modules. **Supabase** holds application data and auth users; **Redis** (when configured) participates in rate limits. **`GET /api/health`** returns process and dependency status for monitoring (it intentionally skips CSRF and rate limits). ```mermaid flowchart TB subgraph actors [Actors] parent[Parent] tutor[Tutor] adminUser[Admin] end subgraph nextApp [Next.js 14 - single deployable] ui[App Router pages] mw[middleware.ts] api[app/api route handlers] svc[lib/services] end subgraph data [Data and messaging] supabase[(Supabase Postgres and Auth)] end subgraph opt [Optional at runtime] redis[(Redis)] end parent --> ui tutor --> ui adminUser --> ui ui --> mw mw --> ui ui --> api api --> svc svc --> supabase svc --> redis monitor[Health checks] --> api ``` --- ## Tech stack | Area | Technology | |------|------------| | Language | TypeScript (strict) | | Runtime | Node.js — **20** in Docker; **18+** acceptable for local dev | | Web framework | Next.js 14 (App Router), React 18 | | Styling | Tailwind CSS | | Database and auth …