Category
Scheduling
Year
2024
Status
Built

SalonPro

Scheduling built around three different users.

A full-stack appointment management system for hair salons, built as a portfolio project after CarpetCareManager. I used the project to push further into role-based application design, creating separate experiences for salon owners, employees and customers instead of showing every user the same interface.

ReactTypeScriptExpressMySQLSWRChart.js

Problem

Appointment software serves several people with very different needs. A salon owner needs an overview of the business, employees need their own schedules and performance information, while customers mainly need a simple way to book appointments and manage their account.

Key features

Separate owner, employee and customer experiences
Appointment creation, scheduling and management
Customer profiles with appointment history, spending and loyalty information
Employee performance statistics including appointments and generated revenue
Business dashboards with operational statistics and peak-time insights
Customer registration with email confirmation

Technical approach

I built the project as a full-stack application with React, TypeScript, Sass and SWR on the frontend, backed by Node.js, Express and MySQL. JWT and Argon2 handle authentication and password security, while Chart.js is used for business and employee statistics. I also created a public-facing website alongside the application and used routing to separate the website experience from the authenticated application area.

What I’d improve

The project helped me improve significantly on what I had learned from CarpetCareManager, especially around role-specific interfaces and larger application flows. Looking back, I would simplify parts of the architecture, define permissions and shared data contracts more explicitly, and add stronger automated testing before expanding the feature set further.

Solo project
Ownership
Owner · Employee · Customer
User types
Website · Full-stack app
Scope

Other products

Questions about SalonPro?

I’m happy to share more about the technical decisions and implementation behind the project.