Skip to main content

Two paths to get started

Choose your journey based on whether you want to use BarberApp or develop it:

For users

Register an account and book your first appointment

For developers

Clone the repository and run it locally

Get started as a user

Experience BarberApp’s full appointment booking and management workflow.
1

Visit the platform

Navigate to the live BarberApp site:
https://barber-shop-guy.web.app/
You’ll land on the home page featuring a carousel of barber services, quick access to the portal, and information about available specialties.
2

Create your account

Click Ingresar al Portal (Enter Portal) in the hero section or navigate to /auth/register.Fill in the registration form with:
  • First and last name
  • DNI (identification number)
  • Sex (Male/Female/Unspecified)
  • Birth date
  • Email address
  • Password (with confirmation)
  • Phone number (optional)
  • Profile picture upload
The registration form includes custom validators defined in src/app/core/validators/custom-validators.ts to ensure data quality.
Select your role:
  • Client: Book and manage appointments
  • Specialist: Manage schedule and provide services
3

Access your dashboard

After successful registration and login, you’ll be redirected to your role-specific dashboard:Client dashboard (/dashboard/client):
  • Overview of pending and completed appointments
  • Quick access to book new appointments
  • Medical history summary
Specialist dashboard (/dashboard/specialist):
  • Upcoming appointments
  • Client list
  • Schedule management
4

Book your first appointment (Clients)

Click Solicitar Turno (Request Appointment) to start the 4-step booking process:Step 1: User information
  • Your profile details are pre-filled
  • Update height and weight if needed
  • Component: appointment-user-info.component.ts
Step 2: Select specialty
  • Choose from available specialties (Haircut, Beard Trim, Facial Cleaning, etc.)
  • Specialties are loaded from Firestore via FirebaseSpecialtyService
  • Component: appointment-specialty-selector.component.ts
Step 3: Choose specialist
  • Browse specialists filtered by your selected specialty
  • View specialist profiles with ratings and availability
  • Component: appointment-specialist-selector.component.ts
Step 4: Select date and time
  • Pick an available date from the calendar
  • Choose a time slot based on specialist availability
  • Availability is checked against existing appointments
  • Component: appointment-date-selector.component.ts
Step 5: Confirm booking
  • Review all appointment details
  • Submit to create the appointment
  • Component: appointment-confirm.component.ts
Appointments are created with PENDING status and stored in Firestore through FirebaseAppointmentService as defined in src/app/services/firebase/firebase-appointment.service.ts:24-31.
5

Manage appointments

From your dashboard, you can:View appointments
  • See all appointments organized by status (pending, completed, canceled)
  • Filter by date range
  • Access from /dashboard/appointments
Cancel appointments
  • Click on a pending appointment
  • Select Cancelar (Cancel)
  • Provide a cancellation reason
  • Status updates to CANCELED in the database
Download appointment details
  • Click the PDF icon on any appointment
  • Download a formatted PDF with all appointment information
  • Generated using jsPDF library
Rate completed appointments (Clients only)
  • After a specialist marks an appointment as completed
  • Provide a star rating (1-5)
  • Add optional comments
  • Rating is stored in the appointment’s rating field
6

View medical history

For Clients:
  • Navigate to Historial (History) in the dashboard
  • View all completed appointments with diagnoses
  • Medical history is automatically generated from completed appointments
For Specialists:
  • Access any client’s history from the client list
  • View detailed diagnosis information
  • Add diagnoses to completed appointments
  • Diagnosis interface from src/app/core/models/diagnosis.model.ts

Next steps for users

Update your profile

Edit personal information and upload a new profile picture

Understand roles

Learn about client and specialist capabilities

Explore dashboards

Discover all dashboard features and navigation

Learn about appointments

Deep dive into appointment lifecycle and management

Getting help

View source code

Access the complete repository on GitHub

Report issues

Found a bug? Open an issue on GitHub
BarberApp is a demonstration project created to showcase modern Angular development. Contributions and feedback are welcome!

Build docs developers (and LLMs) love