Back to projectsINDEPENDENT PRODUCT / BarberFlow

BarberFlow.
An idea put into practice.

An application connecting barbershop management with team schedules and client appointments.

FROM SIGN-IN TO DAILY OPERATIONSActual BarberFlow screen: sign-in using a phone number and verification code.Enlarge screenshot

Mobile application · API · Database

THE CHALLENGE

Coordinate the business, the team and its clients.

An appointment depends on shared information: service, time, branch, barber and status. BarberFlow organizes that information into dedicated experiences for clients, barbers and owners.

My role
Design and development of the mobile application, backend, API and database.
Core technologies
Flutter · C# / .NET · SQL Server
Product status
Final stage of development

WHAT IT ENABLES

  • View bookings and track appointment statuses.
  • Organize barber schedules, working hours and time off.
  • Manage branches and barber assignments.
  1. Mobile applicationFlutterInterfaces for each role
  2. Backend and APIC# / .NETBusiness rules
  3. DatabaseSQL ServerData persistence
Structure and technical decisions

Mobile application structure

The Flutter application is organized into authentication, owner, client and barber modules. Each module separates presentation (screens), application (state and controllers) and data (models, repositories and API access).

  • Interfaces by role: each user has access to the actions they need, with shared components to maintain consistency.
  • Critical rules in the backend: business validation runs in the API. Endpoints are grouped under /auth, /owner, /client and /barber.
  • Bookings in UTC: a shared time reference for storing and handling dates and times.
  • State and navigation: Riverpod manages state and dependencies; GoRouter centralizes navigation.
  • Communication and sessions: Dio handles API requests, with interceptors for authentication, token refresh and logging. Secure Storage stores the tokens.

Project screenshot