Thank you for helping make CodeAtlas Platform more secure, reliable, and useful. Contributions to code, tests, documentation, issue triage, and examples are all welcome.
By participating, you agree to follow our Code of Conduct.
- Search existing issues and pull requests before opening a duplicate.
- Use GitHub Discussions for usage questions and early-stage ideas.
- Open an issue before starting a large or breaking change.
- Never report a suspected vulnerability in a public issue; follow SECURITY.md.
Issues labeled good first issue are intentionally small and suitable for a first contribution. Issues labeled help wanted have an agreed direction and are ready for community implementation.
- Node.js 20 or newer
- pnpm 9+ (enable via Corepack:
corepack enable && corepack prepare pnpm@9 --activate) - SQLite + sqlite-vec (included; no external database server required)
- Firebase service account JSON (for multi-tenant auth)
git clone https://github.com/giauphan/codeatlas-platform.git
cd codeatlas-platform
cp .env.example .env # then edit with your credentials
pnpm install
pnpm run buildRead DEVELOPMENT.md for SQLite setup, individual commands, and troubleshooting.
cd dashboard
pnpm install
pnpm run dev # Vite dev server at http://localhost:5173
pnpm run build # production build
pnpm test # Vitest unit testsCreate a branch from the latest main:
git switch main
git pull --ff-only
git switch -c feat/short-descriptionKeep commits focused. Recommended commit prefixes (Conventional Commits):
feat: add a backward-compatible capability
fix: correct broken behavior
docs: improve documentation
test: add or improve coverage
refactor: restructure without changing behavior
chore: maintain tooling or dependencies
perf: improve performance
security: security fix
Before opening a pull request, run:
pnpm run build
pnpm test
cd dashboard && pnpm test && cd ..New behavior must include tests. Changes to configuration, endpoints, or deployment behavior must also update the relevant documentation.
A reviewable pull request should:
- solve one clearly described problem;
- link its issue with
Fixes #123when applicable; - explain user-visible and security impact;
- include tests or explain why tests are not needed;
- preserve backward compatibility, or explicitly document the break;
- contain no credentials, personal data, generated databases, or build output.
Maintainers may ask for a smaller scope when a pull request mixes unrelated changes. This keeps reviews fast and makes releases safer.
- TypeScript strict mode (enforced via
tsconfig.json) - No
anytypes — useunknownand type guards - Meaningful variable names
- Comments only for non-obvious logic (why, not what)
- ESM modules (
"type": "module")
src/
config/ — Environment validation
database/ — SQLite + sqlite-vec connection + schema
middleware/ — Express middleware (auth, rate limiting)
presentation/ — HTTP server, MCP tools, REST routes, A2A
services/ — Business logic (project, embedding, auth, memory)
utils/ — Logger, context, helpers
types/ — Shared TypeScript types
tests/
unit/ — Unit tests (node:test)
e2e/ — End-to-end tests
dashboard/ — React + Vite management dashboard
docs/ — Public documentation
scripts/ — Utility scripts (db-init, migrations)
sql/ — SQL schemas (A2A registry)
Use the GitHub bug report template and include:
- the smallest reproducible example;
- expected and actual behavior;
- operating system and Node.js version;
- project version or commit SHA;
- database and deployment environment;
- redacted logs or stack traces.
Open a discussion or issue.
Thank you for contributing.