Skip to content

TimVanOnckelen/eendraadschema

Repository files navigation

Eendraadschema

Design and draw one-wire electrical diagrams for Belgian AREI legislation — entirely in the browser

Build React TypeScript Vite License Version

Eendraadschema Screenshot

Live Demo

Try the application online: https://eendraadschema.xeweb.be

Table of Contents

About

Eendraadschema is a browser-based tool for designing one-wire electrical diagrams as required by the Belgian AREI legislation. No installation, no server — open the app and start drawing.

Features

User Interface

  • Modern React 19 component architecture
  • Ribbon-based interface with compact button layouts
  • Dark mode support
  • Responsive design with flexbox layouts

Schema Editor

  • Full React implementation of the electrical schema editor
  • All original electrical schema functionality preserved
  • Improved rendering performance
  • Interactive SVG diagrams

Situation Plan (Situatieschema)

  • Searchable SVG symbol library
  • Filter symbols by category
  • Drag-and-drop placement of electrical symbols
  • Element selection and positioning tools
  • Multi-page management
  • Zoom controls (25%, 50%, 75%, 100%, 150%, 200%)

File Management

  • Auto-save every 5 seconds
  • IndexedDB-based local storage
  • Recovery dialog for unsaved changes
  • Visual save status indicator
  • Import/export .eds and .json files
  • PDF export functionality

Documentation

  • Integrated documentation viewer
  • PDF manuals included

Getting Started

Prerequisites

  • Node.js 18 or higher
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/TimVanOnckelen/eendraadschema.git
cd eendraadschema

# Install dependencies
npm install

# Start development server
npm run dev

The application opens at http://localhost:5173.

Building for Production

npm run build

Output is placed in the dist/ folder.

Technical Stack

Tool Purpose
React 19 UI framework
TypeScript 5.8 Type-safe development
Vite 6 Build tool and dev server
IndexedDB Client-side storage
jsPDF 4 PDF generation
pako Compression

Versioning

This project uses Semantic Versioning (MAJOR.MINOR.PATCH) driven automatically by semantic-release. Releases are created when commits land on master — no manual version bumps needed.

The version bump is determined by commit message prefixes:

Prefix Example Result
fix: fix: correct voltage label on diagram Patch (1.0.1)
feat: feat: add zoom to fit button Minor (1.1.0)
feat!: or BREAKING CHANGE: feat!: redesign file format Major (2.0.0)

Prefixes like docs:, chore:, refactor:, style:, and test: do not trigger a release.

Contributing

Contributions are welcome! Please follow these steps:

  1. Open an issue first for any non-trivial change to align on the approach
  2. Fork the repository and create a branch from master
  3. Name your branch descriptively: feat/zoom-to-fit, fix/pdf-export-crash, etc.
  4. Write commits using the Conventional Commits format — this is required for the automated release pipeline to work correctly (see Versioning)
  5. Open a Pull Request against master with a clear description of what changed and why

Guidelines:

  • Keep pull requests focused — one feature or fix per PR
  • Follow the existing TypeScript conventions and component structure
  • Test your changes in the browser before opening a PR; CI only verifies the build passes

For contributions to the original vanilla TypeScript version, see igoethal/eendraadschema.

License

Licensed under the GNU General Public License v3.0 — see LICENSE.md for details.

Copyright:

  • Original eendraadschema: © Ivan Goethals
  • This version: © Tim Van Onckelen

Acknowledgments

This project would not exist without Ivan Goethals, who designed and built the original eendraadschema application. The electrical schema logic, symbol library, and AREI compliance rules all originate from his work.

The original application is available at igoethal/eendraadschema.

Support

About

Eendraadschema Community edition

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
license.html

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages