Skip to main content

4 posts tagged with "boater"

View All Tags

Release v1.14

· 5 min read
Eugenio
Staff Engineer

Overview

This release focuses on simplifying authentication through Google social login, improving administrative search and operational tools, enhancing onboarding security separation for Boater users, and addressing several high-impact usability and stability issues across the platform.

The update significantly improves login accessibility, reduces friction during user onboarding, and strengthens system resilience under degraded network conditions.


New Features

Social Login for All Roles (Google Integration)

Google social login has been introduced across all major roles in the BoatyBall ecosystem:

  • Admin users
  • Owners
  • Managers

Key capabilities

  • Secure authentication via Google OAuth
  • Unified login flow across roles
  • Reduced dependency on password-based authentication
  • Improved onboarding speed for enterprise users
  • Centralized identity validation for administrative roles

Benefits

  • Faster login process for frequent users
  • Reduced password reset requests
  • Improved account recovery reliability
  • Stronger authentication consistency across roles

Admin Enhancements: Booking Filters

Boat Name Filtering in Bookings

Admins can now filter bookings using boat name as a search parameter.

Improvements include:

  • Faster retrieval of relevant bookings
  • Improved operational tracking for specific vessels
  • Reduced reliance on booking IDs or manual lookup

Operational impact

  • Streamlined customer support workflows
  • Faster dispute resolution
  • Better visibility into booking patterns

Admin Enhancements: Payments Filtering

Boat Name Filtering in Payments

Payment records can now be filtered by boat name, enabling:

  • Faster financial reconciliation
  • Easier identification of payment histories
  • Improved audit traceability

Benefits

  • Reduced time spent searching transactions
  • Better alignment between booking and payment records
  • Improved accounting workflow efficiency

Owner Feature: Alphanumeric Mooring Ball Numbers

Owners can now assign alphanumeric identifiers to mooring balls.

Examples enabled

  • A12
  • B7-3
  • Z-100X

Improvements

  • Greater flexibility in inventory organization
  • Compatibility with legacy and external numbering systems
  • Improved human readability for complex layouts

Boater Signup: Separate Cognito Client

A dedicated Cognito client has been introduced for Boater registration flows.

Key changes

  • Separation of signup authentication from login authentication
  • Isolated user pool handling for onboarding flows
  • Improved security boundary between registration and active sessions

Benefits

  • Reduced risk of authentication conflicts
  • Cleaner onboarding pipeline
  • Improved scalability for user registration events

Fast Track Detection Logging

A new logging mechanism has been added for Boater "fast track" detection.

Capabilities

  • Tracks rapid onboarding or accelerated reservation flows
  • Logs behavioral signals for analysis
  • Supports backend monitoring and anomaly detection

Benefits

  • Improved fraud detection capabilities
  • Better system observability
  • Enhanced analytics for user behavior patterns

Fixed Issues


Issue #59 - Confirmation Code Validation (Trailing Space Handling)

Problem

When entering a confirmation code with a trailing space (e.g., copied from email or clipboard), users received a cryptic or unclear error message.

Resolution

  • Input normalization now trims whitespace automatically
  • Improved error messaging for invalid confirmation codes
  • Enhanced validation feedback clarity

Impact

  • Reduced password reset friction
  • Improved user experience in authentication flows
  • Fewer support requests related to reset failures

Issue #60 - Incorrect Icon for Anonymous Users on Map

Problem

Anonymous users viewing the Boater map were shown an incorrect buoy icon (gray flag) instead of the correct default representation.

Resolution

  • Fixed icon mapping logic for unauthenticated sessions
  • Ensured correct rendering of gray boat icon for anonymous users
  • Improved fallback icon consistency across map layers

Impact

  • More intuitive map visualization for non-logged-in users
  • Improved visual consistency across user states
  • Reduced confusion during exploration mode

Issue #61 - Initialization Failure on Slow Connections

Problem

Boater app could display a blank white screen during initialization when network conditions were slow or unstable.

Root cause

  • Race condition during synchronization sequence
  • Missing fallback state during delayed API responses

Resolution

  • Introduced robust loading state management
  • Improved retry and timeout handling during initialization
  • Added fallback UI rendering during delayed sync operations

Impact

  • Significantly improved stability on low-bandwidth connections
  • Reduced startup failure rate
  • Better user experience in mobile and remote environments

Performance and Stability Improvements

Authentication Flow Optimization

  • Reduced complexity in login decision trees
  • Improved token validation efficiency
  • Enhanced error handling consistency across roles

Backend Logging Improvements

  • Expanded observability for signup and fast-track detection flows
  • More granular event tracking for onboarding lifecycle
  • Improved traceability of authentication anomalies

UI Resilience Enhancements

  • Better fallback states for missing or delayed data
  • Improved icon mapping safety checks
  • Enhanced loading state consistency across Boater app

Security Improvements

  • Separation of signup and login authentication contexts for Boater users
  • Improved validation for authentication edge cases
  • Reduced risk of session conflicts during onboarding

Summary

BoatyBall v1.14.0 delivers a major authentication upgrade with Google social login support across administrative roles, significantly improved admin search capabilities, and a more robust and secure onboarding architecture for Boater users.

In addition, this release resolves several critical UI and initialization issues affecting usability under poor network conditions, ensuring a more stable and predictable experience across all supported environments.

!title: Release v1.14.0 - Social Login (Google) for All Apps, Admin Enhancements, and Stability Fixes !tags: release-notes, social-login, google-auth, admin, boater, payments, bookings, backend, bug-fixes !release_date: 2025-05-07 !description: BoatyBall v1.14.0 introduces Google social login across all roles (Admin, Owner, Manager, Boater), enhanced admin filtering capabilities, improved boater signup flow with separate Cognito client, expanded analytics logging, and multiple critical stability fixes addressing authentication edge cases, UI rendering inconsistencies, and initialization failures under poor network conditions.

Release v1.12

· 6 min read
Eugenio
Staff Engineer

Overview

BoatyBall v1.12.0 introduces major enhancements to map performance, backend efficiency, mooring ball visibility, and reservation management. This release delivers a significantly improved browsing experience through adaptive refresh technology, optimized data synchronization, and faster backend responses. It also expands mooring inventory visibility with support for unaffiliated mooring balls and includes a broad set of bug fixes and operational improvements across Boater, Owner, Admin, and Backend services.

New Features

Enhanced Maps Experience

A new React-based Google Maps integration has been implemented to improve map performance, rendering efficiency, and scalability.

Key improvements include:

  • Integration of a modern Google Maps React library.
  • Optimized marker clustering for large mooring inventories.
  • Improved map rerendering performance during navigation and filtering.
  • Support for two map display modes:
    • Road Map
    • Hybrid Map
  • Revised labeling and presentation of:
    • Mooring balls
    • Points of Interest (POIs)

Common Tracking Module

A new backend common-tracking module has been introduced to improve real-time data synchronization and reduce unnecessary network traffic.

Benefits include:

Adaptive UI Refresh Rate

The backend now dynamically controls UI refresh intervals based on reservation activity and mooring status changes, providing:

  • Faster updates when activity is high.
  • Reduced resource consumption during periods of low activity.
  • Improved responsiveness for active users.

Incremental Status Updates

Instead of transferring complete mooring datasets, the system now sends only changed mooring ball statuses.

Benefits:

  • Significantly lower network utilization.
  • Faster synchronization between client and server.
  • Reduced mobile data consumption.

Faster Mooring Ball Listing Responses

Backend optimizations deliver approximately:

  • 2× faster response times for mooring ball listings during extended browsing sessions.
  • Improved scalability under sustained application usage.

New Mooring Ball Type

Added support for a new mooring ball classification:

  • Unaffiliated with BoatyBall

This allows display and management of mooring balls that are not directly affiliated with the BoatyBall network while maintaining visibility within supported workflows.

API Reservation Protection

Implemented backend protections to prevent abuse scenarios where boaters could rapidly block mooring balls through repeated API requests.

Benefits:

  • Improved reservation fairness.
  • Better inventory availability management.
  • Reduced risk of automated reservation abuse.

Fixed Issues

Boater

Issue #50 – Redirection to Non-Existent POI

Problem

Navigating to a Point of Interest that no longer existed resulted in an infinite loading state.

Resolution

The application now correctly handles invalid POI references and prevents indefinite loading screens.

Issue #51 – Non-Existent Mooring Ball Display

Problem

Attempting to open a mooring ball that did not exist caused the UI to remain indefinitely in a loading state.

Resolution

Improved validation and error handling now provide proper responses when invalid mooring ball identifiers are requested.

Issue #56 – Hidden Mooring Ball Access from Reservations

Problem

Users could be offered navigation to hidden mooring ball details from the Reservations panel.

Resolution

Hidden mooring balls are no longer presented as accessible destinations from reservation workflows.


Backend

Issue #151 – POI Name in Backend Response

Enhancement

The BoaterPointOfInterestShortInfo response model has been updated to include the Point of Interest name.

Benefits

  • Reduced client-side lookups.
  • Improved data completeness.
  • Simplified UI rendering.

Issue #152 – Hidden Mooring Ball Visibility

Problem

Hidden mooring balls could be displayed by directly requesting a known mooring ball ID.

Resolution

Additional backend authorization and visibility checks now prevent retrieval of hidden mooring balls through direct requests.

Issue #153 – Incomplete Locations Tree

Problem

Only the first four levels of the location hierarchy were returned within Admin functionality.

Resolution

The complete locations hierarchy is now returned and displayed correctly.


Owner

Issue #53 – Create Mooring Ball Location Error

Problem

Refreshing or directly loading the Create Mooring Ball screen could result in incorrect default location behavior.

Resolution

Location initialization has been corrected to ensure consistent default values regardless of navigation path.


Admin

Issue #54 – Root Locations Not Foldable

Problem

Large production location trees became difficult to navigate because root locations could not be collapsed.

Resolution

Root locations are now foldable, significantly improving navigation and usability within large location structures.

Issue #154 – Null Check-In / Check-Out Times

Problem

Creating child locations could result in null check-in and check-out times.

Resolution

Location creation workflows now correctly initialize and persist check-in and check-out values.


Authentication

Issue #57 – Incorrect Password Handling

Problem

Submitting an incorrect password could leave users with no practical recovery path other than terminating the session.

Resolution

Authentication flow handling has been improved to provide a more reliable and user-friendly experience after failed password submissions.


Additional Improvements

Owner Management Enhancements

Global Manager Administration

Owners can now manage managers across all locations regardless of the is_ball_owner_root_location configuration.

Benefits:

  • Simplified administration.
  • Greater operational flexibility.
  • Reduced management overhead.

Individual Location Assignment

Owners can now assign and manage individual locations for managers.

Benefits:

  • More granular access control.
  • Improved delegation workflows.
  • Better operational organization.

Bulk Location Removal

Added support for removing all assigned locations from a bay manager in a single action.

Benefits:

  • Faster administrative workflows.
  • Easier role reassignment.
  • Reduced manual effort.

Reporting and Payment Timing Alignment

Collection services have been updated to execute at:

  • 11:30
  • 10-minute intervals

This change improves alignment between reporting and payment processing timelines, resulting in more consistent operational reporting.


Optional Geolocation Data for Requests

Boater API requests for:

  • Mooring balls
  • Points of Interest

no longer require geolocation information.

Benefits:

  • Improved compatibility.
  • Simplified integrations.
  • Better support for privacy-sensitive scenarios.

Existing User Invitation Improvements

The invitation workflow has been updated to properly handle invitations sent to users who already exist in the system and are already active.

Benefits:

  • Reduced onboarding friction.
  • More predictable invitation behavior.
  • Improved account management consistency.

Reservation and Payment Experience

Unpaid Reservation Indicator

An Unpaid status label is now displayed beneath mooring balls associated with reservations that have not yet been paid by the reserving user.

Benefits:

  • Increased payment visibility.
  • Improved reservation transparency.
  • Faster identification of pending actions.

Reservation Cancellation Notification

Users now receive a notification when a reservation is automatically cancelled due to non-payment after the expiration period.

Benefits:

  • Clear communication of reservation status changes.
  • Reduced confusion regarding expired reservations.
  • Improved user awareness of payment deadlines.

Quality Assurance

All included features, enhancements, and fixes successfully completed:

  • User Acceptance Testing (UAT)
  • Production Validation Testing

This release has been verified across Boater, Owner, Admin, and Backend workflows.

Summary

BoatyBall v1.12.0 focuses on performance, scalability, reservation integrity, and operational usability. Highlights include a redesigned maps experience, adaptive backend-driven refresh technology, substantial network and response-time optimizations, support for unaffiliated mooring balls, improved manager administration capabilities, and a comprehensive set of fixes addressing navigation, visibility, authentication, and location management issues.

!title: Release v1.12.0 !tags: release-notes, boatyball, maps, backend, performance, reservations, admin, owner, boater, bug-fixes !release_date: 2024-12-20 !description: BoatyBall v1.12.0 introduces a new Google Maps integration, adaptive backend-driven refresh technology, incremental mooring status synchronization, faster listing performance, support for unaffiliated mooring balls, reservation protection enhancements, expanded manager administration capabilities, improved payment visibility, and numerous fixes across Boater, Owner, Admin, and Backend services.

Release v1.11

· 5 min read
Eugenio
Staff Engineer

Release Overview

BoatyBall UI v1.11.1 focuses on usability improvements, payment workflow enhancements, reservation visibility fixes, administrative tooling updates, and navigation stability across Boater, Admin, Manager, and Owner experiences. This release delivers multiple quality-of-life improvements while addressing several production-impacting defects related to signup flows, payment management, map rendering, reservation status updates, and location handling.

Highlights

  • Improved reservation and mooring ball visibility for boaters.
  • Enhanced payment administration with transaction history and expanded user details.
  • Added email verification resend functionality during signup.
  • Resolved mobile invitation signup issues affecting administrators, owners, and managers.
  • Redesigned Manager payment panel organization and sorting.
  • Fixed multiple map rendering and navigation issues.
  • Improved location handling and data presentation across environments.

New Features

Boater

Boat Name Visibility Improvements

Issue #22

Boat names are now displayed at the same zoom level as reservable mooring ball numbers, improving map readability and helping boaters identify reservations more quickly without excessive zooming.

Benefits

  • Faster identification of reserved vessels.
  • Improved map usability.
  • Reduced zooming and navigation effort.

Email Verification Resend

Issue #30

Added resend functionality for signup confirmation codes. Users can now request a new email verification message directly from appropriate locations in the signup workflow.

Benefits

  • Reduced signup abandonment.
  • Improved account activation success rate.
  • Better self-service experience.

Payment Form Simplification

Issue #27

Removed the credit card holder name field from the payment experience.

Benefits

  • Streamlined checkout flow.
  • Reduced user input requirements.
  • Faster payment completion.

Admin

Transaction and Refund History

Issue #29

Added transaction history visibility within the Payments area, allowing administrators to review refunds and payment-related activity.

Benefits

  • Improved payment auditing.
  • Better operational transparency.
  • Easier support and dispute resolution.

Expanded Payment Details

Issue #33

Phone numbers are now displayed when payment rollup details are expanded.

Benefits

  • Improved customer identification.
  • Faster support workflows.
  • Better operational visibility.

Users Page Default View

Issue #34

The Users page now defaults to the Boaters tab when opened.

Benefits

  • Faster access to the most commonly managed user group.
  • Improved navigation consistency.

Manager

Payments Panel Redesign

Issue #35

Redesigned the Payments panel to improve organization and navigation.

Changes

  • Payments grouped by location.
  • Records sorted by mooring ball number.

Benefits

  • Easier payment review.
  • Improved operational efficiency.
  • Better scalability for multi-location management.

Bug Fixes

General

Activity Icon Rendering

Issue #21

Resolved an issue causing the Activity icon to render incorrectly in the user interface.


Invitation Signup Error

Issue #26

Fixed an issue affecting Admin, Owner, and Manager invitation-based signup where users received an "Oops! Something went wrong" message after submitting a valid invitation registration.

Result

  • Successful account creation now completes without erroneous error messaging.
  • Improved onboarding reliability.

Boater

Reservation Status Synchronization

Issue #31

Fixed a problem where recently cancelled reservations could continue appearing as booked immediately after cancellation.

Result

  • Reservation status now updates correctly.
  • Improved reservation accuracy and user confidence.

Admin

Locations Screen Default Location

Issue #25

Resolved a production-specific issue where the Locations screen could load without a default location assignment, resulting in an empty interface.

Result

  • Proper location selection is now applied.
  • Locations data displays correctly.

Refund Amount Validation

Issue #32

Fixed validation behavior in the Refund dialog to properly require a refund amount before submission.

Result

  • Improved data integrity.
  • Prevention of incomplete refund requests.

Manager & Owner

Ball Details Map Positioning

Issue #36

Fixed map rendering within Payment Ball Details where maps could zoom out to a world-level view instead of focusing on the selected mooring ball.

Result

  • Maps now center and zoom appropriately on the ball location.
  • Improved location context and usability.

Mooring Ball Sequence Integrity

Issue #38

Resolved an issue where mooring balls from different locations could be merged into a single sequence.

Result

  • Mooring balls are now grouped and displayed correctly by location.
  • Improved operational accuracy.

Manager

Invalid Route Handling

Issue #37

Fixed an application routing issue where navigating to a non-existent route could produce a white screen and uncaught console errors.

Result

  • Invalid routes are now handled gracefully.
  • Improved application stability and navigation resilience.

Admin, Owner & Manager

Mobile Invitation Signup Accessibility

Issue #23

Fixed a mobile layout issue affecting invitation-based signup where the Submit button could become inaccessible due to missing scrolling behavior.

Result

  • Full form accessibility on smartphones.
  • Reliable completion of invitation signup workflows.

Quality Assurance

All items included in this release successfully passed:

  • User Acceptance Testing (UAT)
  • Production Validation Testing

Included Issues

IssueTypeScopeSummary
#21BugAllIncorrect Activity icon rendering
#22FeatureBoaterBoat name visibility at ball zoom level
#23BugAdmin, Owner, ManagerMobile invitation signup submit access
#25BugAdminMissing default location on Locations screen
#26BugAdmin, Owner, ManagerInvitation signup error handling
#27FeatureBoaterRemoved card holder name field
#29FeatureAdminTransaction and refund history
#30FeatureBoaterResend signup confirmation code
#31BugBoaterCancelled reservation status refresh
#32BugAdminRefund amount validation
#33FeatureAdminPhone number in payment details
#34FeatureAdminDefault Users page tab
#35FeatureManagerPayments panel redesign
#36BugManager, OwnerBall details map centering
#37BugManagerInvalid route handling
#38BugManager, OwnerMooring ball location sequencing

Upgrade Notes

This release contains both user-facing enhancements and stability improvements. No special migration steps are required for end users.

!title: Release v1.11.1 !tags: boatyball, ui, payments, reservations, admin, manager, boater, bugfixes, enhancements !release_date: 2024-07-01 !description: BoatyBall UI v1.11.1 introduces payment management enhancements, signup workflow improvements, reservation visibility fixes, manager payment panel redesign, improved map behavior, and multiple administrative and usability bug fixes.

Release v1.10

· 5 min read
Eugenio
Staff Engineer

Overview

BoatyBall UI v1.10.0 delivers significant improvements across Boater, Owner, and Admin workflows with a strong focus on reservation handling consistency, administrative usability, reporting accuracy, and backend alignment. This release enhances multi-location management for managers, improves payment and reporting reliability, and resolves several critical UI and backend synchronization issues affecting reservation lifecycle, user management, and analytics integrity.

New Features

Boater Experience Improvements

Anonymous User Privacy Enhancement

Anonymous users will no longer see sensitive reservation data such as:

  • Boat names
  • Reservation-specific identifiers

This improves privacy and ensures consistent behavior across public-facing views.


All applications now automatically apply clickable prefixes for:

  • Phone numbers (tel:)
  • Email addresses (mailto:)

This improves usability across mobile and desktop environments by enabling direct communication actions.


Admin Panel Enhancements

Advanced User Search Capabilities

Admin user search functionality has been extended to include:

  • Search by boat name

This improves discoverability of users in large datasets and supports faster administrative lookup workflows.


Payment Filtering Enhancements

Admin payment views now include predefined date range filters:

  • Yesterday
  • Today
  • This Week
  • This Month
  • Custom range selection

This improves financial reporting efficiency and reduces manual filtering overhead.


Enhanced Owner and Manager Visibility

Admin users now benefit from extended visibility into:

  • Owner locations
  • Manager assignments per owner
  • Location-manager relationships

This improves operational clarity and reduces ambiguity in ownership structures.


Self-Closing Notification System

Admin actions now trigger automatic self-closing notifications for:

  • User activation/deactivation
  • Reservation-related permission changes
  • Advanced reservation toggles

This ensures immediate feedback without requiring manual dismissal.


Manager Data Expansion in Admin UI

Manager listings now include:

  • Assigned locations
  • Expanded manager metadata

This allows administrators to understand management scope directly from list views.


Owner Panel Enhancements

Multi-Location Manager Support

Owners can now:

  • Assign multiple locations to a single bay manager
  • Manage location assignments dynamically
  • Remove assigned locations individually or in bulk

This significantly improves flexibility for organizations managing multiple marinas or regions.


Manager Invitation Enhancements

Owner-side manager invitations now support:

  • Assigning multiple locations during invitation creation

This reduces onboarding steps and improves operational efficiency.


Manager Location Detail Visibility

Owner APIs and UI now include:

  • Location details for each manager
  • Improved clarity of assigned operational areas

Bug Fixes

Boater

Issue #39 – Reservation Cancellation Logic Refinement

Problem

Cancel button behavior was inconsistent for:

  • Non-reservable mooring balls
  • Partially eligible reservation states

Resolution

Cancel actions now correctly reflect reservation eligibility, preventing invalid operations and improving UI consistency.


Issue #42 – Unclear Booking Restriction Message

Problem

The message "This mooring cannot be booked" lacked clarity.

Resolution

Improved messaging provides clearer feedback on booking restrictions and availability conditions.


Issue #137 – Cancel Already Cancelled Reservation

Problem

Users could attempt to cancel an already cancelled reservation, producing misleading backend responses.

Resolution

System now properly handles redundant cancellation attempts with appropriate validation and messaging.


Owner

Issue #136 – Manager Invitation Cancellation Failure

Problem

Cancelled manager invitations remained in "INVITED" state in the backend.

Resolution

Invitation lifecycle state is now correctly updated upon cancellation.


Issue #48 – Reports White Screen

Problem

Reports screen would occasionally render as a blank page under specific conditions.

Resolution

Additional validation and rendering safeguards prevent UI crashes and ensure stable report loading.


Admin

Issue #49 – Payment Screen Not Updating After Refund

Problem

Refund actions did not trigger UI refresh in payment detail views.

Resolution

Payment screens now refresh correctly after refund processing, ensuring accurate real-time financial data.


Issue #142 – Manager Invitation Resend Failure

Problem

Resending manager invitations resulted in HTTP 404 errors due to missing backend support.

Resolution

Backend support for invitation resending has been implemented, restoring full functionality.


Issue #148 – Report Calculation Exceptions

Problem

Report generation encountered exceptions when handling cancelled reservations.

Resolution

Report logic now safely handles cancelled reservation states without exceptions.


Issue #149 – Incorrect Report Summary with Cancelled Reservations

Problem

Including cancelled reservations in reports produced incorrect summary calculations.

Resolution

Report aggregation logic has been corrected to properly account for cancelled reservations in summaries.


Backend Enhancements

Owner API Enhancements

Extended Manager Information

Endpoints now include:

  • Location details in /v1/managers/{id}
  • Enhanced manager metadata
  • Multi-location assignment support

Admin API Enhancements

Expanded Manager Short Info

BayManagerShortInfo now includes:

  • Assigned locations list
  • Improved relationship mapping between managers and operational areas

Owner List Enhancements

/v1/owners now includes:

  • Locations
  • Managers associated with each owner

Quality Assurance

All features and fixes in this release have been validated across:

  • User Acceptance Testing (UAT)
  • Production environment verification

Test coverage spans:

  • Boater workflows
  • Owner management flows
  • Admin reporting and user management systems
  • Backend API consistency and data integrity

Summary

BoatyBall UI v1.10.0 focuses on improving operational transparency, expanding multi-location management capabilities, and resolving critical inconsistencies in reservation handling, reporting accuracy, and administrative workflows. Key highlights include multi-location manager support, improved payment filtering, enhanced reporting reliability, and a broad set of backend and UI stability fixes across all major user roles.

!title: Release v1.10.0 - BoatyBall UI Improvements, Multi-Location Management, and Reporting Fixes !tags: release-notes, boatyball, ui, admin, owner, boater, backend, bug-fixes, reporting, reservations !release_date: 2023-10-23 !description: BoatyBall UI v1.10.0 introduces multi-location manager support, improved admin search and reporting tools, enhanced reservation handling, standardized contact links, and critical fixes for cancellation logic, reporting accuracy, and backend synchronization across Boater, Owner, and Admin systems.