Engineering onboarding
Welcome to the SmartSRED / SREDSimplify monorepo. This page is the first-week checklist for engineers: what to install, how to run the stack, where code lives, and how we ship.
Before you write code
- GitHub access — Clone the repository and confirm you can open pull requests.
- Secrets for local runs — Many flows expect Doppler (or equivalent) for env injection; see Tools quickstart and scripts referenced in Tooling reference.
- Read the release model — Application production deploys from semantic version tags (
vX.Y.Z), not from every merge tomain. The canonical summary is in repository AGENTS.md at the root.
Repository map
| Path | Stack | Role |
|---|---|---|
frontend/ | Next.js (App Router), TypeScript, Tailwind, shadcn/ui | Marketing, auth, workspace UI; talks to backend through the Next.js BFF under /api/bff/ |
backend/ | Spring Boot 3.x, Java 17 | REST API, auth, billing, SR&ED workflows |
backend/python-service/ | FastAPI | Document and AI-heavy workers invoked from Java |
docs/ | VitePress | This documentation site (npm run docs:dev from docs/) |
.github/workflows/ | GitHub Actions + gh-aw Markdown | CI, security scans, release automation |
Deeper module notes live under Architecture hub.
Local prerequisites
- Node.js 20 (match CI; see
docs-ci.ymland frontend tooling). - Java 17 and Maven for the Spring Boot service.
- Python 3.11+ with
uvfor the python service (seebackend/python-serviceREADME if present). - Docker (optional but recommended for parity with production images).
- Doppler CLI when using
start.shand production-like envs.
Exact versions and commands drift; prefer the scripts in Tooling reference over copying old shell snippets.
Verified startup (high level)
- From repo root, follow Tools quickstart for the path your team uses (
start.shvs manualnpm/mvn). - Confirm the frontend dev server, backend API, and (if needed) python-service are reachable.
- Log in with documented test credentials only on non-production environments.
Branch, review, and merge
- Default integration branch:
main(should stay releasable). - Pull requests need at least one approval (see Conventions).
- Use Conventional Commits (
feat:,fix:,docs:) so release automation can infer the next tag.
Testing expectations (by layer)
| Layer | Command (from repo docs) | When |
|---|---|---|
| Frontend | cd frontend && npm run lint && npm run typecheck && npm run test:unit | Any frontend/ change |
| Backend | cd backend && mvn test | Any backend/ change |
| Python | cd backend/python-service && uv run pytest | Any python-service/ change |
| Docs | cd docs && npm run docs:build | Any docs/ change |
See AGENTS.md for the full validation matrix.
Documentation ownership
- Every docs page should carry
ownerandlast_reviewedin frontmatter (see existing pages). - Large IA or process changes should update Documentation site map and
.vitepress/config.mjstogether so navigation stays honest.
Where to go next
- Conventions — day-to-day engineering standards
- Documentation site map — full public surface area
- Architecture hub — system design
- Tooling reference — scripts and workflows