Thank you for your interest in contributing to OpenJustice. Every contribution, whether it is a bug report, documentation improvement, or new feature, helps strengthen this project. We appreciate your time and effort.
Ensure you have the following installed:
- Node.js 18+
- PostgreSQL 15+
- Redis
- Fork the repository at github.com/openjustice/openjustice.
- Clone your fork locally:
git clone https://github.com/<your-username>/openjustice.git
cd openjusticecd server
npm install
cp .env.example .env
npx prisma generate
npx prisma db push
npm run start:devUpdate the .env file with your local PostgreSQL and Redis connection details before starting the server.
cd client
npm install
cp .env.example .env.local
npm run devUpdate .env.local to point to your running backend instance.
-
Create a feature branch from
mainusing one of the following prefixes:feat/-- new featuresfix/-- bug fixesdocs/-- documentation changes
git checkout -b feat/your-feature-name
-
Make your changes, following existing code patterns and project conventions.
-
Before committing, verify your changes pass all checks:
npm run lint npm test npm run build -
Push your branch and submit a pull request against
main.
This project follows Conventional Commits. Every commit message must use one of the following types:
- feat -- a new feature
- fix -- a bug fix
- docs -- documentation changes
- refactor -- code changes that neither fix a bug nor add a feature
- test -- adding or updating tests
- chore -- maintenance tasks (dependencies, CI, tooling)
Format:
<type>(<optional scope>): <description>
Examples:
feat(auth): add role-based access control
fix(api): correct pagination offset calculation
docs: update setup instructions in README
- Keep PRs focused on a single concern. Aim for under 500 lines of changes.
- Fill out the pull request template completely.
- Ensure all CI checks pass before requesting review.
- Link any related issues in the PR description.
- Be responsive to review feedback.
All contributors are expected to follow our Code of Conduct. Please read it before participating.
If you have questions or need help:
- Open a GitHub Discussion for general questions and ideas.
- Open a GitHub Issue for bug reports and specific feature requests.