Interface
Bilingual pages and role dashboards
Graduation project · Full-stack marketplace
A bilingual accommodation marketplace built around Palestinian stays, with separate customer, property-owner, and administrator journeys and a database-level answer to double booking.

01 / Overview
Local accommodation discovery is fragmented across social pages and messages. Guests cannot reliably verify availability, while hosts need professional listings, inventory control, and a clear approval workflow.
I contributed across the product stack: bilingual responsive interfaces, customer and owner flows, server routes, relational data, secure sessions, and booking-conflict protection. The portfolio describes the work as a team project and does not claim sole authorship.
02 / Architecture
Bilingual pages and role dashboards
Auth, properties, uploads, bookings
D1 relational model and unique slots
D1-backed property media
One typed codebase for public pages, dashboards, and route handlers.
Relational ownership and booking data with explicit schema and migrations.
The complete Next.js application runs publicly at the edge with its server routes and role-aware workflows.
Useful trip-planning assistance without making the core booking flow depend on a paid API.
03 / Engineering
Availability checks alone can race. Each booked time becomes a unique database slot; a collision returns HTTP 409 and the incomplete booking is removed.
Customer, owner, and admin queries are scoped on the server, including ownership checks before property changes.
Language and direction switch together, including navigation, forms, dashboards, and mobile layouts.
04 / Product


05 / Evidence
Demo access
| Role | Password | |
|---|---|---|
| Guest | guest@smartstay.ps | Guest123! |
| Owner | owner@smartstay.ps | Owner123! |
| Admin | admin@smartstay.ps | Admin123! |
Demo credentials are public. Do not upload private data or reuse these passwords.
SmartStay AI Palestine