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
- User quickstart
- Developer quickstart
Get started as a user
Experience BarberApp’s full appointment booking and management workflow.Visit the platform
Navigate to the live BarberApp site:You’ll land on the home page featuring a carousel of barber services, quick access to the portal, and information about available specialties.
Create your account
Click Ingresar al Portal (Enter Portal) in the hero section or navigate to Select your role:
/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.- Client: Book and manage appointments
- Specialist: Manage schedule and provide services
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
/dashboard/specialist):- Upcoming appointments
- Client list
- Schedule management
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
- Choose from available specialties (Haircut, Beard Trim, Facial Cleaning, etc.)
- Specialties are loaded from Firestore via
FirebaseSpecialtyService - Component:
appointment-specialty-selector.component.ts
- Browse specialists filtered by your selected specialty
- View specialist profiles with ratings and availability
- Component:
appointment-specialist-selector.component.ts
- 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
- Review all appointment details
- Submit to create the appointment
- Component:
appointment-confirm.component.ts
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
- Click on a pending appointment
- Select Cancelar (Cancel)
- Provide a cancellation reason
- Status updates to
CANCELEDin the database
- Click the PDF icon on any appointment
- Download a formatted PDF with all appointment information
- Generated using jsPDF library
- After a specialist marks an appointment as completed
- Provide a star rating (1-5)
- Add optional comments
- Rating is stored in the appointment’s
ratingfield
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
- 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!