A web-based permit-to-work management system for issuing, filling in, and printing work permits.
- Select a permit type from the home screen (Hot Work, Confined Space, Electrical Isolation, Working at Height, Excavation)
- Fill in the permit — the authorising person answers questions specific to the selected permit type
- Preview & print — generates a professional, print-ready permit layout
- Print blank permits — print an empty permit form for manual completion
- Customisable templates — add, edit, or remove permit types and their questions/fields via the built-in template editor
- No database required — templates are stored as simple JSON files that are easy to back up and version-control
- Node.js v18 or later
cd permit-system
npm install
npm startOpen your browser to http://localhost:3000
npm run devpermit-system/
├── server.js # Express web server & API
├── package.json
├── templates/ # Permit template JSON files (customisable)
│ ├── hot-work.json
│ ├── confined-space.json
│ ├── electrical-isolation.json
│ ├── working-at-height.json
│ └── excavation.json
├── public/ # Frontend (served as static files)
│ ├── index.html # Single-page app shell
│ ├── css/
│ │ └── style.css # Styles including print layout
│ └── js/
│ ├── api.js # API client
│ ├── app.js # Navigation & home page
│ ├── permit-form.js # Dynamic form renderer
│ ├── preview.js # Print preview renderer
│ └── template-editor.js # Admin template editor
└── README.md