Welcome! We're thrilled that you're interested in contributing to Structurify. This document lays out our standard operating procedures, architecture overview, and rules for contributing.
Please read this document completely before opening a Pull Request!
Our CI/CD pipeline enforces strict branch naming. Direct pushes to main, dev, or uat are blocked.
- Feature Branches:
feature/<target-branch>/<feature-name>(e.g.,feature/dev/add-ui-components) - Hotfix Branches:
hotfix/<fix-name>(e.g.,hotfix/cors-patch)
Any branch pushed that does not match this format will automatically fail the PR status checks.
See the README.md for a comprehensive setup guide. Ensure you have Node.js >= 20 and Python >= 3.10 installed.
You will also need to authenticate with Google Cloud via the gcloud CLI to interact with local emulators or deploy to development projects.
All changes must go through a Pull Request. In order to merge into a core branch (dev, uat, main), your PR MUST:
- Pass the Branch Naming Convention check.
- Pass the
Backend Tests(Pytest). - Pass the
Worker Tests(Pytest). - Pass the
Frontend Tests(Jest). - Receive at least 1 Approving Review from a designated repository Code Owner.
If you build a new feature, you are required to write tests for it.
- Backend/Worker: Add Pytest functions in the respective
tests/directories. - Frontend: Add Jest test files (e.g.
UploadZone.test.tsx) alongside your components.
If your PR introduces new features, architectural changes, or modifies infrastructure requirements, you must update the following files accordingly:
CHANGELOG.md(Mandatory for all feature additions, bug fixes, or notable changes)ARCHITECTURE.md(If modifying system flow or components)README.md(If adding new features or setup steps)
- Fork or branch off the target branch (usually
dev). - Write your code and ensure you run all tests locally.
- Commit using conventional commit messages (e.g.,
feat: ...,fix: ...). - Push to origin and open a PR.
- A Code Owner will review your PR and either request changes or approve and merge it.
Thank you for contributing!