Skip to content

jango-blockchained/schichtplan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Schichtplan

A full-stack employee scheduling system for creating, managing, and optimizing shift plans.

Table of Contents

Project Overview

Schichtplan is a modern, full-stack employee scheduling system. It enables organizations to create, manage, and optimize shift plans with advanced features like automated assignment, employee group management, and customizable PDF exports.

Architecture

  • Frontend: TypeScript, React, Vite, Shadcn UI
  • Backend: Python, Flask, SQLAlchemy, Alembic
  • Database: SQLite

The frontend communicates with the backend via RESTful APIs. The backend handles business logic, scheduling algorithms, and database operations.

Directory Structure

  • /src/frontend/ - React frontend application
  • /src/backend/ - Flask backend application
  • /src/instance/ - Application instance (database, migrations)
  • /docs/ - Project documentation
  • /logs/ - Application and scheduler logs

Key Features

  • Shift plan creation and management with versioning
  • Define shifts and coverage needs
  • Employee group management (VZ, TZ, GFB, TL)
  • Automated shift assignment based on rules and preferences
  • PDF export with customizable layouts
  • Diagnostic tools for schedule generation
  • Comprehensive test suite

Setup & Development

Prerequisites

  • Node.js and npm
  • Python 3.12+
  • Virtualenv

Setup

  1. Clone the repository

  2. Set up Python environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    pip install -r requirements.txt
  3. Install frontend dependencies:

    npm install

Running the Application

  1. Start the backend:

    python src/backend/run.py
  2. Start the frontend:

    npm run dev

Database & Migrations

Testing

  • Backend: Use pytest or run provided test scripts.

  • Frontend: Run tests with:

    npm test

Logging & Diagnostics

  • Scheduler and application logs are stored in /logs/.
  • For details, see docs/README_LOGGING.md.
  • Diagnostic tools for schedule generation are in src/backend/tools/debug/.

Contributing

  1. Fork the repository and create a feature branch.
  2. Follow code style guidelines (Black/Ruff for Python, ESLint/Prettier for JS/TS).
  3. Write or update tests for your changes.
  4. Submit a pull request with a clear description.

Additional Documentation

For further questions, see the /docs directory or open an issue.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •