Loading

Back to Projects Showcase
Horizon Peaks
Web ApplicationHotel ManagementBooking SystemHospitality Featured

Horizon Peaks

Project Overview & Demo Details

A modern hotel booking website that allows guests to explore cabins, check availability, and manage reservations online.

Case Study & Technical Details

Horizon Peaks Logo

Horizon Peaks - Guest-Facing Website

The Horizon Peaks Guest-Facing Website is the public booking platform for a boutique hotel featuring eight luxurious wooden cabins. Built with Next.js, it enables guests to browse available accommodations, verify availability in real time, create reservations, and manage their bookings through a modern and responsive interface.

The application shares its database with the internal Horizon Peaks Dashboard, ensuring that cabin availability, reservations, and guest information remain synchronized across both systems.


Project Overview

The primary objective of this application is to provide guests with a seamless online booking experience while minimizing manual work for hotel staff. The platform focuses on performance, accessibility, and ease of use by utilizing modern React and Next.js features such as Server Components, Server Actions, and optimized rendering strategies.


Core Features

Google Authentication

Guests authenticate securely using their Google accounts through NextAuth.js.

Highlights

  • Secure Google OAuth authentication
  • Server-side session management
  • Automatic guest profile creation on first login
  • Persistent authenticated sessions

Cabin Browser

Guests can explore every available cabin before making a reservation.

Highlights

  • Responsive cabin listings
  • Capacity-based filtering
  • Pricing and discount information
  • Detailed cabin pages
  • High-quality image galleries

Reservation Management

The reservation system provides a smooth booking experience while preventing scheduling conflicts.

Highlights

  • Interactive booking calendar
  • Real-time unavailable date validation
  • Automatic overlap prevention
  • Reservation creation
  • Reservation editing
  • Reservation cancellation
  • Optional breakfast package selection
  • Booking history inside the guest account

Guest Profiles

Guests can maintain their personal information for faster future bookings and hotel check-ins.

Stored Information

  • Full Name
  • Email Address
  • Nationality
  • Country Flag
  • National ID

Technology Stack

CategoryTechnology
FrameworkNext.js 14+
RenderingServer Components, SSR, ISR
StylingTailwind CSS
AuthenticationNextAuth.js
DatabaseSupabase
State ManagementReact Context API
Date Utilitiesdate-fns
IconsLucide Icons

Shared Database

This project communicates with the same self-hosted Supabase instance used by the internal hotel management dashboard.

Main Tables

public.cabins

Stores:

  • Cabin information
  • Capacity
  • Pricing
  • Discounts
  • Images
  • Descriptions

public.bookings

Stores:

  • Guest reservations
  • Booking dates
  • Reservation status
  • Breakfast selections

public.guests

Stores:

  • Guest profiles
  • Personal information
  • Google account association

User Journey

A typical guest experience follows these steps:

  1. Sign in with Google.
  2. Browse available cabins.
  3. Filter cabins based on capacity.
  4. View detailed cabin information.
  5. Select available dates.
  6. Complete the reservation.
  7. Manage bookings through the account dashboard.
  8. Edit or cancel reservations when needed.

Performance & Architecture

The project leverages several modern Next.js features to deliver a fast user experience.

Performance Features

  • Server Components
  • Server-side Rendering (SSR)
  • Incremental Static Regeneration (ISR)
  • Optimized image loading
  • Efficient data fetching
  • Shared backend infrastructure
  • Responsive design across desktop and mobile devices

Integration

The guest website integrates directly with the internal Horizon Peaks Dashboard through a shared database.

This architecture allows hotel staff to manage cabins and reservations from the dashboard while guests interact exclusively with the public website, ensuring both applications always display consistent data.


Project Goals

  • Deliver a simple and intuitive booking experience
  • Prevent double bookings through real-time validation
  • Maintain synchronized reservation data
  • Provide secure authentication
  • Offer responsive layouts across all devices
  • Reduce manual reservation management for hotel staff

Code Author: Ahmed Said

Gallery & Interface Layouts

Home page

Home page

Cabin page

Cabin page

Cabin page

Cabin page

Booking a cabin

Booking a cabin

About page

About page

Profile page

Profile page

Eng Stack & Tools

Next.jsv15.5Reactv18.3TailwindCSSv3.4Supabasev2.4

Project Spec Sheet

RoleFull Stack Developer
ClientPersonal Project
Duration1 Month

Tags

#Next.js#Supabase#TailwindCSS#Reservations#Hospitality#Booking
AHMED.SAIDDeveloper Portfolio

© 2026 Ahmed Said. All rights reserved.