Achievo is a monorepo for smart contracts, a NestJS API, and Next.js apps that coordinate on-chain org registries, verifiable proofs, and user-facing credential workflows.
flowchart LR
Web[web dApp] -->|HTTP| API[backend API]
Admin[admin console] -->|HTTP| API
API -->|SQL| DB[(Postgres)]
API -->|RPC| Chain[(EVM networks)]
API --> Indexer[Indexing workers]
web/– public dApp (Next.js)apps/admin/– admin console (Next.js)backend/– API + workers (NestJS)contracts/– Solidity contracts + scripts (Hardhat)packages/– shared packages
Install deps:
npm ciBackend:
npm --prefix backend run devWeb:
npm --prefix web run devAdmin:
npm --prefix apps/admin run devIntegration tests (dockerized Postgres):
npm --prefix backend run test:integration:dbRepo (CI order: lint -> typecheck -> test -> build):
npm run lint
npm run typecheck
npm run test
npm run buildPer-app:
npm --prefix web run lint
npm --prefix web run typecheck
npm --prefix web run build
npm --prefix apps/admin run lint
npm --prefix apps/admin run typecheck
npm --prefix apps/admin run build- dApp auth: wallet signature establishes a session; access/refresh cookies are httpOnly; CSRF protected.
- Admin auth: email/password session with server-side HMAC gateway; secrets never leave the server.
- Admin actions are gated via CSRF and audited; no admin secrets are exposed to the browser.
See docs/README.md for the documentation index.