NomadCore
Personal project (solo)
- Problem
- Guest houses in Kyrgyzstan track bookings in paper journals and WhatsApp, so double bookings are common and there is no reliable availability data to expose to OTAs or national travel platforms.
- Approach
- Built a mobile-first property management system end-to-end: a NestJS + Prisma API over an 8-table PostgreSQL schema, a HOLD → CONFIRMED → CHECKED_IN → CHECKED_OUT booking state machine, anti-overbooking checks covered by a dedicated race-condition integration test, optimistic locking (row version) for offline sync, a transactional outbox with a relay worker for notifications, and a Telegram bot booking channel. Front end is an offline-capable Nuxt 4 PWA with a local outbox queue.
- Result
- Runs locally via Docker Compose (PostgreSQL + Redis); not publicly deployed. The front end was subsequently ported to React 19 / Next.js 16 as a separate study project.
- NestJS
- Prisma
- PostgreSQL
- Redis
- BullMQ
- Vue 3
- Nuxt 4
- TypeScript
- Telegram Bot API





