Dashboard overview
TheClientPageComponent serves as the main dashboard for clients:
client-page.component.ts:14-30
Key features
Book appointments
Request new appointments through the multi-step booking form
View pending appointments
See upcoming appointments with full details
Appointment history
Access completed and canceled appointment records
Profile management
Update personal information and profile picture
Dashboard components
The client dashboard is composed of several key components:User information card
Displays the client’s profile information including:- Name and profile picture
- Contact information (email, phone)
- Personal details (DNI, birth date, sex)
- Health information (height, weight)
Pending appointments
TheAppointmentsPendingComponent shows all upcoming appointments:
- Appointment date and time
- Specialist name and specialty
- Appointment status
- Action buttons (view details, cancel)
Pending appointments are automatically sorted by date, showing the nearest appointments first.
Finished appointments
TheAppointmentsFinishedComponent displays completed appointment history:
- Past appointment details
- Diagnosis information (if added by specialist)
- Client rating (if submitted)
- Option to view full appointment details
Booking appointments
Clients can book new appointments through a streamlined 4-step process:Select service
Choose from available specialties (haircut, beard trim, coloring, etc.)
request-appointment-form.component.ts:53-56
Choose specialist
Select a preferred specialist or view all available specialists for the chosen service
request-appointment-form.component.ts:57-61
Pick date and time
Select from available time slots based on specialist availability
request-appointment-form.component.ts:62-66
Step validation
Each step is validated before allowing progression:request-appointment-form.component.ts:82-93
Appointment submission
Once all steps are completed, the appointment is submitted:request-appointment-form.component.ts:136-172
After successful booking, clients can choose to view their appointments list or return to the dashboard.
Managing appointments
Viewing appointment details
Clients can view full details of any appointment by clicking on it in their appointments list:appointment-list-page.component.ts:8-22
Canceling appointments
Clients can cancel pending appointments:- Navigate to the appointment details
- Click the cancel button
- Provide a cancellation reason
- Confirm cancellation
Rating appointments
After an appointment is completed, clients can rate the service:Ratings help other clients choose specialists and help specialists improve their services.
Profile management
Clients can update their profile information:Editable fields
- Personal info
- Health info
- Read-only
- First name and last name
- Phone number
- Profile picture
Profile picture upload
Clients can upload a profile picture through Cloudinary integration:- Click the profile picture in the user information card
- Select an image file from your device
- The image is uploaded and automatically resized
- The new profile picture is displayed across the application
Client data model
The complete client model includes:client.model.ts:3-7
user-base.model.ts:3-17
Navigation
The client dashboard provides quick navigation to:- Home: Return to main dashboard
- Book Appointment: Start the booking flow
- My Appointments: View all appointments (pending, completed, canceled)
- Profile: Edit profile information
- Logout: Sign out of the application
Reactive state management
The client dashboard uses Angular signals for reactive state:- Real-time updates when appointments change
- Automatic loading states during data fetches
- Error handling with user-friendly messages
- Optimistic UI updates for better user experience
All appointment data is synchronized with Firebase Firestore, ensuring data consistency across devices.
Next steps
Appointments
Learn more about the appointment system
User Roles
Understand role-based permissions