A complete salon booking mobile application built with Flutter and Django REST Framework. this project feature an AI-powered chatbot, ML-based hairstyle recommendations and real-time booking managment system for both users and salon admins.
StyleX is modern salon booking platform that connects customers with salons in their area. The app makes it easy for users to browse salons, book appointments, get AI-powered style suggestions and manage they're bookings all in one place. For salon owners, it provides a powerful admin panel to manage services staff and track revenue.
- Browse Salons: Discover salons near you with location-based search and filtering
- Smart Booking System: Book appointments with preferred stylists at convienient times
- AI Chatbot Assistant: Get instant answers and recommendations through intelligent chat
- ML Hairstyle Suggestions: Upload your photo and get personalized hairstyle recommedations using machine learning
- Reviews & Ratings: Read reviews and rate your experience after each visit
- Real-time Notifications: Receive instant updates about booking status via Firebase Cloud Messaging
- Payment Integration: Secure in-app payment processing for bookings
- Profile Management: Manage your preferences bookings history and favorite salons
- Dashboard Analytics: View comprehensive insights on revenue bookings and performance
- Service Management: Add update and remove services with pricing and duration
- Staff Management: Manage stylist profiles schedules and availability
- Booking Management: View approve and manage all customer bookings
- Revenue Tracking: Monitor daily weekly and monthly revenue with visual charts
- Customer Insights: Access customer data reviews and booking patterns
- AI Chatbot for Admins: Special admin chatbot for business analytics and staff management
- Flutter - Cross-platform mobile framework
- GetX - State management routing and dependency injection
- Firebase:
- Firebase Auth - User authentication
- Firebase Messaging - Push notifications
- http - API integration
- fl_chart - Beautiful charts for analytics
- image_picker - Camera and gallery access
- geolocator - Location services
- GlassMotion Navbar - Modern glassmorphic navigation
- Django 4.x - Web framework
- Django REST Framework - RESTful API
- SQLite - Database (easily switchable to PostgreSQL)
- Firebase Admin SDK - Push notifications and auth verification
- Python ML Libraries - For hairstyle analysis features
- Gemini AI Integration - Powers the intelligent chatbot
SALOON APP/
β
βββ salon_booking/ # Flutter Mobile Application
β βββ lib/
β β βββ controllers/ # GetX Controllers (State Management)
β β βββ models/ # Data models
β β βββ views/ # UI Screens
β β β βββ admin/ # Admin dashboard screens
β β β βββ user/ # User-facing screens
β β βββ widgets/ # Reusable UI components
β β βββ services/ # API services
β β βββ routes/ # App navigation
β β βββ theme/ # App theming
β βββ android/ # Android-specific files
β βββ ios/ # iOS-specific files
β βββ pubspec.yaml # Flutter dependencies
β
βββ backend/ # Django REST API
βββ accounts/ # User authentication & profiles
βββ bookings/ # Booking management
βββ salons/ # Salon information
βββ services/ # Salon services
βββ staff/ # Staff/stylist management
βββ reviews/ # Reviews and ratings
βββ chatbot/ # AI chatbot logic
βββ hairstyle_ml/ # ML hairstyle analyzer
βββ firebase/ # Firebase integration
βββ api/ # API endpoints
βββ backend/ # Django settings
Before you begin make sure you have these installed:
- Flutter SDK (3.9.2 or higher)
- Dart SDK
- Python 3.8+
- pip (Python package manager)
- Android Studio or Xcode (for mobile development)
- Firebase project setup
- Navigate to backend directory:
cd backend- Create and activate virtual enviroment:
python -m venv venv
venv\Scripts\activate # On Windows
source venv/bin/activate # On macOS/Linux- Install dependencies:
pip install -r requirements.txt- Setup environment variables:
Create a
.envfile in backend/ with:
FIREBASE_CREDENTIALS_PATH=path/to/serviceAccountKey.json
GEMINI_API_KEY=your_gemini_api_key
SECRET_KEY=your_django_secret_key
- Run migrations:
python manage.py makemigrations
python manage.py migrate- Create superuser (admin):
python manage.py createsuperuser- Start development server:
python manage.py runserverThe API should now be running at http://localhost:8000
- Navigate to Flutter directory:
cd salon_booking- Install dependencies:
flutter pub get- Setup Firebase:
- Add
google-services.jsontoandroid/app/(for Android) - Add
GoogleService-Info.plisttoios/Runner/(for iOS) - Update
lib/firebase_options.dartwith your Firebase config
-
Update API endpoint: In your services files update the base URL to point to your backend server
-
Run the app:
flutter clean
flutter pub get
flutter run- Create a Firebase project at https://console.firebase.google.com
- Enable authentication (Email/Password)
- Enable Cloud Messaging
- Download configuration files for both Android and iOS
- Update backend with Firebase Admin SDK credentials
Update the base URL in Flutter app's service files:
static const String baseUrl = 'http://YOUR_IP:8000/api';The chatbot uses Google's Gemini AI to provide intelligent responses. Users can ask questions about:
- Salon services and pricing
- Booking availability
- Style recommendations
- General salon information
Admins get additional chatbot features for:
- Business analytics queries
- Staff performance insights
- Revenue analysis
Upload a photo and our ML model analyzes:
- Face shape detection
- Skin tone analysis
- Personalized hairstyle suggestions
- Style compatibility scores
Firebase Cloud Messaging provides instant updates for:
- Booking confirmations
- Appointment reminders
- Status changes
- Special offers
The app uses modern UI/UX principles including:
- Glassmorphism effects
- Smooth animations and transitions
- Dark mode support
- Responsive layouts
- Custom themed components
cd backend
python manage.py testcd salon_booking
flutter testflutter build apk --releaseflutter build appbundle --releaseMajorly not focused on the IOS
flutter build ios --release- JWT-based authentication
- Firebase Auth integration
- Secure API endpoints
- Input validation and sanitization
- HTTPS ready
Contributions are welcomed! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Mithil Dabhi and Mann Dangrechiyaπ
Built with passion by Mithil Dabhi and Mann Dangrechiya
For questions or support, please reach out through:
- Email: mithildabhi@gmail.com
- Email: manndangrechiya@gmail.com
- GitHub Issues: Project Issues
- Flutter team for the amazing framework
- Django REST Framework community
- Firebase for backend services
- Google Gemini AI team
- All open-source contributors whos libraries made this possible
Note: This project was built as a comprehensive solution for salon managment and customer booking. Feel free to customize it for your specific needs!
- Payment gateway integration is in beta
- iOS push notifications may require additional setup
- ML model accuracy improves with more training data
- Multi-language support
- Advanced analytics dashboard
- Loyalty program integration
- Social media sharing
- Video consultations
- Advanced calendar managment
- Integration with popular payment gateways
- Web admin panel
The app is optimized for:
- Fast loading times
- Smooth animations (60 FPS)
- Efficient state managment
- Minimal battery consumption
- Low memory footprint
Some key API endpoints include:
POST /api/auth/register/- User registrationPOST /api/auth/login/- User loginPOST /api/auth/logout/- User logout
GET /api/bookings/- List bookingsPOST /api/bookings/create/- Create bookingPUT /api/bookings/{id}/- Update booking
GET /api/salons/- List salonsGET /api/salons/{id}/- Salon details
POST /api/chatbot/user/- User chatbotPOST /api/chatbot/admin/- Admin chatbot
POST /api/hairstyle/analyze/- Analyze photo for hairstyle
For complete API documentation, visit /api/docs/ when server is running.
Made with β€οΈ using Flutter and Django