Barbershop Management System
A complete management system for the largest barbershop in Buritizeiro, MG handling operations, sales, scheduling, and customer loyalty. Built to replace spreadsheets and notebooks with a single, unified platform.
Business Context
Managing chaos in the largest barbershop in town
This barbershop is the largest in Buritizeiro, my hometown in Minas Gerais. Multiple barbers, dozens of daily appointments, walk-ins, product sales, membership plans, loyalty programs. Everything was managed manually.
They tracked appointments in a physical agenda. Sales went into spreadsheets. Customer history lived in people's heads. Inventory was a best guess. The cash register was a drawer. Monthly reports meant hours of manual work.
It worked, but barely. As the business grew, the system broke down. Double bookings happened. Customers got frustrated. Revenue tracking was unreliable. The owner knew they needed something better, but off-the-shelf solutions didn't fit their workflow.
Pain Points
- •Manual scheduling led to double bookings and lost appointments
- •No centralized customer history or service records
- •Product inventory tracked in spreadsheets, often inaccurate
- •Cash flow management was time-consuming and error-prone
- •Membership and loyalty programs managed manually
The Solution
One system for every aspect of the business
I built a complete management platform that handles everything the barbershop needs in one place. No more jumping between spreadsheets, notebooks, and memory. Everything is digital, organized, and accessible.
The system went into production and replaced their entire manual process. Barbers use it for scheduling. The front desk uses it for check-ins and sales. The owner uses it for reports and financial tracking. It's the single source of truth for the entire operation.
Scheduling System
Digital appointment calendar with barber assignment, service duration tracking, and automated reminders. Eliminates double bookings and keeps everyone on schedule.
Point of Sale
Complete POS system for services and product sales. Handles payments, receipts, and automatically updates inventory. Integrates with cash flow tracking.
Customer Management
Full customer database with service history, preferences, contact information, and visit frequency. Barbers can see previous cuts and customer notes.
Inventory Control
Real-time inventory tracking for all products. Automatic alerts for low stock, purchase history, and supplier management. No more guessing what needs ordering.
Financial Tracking
Complete expense management, revenue tracking, and cash flow monitoring. Daily, weekly, and monthly reports generated automatically.
Loyalty & Plans
Customer loyalty program and membership plan management. Tracks points, benefits, and plan renewals automatically. Increases customer retention.
Technical Architecture
Built for scale and daily production use
The system uses Django on the backend with Django REST Framework for the API layer. Bootstrap and JavaScript power the frontend, providing a responsive interface that works on desktops, tablets, and phones. PostgreSQL handles data persistence with proper relational design for customer records, appointments, sales, and inventory.
The architecture is modular. Each major feature scheduling, POS, inventory, financial tracking—is separated into distinct Django apps. They share common models where needed but remain independently maintainable.
System Modules
Appointment CRUD, barber availability management, service time slots, customer booking history
POS interface, payment processing, receipt generation, sales analytics, service and product transactions
Product catalog, stock levels, automatic reorder alerts, purchase orders, supplier database
Customer profiles, service history, preferences, loyalty points, membership status
Expense tracking, revenue reports, cash flow analysis, profit margins, export capabilities
Authentication and permissions are role-based. Barbers see their schedules and customer history. Front desk staff access POS and scheduling. The owner has full access to financial reports and system configuration. Everyone sees only what they need.
Technical Challenges
What made this project complex
Multiple User Roles
Different staff members need different access levels. Building a permissions system that was secure but still flexible enough for daily operations took careful design. I used Django's built-in permissions with custom role abstractions.
Real-Time Scheduling Conflicts
Preventing double bookings required handling concurrent appointment creation properly. I implemented database-level constraints and optimistic locking to ensure schedule integrity even when multiple people book at the same time.
Financial Accuracy
Money calculations need to be exact. I used Django's DecimalField throughout, proper transaction handling for sales, and built validation to ensure cash flow reports always balance. Financial data can't have rounding errors.
Data Migration
They had years of customer data in spreadsheets. I wrote migration scripts to import historical data while cleaning and validating it. Some records were incomplete, so the system had to handle partial data gracefully.
Operational Impact
How the system changed daily operations
The owner told me the system cut their administrative work in half. What used to take hours monthly reports, inventory checks, appointment reconciliation—now takes minutes. The system generates reports automatically. Inventory updates in real time. Scheduling conflicts don't happen anymore.
Customer service improved. Barbers can see a customer's history before they sit down. No more asking "what did we do last time?" Front desk staff can answer questions about appointments, loyalty points, or membership status instantly.
The financial tracking revealed things they didn't know. Which services were most profitable. Which products weren't selling. Peak hours and slow periods. Data they couldn't easily get from spreadsheets became immediately visible.
Measurable Results
- ✓Administrative time reduced by approximately 50%
- ✓Zero scheduling conflicts since deployment
- ✓Complete digital record of all customers and services
- ✓Real-time inventory tracking prevents stockouts
- ✓Automated financial reports save hours each month
- ✓System used daily by entire staff, in production
What I Learned
Lessons from building a production business system
This was the most complex system I've built. Not because of the technology Django, Bootstrap, and JavaScript are proven tools but because of the business logic. A barbershop has intricate workflows that aren't obvious until you watch people work.
I learned that understanding the domain is more important than writing clever code. Spending time at the barbershop, watching how appointments get scheduled, how sales happen, how they track inventory that was more valuable than any technical decision.
I also learned that production systems need different considerations than side projects. Data validation matters. Error handling matters. User roles and permissions matter. Backups matter. When people rely on your software for their livelihood, you can't cut corners.
The biggest lesson: good software makes people's jobs easier, not more complicated. Every feature I added went through the filter of "does this actually help them work better?" If the answer was no, I didn't build it.
Interested in Similar Work?
I build systems like this for businesses that need custom solutions. If you're dealing with manual processes, spreadsheets, or software that doesn't fit your workflow, let's talk about building something better.