Booking Prototype

A small web application designed to simplify checking availability of a shared apartment in our building.

The problem

The booking process relied on a simple but repetitive workflow: someone would send an email asking whether a certain date was available, someone else would check the schedule, and then reply.

The problem was not complicated, but repeated requests created unnecessary back-and-forth.

The goal

Allow people to check availability themselves before sending an email.

The solution

I built a lightweight booking checker where users can:

  • select a date
  • immediately see whether it is available
  • submit a booking request

The focus was not to build a complete booking platform, but to solve one specific problem with as little complexity as possible.

From CLI to web application

The project started as a small command-line tool.

screenshot of Andros CLI
Andros CLI

Before building an interface, I wanted to validate the core logic first: checking dates, storing bookings, and confirming availability.

Once that workflow was working, the same logic was moved behind a web interface so it could be used without requiring technical knowledge.

Technical approach

The prototype was built with:

  • Go
  • server-rendered HTML templates
  • CSS
  • minimal JavaScript
  • Progressive Web App features

The application deliberately avoids a frontend framework. The interface is simple, fast, and built with standard web technologies.

screenshot of Andros Mobile
Andros Mobile

Data storage

For the prototype phase, bookings are stored in a simple JSON file rather than a database.

This keeps the implementation small and makes it easy to understand the complete flow from user input to stored booking.

A production version would likely move this to a proper database and add authentication and management features.

Deployment

The prototype is deployed as a small standalone application.

Building and deploying it also provided useful lessons around application state, hosting environments, and the difference between a quick prototype and a production system.

Future possibilities

A production version could include:

  • a management dashboard
  • authentication
  • email notifications
  • database storage
  • a production setup managed by the organization

The first goal, however, was much smaller:

Reduce unnecessary email communication by making availability visible immediately.

screenshot of Andros Desktop
Andros Desktop

$ repo stats nilshendriks.com

languages

  • Astro: 53.8%
  • Vue: 14.3%
  • CSS: 9.9%
  • MDX: 9.7%
  • JavaScript: 9.5%
  • TypeScript: 2.8%
  • HTML: 0.1%
nilshendriks.com/projects/booking-poc