Closes #347, #348, #349, #357
This PR improves the onboarding experience for new contributors and tightens the CI pipeline. A new contributor can now clone the repo, run docker compose up, and have a fully working local environment without any manual configuration guesswork.
Added a full contributing guide covering:
- Prerequisites (Node 20, PostgreSQL 16, Docker)
- Step-by-step local setup from clone to running servers
- All test commands (unit, integration, contract, property, load)
- How to run against Stellar testnet
- PR review process and checklist
Rewrote the env file with inline documentation for every variable:
- Each entry is marked
[REQUIRED]or[OPTIONAL] - Valid values and defaults are documented inline
- Added detailed examples for
PLATFORM_FEE_ACCOUNT_SECRET,FEE_BUMP_THRESHOLD_XLM, andCOINGECKO_API_KEY - Grouped variables by concern (Stellar, security, database, cache, etc.)
Added npm audit --audit-level=high to .github/workflows/test.yml immediately after npm install. The build fails if any high or critical vulnerability is found in the dependency tree.
Added a standard docker-compose.yml that spins up three services:
db— PostgreSQL 16 with a persistent named volumebackend— Node 20 withnode --watchhot-reload; runsprisma migrate deployon startupfrontend— Vite dev server with HMR, proxying/apito the backend
Also added minimal Dockerfile.dev for both backend and frontend.
- Verified
test.ymlaudit step is correctly positioned and uses the right flag CONTRIBUTING.mdsetup steps validated against the actual project scripts and.env.examplevalues- Docker Compose service dependencies and healthchecks confirmed against the test compose file patterns already in the repo
- The
STREAM_SECRET_ENCRYPTION_KEYindocker-compose.ymlis set to a zeroed placeholder — intentional for local dev only, clearly commented JWT_SECRETin compose is also a dev-only placeholder with a comment to change it before any real use