
Sailing school · Custom management system
Altura Vela
Altura Vela is a sailing school in Rome. A redesign grew into a custom management system in Nuxt 4 on REST APIs: fleet calendar, areas for members and skippers, contracts, payments and AI. The school runs three times the boats it managed by hand.
Tools used
- Nuxt 4
- REST API
- Stripe
- AI
With Altura it all started with the redesign of a simple website. The real project came later, when the school began to grow and records and bookings could no longer be handled by hand: too many outings, too many members, too much information scattered across phone calls, spreadsheets and messages. That's when I proposed and built a management system shaped around the school's workflows, which over the years has become the reference tool for the whole organisation.
The client
Altura is a sailing and sea school founded in Rome in 1991 by three expert sailors, to dispel the myth that sailing is for the few. It runs beginner and advanced courses, skipper and boat licence courses, regattas, training cruises, charter with or without skipper, summer camps, sailing therapy and team building, with FIV instructors and skippers and bases in Rome, Fiumicino, Nettuno and Cala Galera. Its motto: «not as deckhands but as future captains».
Architecture and technologies
The system is a Nuxt 4 application talking to the backend through REST APIs. Separating interface and backend lets them evolve with greater independence, provided the API contracts remain compatible. This structure helps the system keep up with the school's needs over time. The migration to this architecture was the most complex part of the project. The historical data was extensive and had to be normalised, while the school kept working and asked for new features born from experience in the field, such as cancelling an outing for bad weather, with its effects on crews and payments, or new rules for membership cards. Around this core are online payments integrated with Stripe, role-based authentication and the AI features, all working on the same data.
My work
From processes to data model
Before writing any code I studied how the school works: how an outing is booked, how crews are put together, how a member's history is kept and which documents are needed before going on board. That analysis produced the data model, which links records, membership cards, boats, outings, bookings, contracts and payments, together with the rules the software has to enforce. It's the step that lets the system follow the way Altura works, instead of forcing the school to adapt to a generic tool.
Calendar, checks and private areas
The operational core is a calendar that handles many boats in parallel, with outings, crews and availability. Alongside it, the system checks on its own the conditions that block an outing and flags them before they become a problem: unsigned contracts, expired membership cards, missing payments. Three entry points share the same backend, with role-based authentication and permissions. The office manages fleet, records and checks; members book outings, pay online with Stripe and sign contracts from their own area; skippers see their assigned outings and crews and organise their work better.
AI supporting the office
AI came into the system where it really saves time. It generates reports, supports the office in daily work and analyses the data to spot errors and anomalies, such as inconsistent information or situations to verify, before anyone notices them on the day of the outing.
The outcome
Manual management had reached its limit: today records, bookings, contracts and payments go through a single system, with the full history of every member and every outing. With automated processes Altura manages three times the boats it handled by hand, without weighing down the organisation. The modular structure makes it easier to add new rules, checking their effects on the flows already in use.
// Contact
A project, a problem or just a question?
Agency, business or professional: choose how you'd rather talk to me. I reply as soon as I can, no strings attached.