Developed with the software and tools below.
This Salon Management System is a comprehensive solution designed to streamline and manage salon operations. Built with Django and GraphQL, the system offers dynamic database support for multiple salon branches, allowing each branch to maintain separate records while still being managed centrally. The platform provides tools for managing appointments, staff, services, and customer relationships, ensuring an efficient workflow and a smooth customer experience.
The system is designed with scalability and flexibility in mind, allowing for easy expansion as the business grows. It integrates seamlessly with other tools, offers secure authentication, and provides detailed reporting and analytics to help salon owners make data-driven decisions.
-
Multi-Salon Support: Dynamically manage multiple salon branches, each with its own database for independent data management.
-
Appointment Scheduling: Easily manage customer appointments, including booking, rescheduling, and cancellations, with support for multiple services and staff members.
-
Staff Management: Keep track of staff members' schedules, roles, and availability. Assign tasks and manage shifts efficiently.
-
Service Management: Manage and customize the list of services offered, including pricing, duration, and staff specialization.
-
Customer Relationship Management (CRM): Maintain detailed records of customers, including contact information, appointment history, and service preferences.
-
Payment and Billing: Track payments, generate invoices, and manage billing for services provided at the salon.
-
Inventory Management: Keep track of salon products and supplies, including automatic reminders for restocking.
-
Reporting and Analytics: Generate reports on appointments, staff performance, revenue, and customer data to gain insights into salon operations.
-
User Authentication and Roles: Secure login and role-based access control to manage permissions for staff and administrators.
-
Mobile-Friendly Interface: A responsive and intuitive user interface that works well on both desktop and mobile devices.
-
Notifications and Reminders: Automatic email and SMS notifications for appointment confirmations, reminders, and cancellations.
-
Customizable Settings: Flexible settings that allow each salon branch to customize operational parameters, including business hours, service offerings, and pricing.
-
Secure and Scalable: Designed with security best practices and scalability in mind to support future growth and expansion of the salon business.
└── salon-management/
├── README.md
├── accounts
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── management
│ │ ├── __init__.py
│ │ └── commands
│ │ ├── __init__.py
│ │ └── init_salon.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
├── requirements.txt
├── salon
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
└── salon_management
├── __init__.py
├── asgi.py
├── db_routers.py
├── settings.py
├── urls.py
└── wsgi.py
Requirements
Ensure you have the following dependencies installed on your system:
- Python:
version 3.12
To configure the database and other project settings, you need to set up a .env
file in the root of your project. Below is an example of the required environment variables:
# General Settings
DEBUG=True
SECRET_KEY=your_secret_key_here
# Database Configuration for PostgreSQL
DB_ENGINE=django.db.backends.postgresql
DB_NAME=your_database_name_here
DB_USER=your_database_user_here
DB_PASSWORD=your_database_password_here
DB_HOST=your_database_host_here
DB_PORT=5432 # Default PostgreSQL port
- Clone the salon-management repository:
git clone https://github.com/ishwar6/django-multitenancy.git
- Change to the project directory:
cd salon-management
- Create virtual environment:
python -m venv venv
- Activate virtual environment:
for wundows
venv\Scripts\activate
for linux
Source venv/bin/activate
- Install the dependencies:
pip install -r requirements.txt
Use the following command to run salon-management:
python manage.py runserver
first use this command
python manage.py makemigrations
then apply all the migrations
python manage.py migrate
uncomment this code from accounts/apps.py
def ready(self):
self.load_organization_databases()
Contributions are welcome! Here are several ways you can contribute:
- Submit Pull Requests: Review open PRs, and submit your own PRs.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
- Report Issues: Submit bugs found or log feature requests for Salon-management.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine using a Git client.
git clone https://github.com/ishwar6/django-multitenancy.git
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.
We would like to express our gratitude to the following resources and individuals for their support and contributions throughout the development of this Django project with GraphQL:
-
Django: The Django Web Framework served as the foundation for our project, and its robust features and excellent documentation were invaluable. Django
-
Django Packages: Various Django packages, including
django-filter
,django-cors-headers
, and others, helped make this project possible. -
Community Support: The contributions and guidance from the Django and GraphQL communities, especially the help provided on platforms like Stack Overflow and GitHub Discussions, were invaluable in overcoming challenges during development.
-
Open-Source Contributors: We extend our thanks to the open-source contributors whose work made this project possible. Your code, libraries, and contributions to the ecosystem are deeply appreciated.
Thank you to everyone who helped make this project a reality. Your support and dedication are appreciated!