- SOA: Each service lives in its own folder under
orama_backend/ - Node.js (Express.js) or Python (FastAPI) per service
- Linting: ESLint (for JS/TS services)
- Testing:
- Jest for Express.js services
- pytest for FastAPI services
- API Docs: Swagger
- Clone the repo
git clone https://github.com/Orama4/orama_backend.git cd orama_backend - Install dependencies
- For a JS service (e.g.
stats_service):cd stats_service npm install - For a Python service (e.g.
ai_service):cd ai_service uv pip install -r requirements.txt
- For a JS service (e.g.
- Run lint & tests locally (see below)
- Always start from the latest
maingit checkout main git pull origin main
- Create your feature branch
Example:
git checkout -b <yourname>/feature/<short-description>
git checkout -b chamil/feature/add-login-service
- Do NOT push directly to
main.
- ESLint is configured per service under
.eslintrc.js. - Don’t override existing ESLint rules—only extend if absolutely necessary.
- Run lint before committing:
# JS service npm run lint - Fix all lint errors/warnings before opening a PR.
- Express.js (Jest)
npm test - FastAPI (pytest)
pytest
- Ensure 100% coverage for new code paths and that all existing tests pass.
- Every service exposes a Swagger UI at
/docs(FastAPI) or via your chosen Express middleware. - Update your Swagger spec whenever you add or change endpoints.
- Commit your updated
*.yamlor inline-doc comments alongside code changes.
- Push your feature branch to origin:
git push origin <yourname>/feature/<short-description>
- On GitHub, open a new Pull Request targeting
main. - In your PR description, include:
- What you’ve changed (summary)
- Why it’s needed (context)
- How to test (commands/endpoints)
- Checklist (ensure you’ve done all before requesting review):
- Branch was created from the latest
main - Code compiles/lints with no errors
- All tests pass locally
- Swagger docs updated
- No sensitive data or secrets all secrets in
.envfile
- Branch was created from the latest
- Quality Reviewer will review cross‑service changes.
- They may request changes or approve & merge.
- Once approved, the reviewer will merge into
main. - You do not merge your own PRs into
main.
- Always branch off the latest
mainto incorporate security patches. - Vulnerabilities or security issues should be reported privately to the team lead.
- Do not expose secrets, credentials, or PII in code or docs.
Thank you for helping make this project better! 🎉
Happy coding!