Behind the stay

Considered on the outside.
Reliable underneath.

Sundrift is a full-stack accommodation portfolio application by Daniel Jr Nkulu, for Shape It Solutions. It reimagines an inherited Spring booking project with original product design and database-enforced reservations.

This is a portfolio demonstration. Every stay, host and seeded review is fictional; photographs are illustrative. Payments and receipts are simulated. No money is charged and no emails are sent.

One stay, one reservable space.

A listing represents one villa, apartment, cabin, suite or individual hotel room. There is no pooled room inventory or multi-room checkout. All prices are in ZAR, with no currency conversion.

A small, deliberate architecture.

Next.js
Experience & rendering
→Spring Boot
Identity & business rules
→PostgreSQL
Durable reservations

Next.js App Router and strict TypeScript render the experience. A single-origin API leads to Java 21, Spring MVC, Security sessions and JPA. PostgreSQL and versioned Flyway migrations own the data; Next.js never connects to the database.

Dates that keep their promise.

Stays use arrival-inclusive, departure-exclusive ranges. Temporary holds, confirmed reservations and host blocks share a PostgreSQL exclusion constraint. A listing lock coordinates state changes while the database independently rejects overlaps. Back-to-back stays are welcome.

Checkout that can be retried.

Five-minute price quotes become ten-minute inventory holds. Agreed prices and cancellation policies are snapshotted. Payment simulation, confirmation, refunds and inventory release happen in transactions. Persisted idempotency keys prevent duplicate settlements. A worker releases expired holds after a restart.

Your own corner of the demo.

Demo entry creates a private set of synthetic stays and accounts. Switch between guest, host and administrator to see the same reservation from every side. Administration can only moderate that synthetic context. Restore creates fresh demo data without deleting anyone else’s reservations.

Honest engineering.

The repository contains PostgreSQL concurrency and authorization tests, a reproducible Docker setup, CI and an account of the original project’s corrections. Performance and deployment claims are made only when measured or verified.

Explore the demo →

Built by Daniel Jr Nkulu · Shape It Solutions. Photography: Unsplash, used under the Unsplash licence. Asset sources and inherited attribution are recorded in the repository.