Case study · Webko

Terasa28: a booking site for a seaside apartment

Terasa28 is a rental site for a holiday apartment in Šventoji, on the Lithuanian coast near Palanga. Webko develops and maintains the whole thing: the public pages, a guest account with a booking calendar, and an admin panel where the owner approves requests.

Project
Rental site for a seaside holiday apartment in Šventoji (Palanga), Lithuania
Our role
Full-stack development: front end, back end and database
Scope
Public pages, guest accounts with a booking calendar, admin panel for approving bookings
Main stack
Angular, Java Spring Boot, PostgreSQL
Interface
Multi-language, driven by a custom static translations system
Status
Live at terasa28.webko.lt

Visit terasa28.webko.lt →

The task

A single apartment does not need a marketplace, but its site has to look good, answer the usual guest questions (how to get there, house rules, what is in the kitchen) and take booking requests without a back-and-forth by phone or messenger for every date.

On the host's side it has to show who is asking for which dates, let the host approve requests in one place, and show availability in a calendar with free and unavailable days, while prices are visible to registered guests.

What we build

Public pages that sell the stay

A full-screen hero with a clear "Check dates" action, a description of both levels of the apartment and the terrace, a photo gallery with Interior, Terrace and Beach & Sea filters, plus how-to-get-there, house rules and contacts pages.

Guest account and booking calendar

A calendar of upcoming months marks every day as free or unavailable. Guests create an account or log in to see prices and submit a booking request for the dates they picked.

Admin panel for approving bookings

The host reviews incoming booking requests and approves them in an admin panel.

Session-based authentication

The Spring Boot back end handles registration, login and sessions, with reCAPTCHA on the registration form so that bots do not fill the guest list.

Custom static translations

The interface text lives in static translation files served by a small custom system rather than an off-the-shelf i18n framework.

The site

Terasa28 home page with a beach boardwalk, the apartment name and a Check dates button
Home page: the hero with a direct "Check dates" action.
Terasa28 availability calendar showing free and unavailable days for October to December
Availability calendar: free and unavailable days, booking request for registered guests.
Terasa28 apartment description and photo gallery with Interior, Terrace and Beach & Sea filters
Description and photo gallery with category filters.

Technologies

Front end
Angular, custom static translations system
Back end
Java, Spring Boot
Database
PostgreSQL
Security
Session-based authentication, reCAPTCHA on registration

Result

  • One booking flow instead of message threads — guests pick dates in a calendar and submit a request, and the host answers from the admin panel.
  • Honest availability — free and unavailable days are visible before anyone writes.
  • Prices for registered guests — requests come from people who have an account, with reCAPTCHA keeping bots out of registration.

No booking figures are published for this project; the description is based on the live site.

More case studies

  • PEV Deals — A six-language catalogue of discounts on electric rides: prerendered Angular storefront, admin panel and Spring Boot API.
  • Intela — Reusable Angular components, module business logic and report pages for a tax-management portal inside a global corporation.

All projects

Planning a similar site?

Describe the task in a few lines and we will reply with an estimate and a suggestion for how to start.

Contact Webko