Contributing to BPMN Architect
Contributing to BPMN Architect
We actively seek and encourage internal contributions to optimize and streamline process automation and documentation management!
Philosophy
The structural goal behind the underlying BPMN Architect codebase is to remain explicitly understandable by junior developers, avoiding complex WebSockets and obscure frameworks.
- The
FastAPIsystem handles data structures and UI templating through pureJinja2. - We utilize
Vanilla JSalongsideBootstrap 5to build standard and functional browser mechanics mapping tightly back to single endpoint triggers. - Complexity and real-time collision detection are accomplished securely via polling and file-storage atomicity mechanics rather than real-time sockets.
Setting Up Your Development Environment
Check out the explicit localized development variables within Deployment & Scaling to initialize your codebase and dependencies.
Contribution Guidelines
- Keep it Vanilla where possible: Resist the urge to add frameworks like React or Vue. The frontend focuses heavily on
bpmn-jsmapping; we do not run a Node.js compilation pipeline. - Prioritize Modularity: If building a specialized helper module, ensure it routes properly alongside
components/models.pyorcomponents/auth.py. We explicitly forbid convolutingmain.pyrouting. - Admin Actions and Scopes: Always structure critical components or deletion mechanisms alongside the explicit
current_user in ADMINSconditional loops or@app.post("/api/.../{action}")parameterizations preventing non-administrators from corrupting process layouts.
Opening Pull Requests
- Format your Git commit message aligned to standard features (
feat:,fix:,refactor:). - Highlight specific UI/UX updates with screenshot visual logs.
- Outline testing paths explicitly verifying locks, atomic file saves, or
.bpmnpayload updates.
(Any security-oriented exploits related to IIS bypass should be flagged to the DevOps lead before explicitly opening Public PRs).