Skip to content

wilsonpaulraj/ShiftSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShiftSync - Staff Scheduling Application

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.

Features

  • 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.

Technologies Used

  • 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.

Setup and Installation

Follow these steps to get ShiftSync up and running on your local machine.

Prerequisites

  • Node.js (version >= 16) and npm (or yarn) installed for the React frontend.
  • Python (version >= 3.8) and pip installed for the Django backend.

Backend Setup (Django)

  1. Navigate to the backend directory:

    cd backend
  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On macOS/Linux
    venv\Scripts\activate  # On Windows
  3. Install the required dependencies:

    pip install -r requirements.txt
  4. Make migrations:

    python manage.py makemigrations
    python manage.py migrate
  5. Create a superuser (for administrative access):

    python manage.py createsuperuser
  6. Run the development server:

    python manage.py runserver

    The backend API will be accessible at http://localhost:8000.

Frontend Setup (React)

  1. Navigate to the frontend directory:

    cd frontend
  2. Install the required dependencies:

    npm install
    # or
    yarn install
  3. Configure API endpoint:

    • Create a .env.local file (if it doesn't exist) and set the backend API URL:
      REACT_APP_API_BASE_URL=http://localhost:8000/api
  4. Start the development server:

    npm start
    # or
    yarn start

    The frontend application will be accessible at http://localhost:3000.

Contributing

Contributions to ShiftSync are welcome! If you have ideas for new features, bug fixes, or improvements, please feel free to:

  1. Fork the repository.
  2. Create a new branch for your feature or fix.
  3. Make your changes and commit them.
  4. Push your changes to your fork.
  5. Submit a pull request.

Please follow the existing code style and conventions.

License

This project is licensed under the MIT LISENCE

Contact

Wilsonpaulraj

GitHub Email

Wilsonpaulraj

Feel free to connect with me on GitHub or send me an email.

About

Streamline staff scheduling with ShiftSync, a React.js and Django app for easy shift creation, availability management, and more.

Topics

Resources

Stars

Watchers

Forks

Contributors