Coaches publish 2-hour availability slots, students browse open slots across every coach and book them, and coaches confirm bookings and log each lesson afterwards with a 1–5 satisfaction score and notes.
A NestJS REST API on PostgreSQL through TypeORM, documented with Swagger/OpenAPI, behind an Angular 16 app styled with Tailwind CSS and Angular Material.
Highlights
- NestJS 10 feature modules (coaches, students, slots, lessons) with validated DTOs, a versioned /api/v1 prefix and Swagger docs.
- TypeORM entities on PostgreSQL with a slot lifecycle (Available, Booked, Scheduled, Past) and Coach–Slot–Student relations.
- Overlap detection removes conflicting 2-hour start times for the chosen day and enforces business hours.
- Lazy-loaded coach and student modules, OnPush change detection and an RxJS BehaviorSubject cache.
- Reusable standalone components (star rating, card, spinner) and Material dialogs that go full-screen on mobile.
At a glance
- Role
- Creator & sole developer
- Years
- 2023
- Source
- github.com/afmoleirinho96/coaching-scheduler
Stack
- NestJS
- Angular
- PostgreSQL
- TypeORM
- Swagger
- Tailwind CSS
- Angular Material
- Vercel
Built with TypeScript.