SkillLink

SkillLink is a peer micro-tutoring platform that helps students quickly find, book, and chat with peer tutors for short, focused sessions. Built as a polished, demo-ready hackathon project, SkillLink demonstrates a full-stack implementation (backend API, realtime chat, static frontend) with production-minded defaults.


Capture


Intro

SkillLink connects learners and peer tutors for short "micro-sessions" (30–60 minutes). It focuses on fast discovery, lightweight booking, secure auth, and realtime chat so students can get help when they need it.


Problem

Many students need fast, affordable help on specific problems or concepts. Traditional tutoring can be slow to schedule, expensive, or heavy for small needs. There is no simple, community-first way to browse peers, book short sessions, and chat during the session while keeping the experience polished and secure.


How SkillLink solves it

  • Students and tutors sign up quickly with email/password.
  • Tutors create short, discoverable skill offers (title, tags, duration, price).
  • Learners search and filter skills; book 30–60 minute sessions.
  • Realtime chat (Socket.IO) in bookings for coordination and lesson delivery.
  • Ratings/reviews after sessions to help quality discovery.
  • Lightweight admin metrics for judging and evaluation.

Tech stack

  • Backend: Node.js + Express + TypeScript
  • ORM: Prisma (Postgres)
  • Database: PostgreSQL
  • Realtime: Socket.IO (Redis adapter optional for scaling)
  • Static frontend: plain HTML, vanilla JS, CSS (served via Nginx)
  • Containerization: Docker & Docker Compose
  • Auth: JWT access tokens + rotating refresh tokens (secure hashed storage)
  • Validation: zod
  • Logging: morgan
  • Security: helmet, compression
  • Testing tooling (dev): Vitest + Supertest
  • Recommended infra for production: managed Postgres, Redis, k8s or cloud container service

Key results & features

  • End-to-end TypeScript backend with Prisma models for Users, Skills, Bookings, Messages, Reviews, RefreshTokens
  • Secure auth flow: signup, login, access tokens, refresh token rotation, logout
  • Skill creation, search (text + tag), pagination
  • Booking creation with overlap/conflict detection, status updates, participant access control
  • Realtime booking chat with server-side message persistence
  • Simple admin endpoint for quick stats
  • Static frontend (no heavy frameworks) that is responsive and demo-ready
  • Docker Compose to run everything locally (Postgres, Redis, backend, frontend)

Who can use this

  • Hackathon teams looking for a polished, demoable project
  • Students or small teams building tutoring/mentorship marketplaces
  • Educators and community organizers setting up peer-help platforms
  • Developers looking for a full-stack example combining auth, realtime chat, and a relational data model

Prerequisites

  • Docker & Docker Compose (recommended for local demo)
  • Node.js >= 18 (for local backend dev / running scripts)
  • npm (or Yarn) for installing backend dev dependencies
  • git (optional: to clone repository)

Files you should see in the repo:

  • backend/ (server code, Prisma schema)
  • frontend/ (static site, assets, nginx config)
  • docker-compose.yml
  • README.md

Share this project:

Updates

Submission history