ShiftSync is a modern and intuitive staff scheduling application built using the powerful combination of React.js for the frontend and Django for the backend. It's designed to streamline the process of creating, managing, and communicating staff schedules, making workforce management more efficient and less prone to errors.
- Intuitive Drag-and-Drop Scheduling: Easily create and modify shifts using a visual drag-and-drop interface.
- Role-Based Scheduling: Assign staff members to specific roles and ensure appropriate coverage for each position.
- Availability Management: Allow staff to submit their availability, making scheduling conflicts less likely.
- Time-Off Requests: Enable staff to request time off, which can be easily reviewed and approved by managers.
- Shift Swapping: Facilitate seamless shift swapping between employees with manager approval.
- Automated Conflict Detection: The application automatically identifies scheduling conflicts (e.g., double bookings, overlapping shifts) and alerts administrators.
- Customizable Shift Templates: Create and save shift templates for recurring schedules.
- Reporting and Analytics: Generate reports on staff hours, attendance, and potential overtime.
- User Roles and Permissions: Implement different user roles (e.g., Administrator, Manager, Employee) with varying levels of access and functionality.
- Notifications: Send automated notifications to staff regarding new schedules, shift changes, and time-off approvals.
- Clear and Accessible Calendar View: Provide staff with a clear overview of their upcoming shifts.
- Frontend:
- React.js: A JavaScript library for building user interfaces.
- Redux (or Context API): For state management.
- React Router: For navigation within the application.
- Styled-components (or CSS Modules): For component-level styling.
- Axios (or Fetch API): For making HTTP requests to the backend.
- A modern UI library (e.g., Material UI, Ant Design): For pre-built UI components.
- Backend:
- Django: A high-level Python web framework.
- Django REST Framework: For building the API endpoints.
- PostgreSQL, MySQL, or SQLite: For database management.
- Celery (optional): For asynchronous tasks (e.g., sending notifications).
- JWT (JSON Web Tokens): For user authentication and authorization.
Follow these steps to get ShiftSync up and running on your local machine.
- Node.js (version >= 16) and npm (or yarn) installed for the React frontend.
- Python (version >= 3.8) and pip installed for the Django backend.
-
Navigate to the backend directory:
cd backend -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On macOS/Linux venv\Scripts\activate # On Windows
-
Install the required dependencies:
pip install -r requirements.txt
-
Make migrations:
python manage.py makemigrations python manage.py migrate
-
Create a superuser (for administrative access):
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
The backend API will be accessible at
http://localhost:8000.
-
Navigate to the frontend directory:
cd frontend -
Install the required dependencies:
npm install # or yarn install -
Configure API endpoint:
- Create a
.env.localfile (if it doesn't exist) and set the backend API URL:REACT_APP_API_BASE_URL=http://localhost:8000/api
- Create a
-
Start the development server:
npm start # or yarn startThe frontend application will be accessible at
http://localhost:3000.
Contributions to ShiftSync are welcome! If you have ideas for new features, bug fixes, or improvements, please feel free to:
- Fork the repository.
- Create a new branch for your feature or fix.
- Make your changes and commit them.
- Push your changes to your fork.
- Submit a pull request.
Please follow the existing code style and conventions.
This project is licensed under the MIT LISENCE
Wilsonpaulraj
Feel free to connect with me on GitHub or send me an email.