Thanks for the interest. PRs welcome.
See README. Short version:
git clone https://github.com/chemicoholic21/ward_watch.git
cd ward_watch
cp .env.example .env.local
npm install
docker-compose up -d mongo
npm run seed
npm run dev- Open an issue first for anything non-trivial — saves wasted work.
- Branch off
main. - Keep commits small and well-described. One logical change per commit.
- Before pushing:
npm run buildmust pass.npm run lintshould be clean. - Open a PR with a brief summary of what and why.
app/ Next.js App Router
api/ HTTP handlers (one route.ts per path)
page.tsx, layout Dashboard UI
lib/
api.ts Frontend → API client
server/ Server-only modules
services/ Data services (mongodb, agents, ghost-office, trustlens)
config/ Env + Mongo connection
scripts/seed-mongodb.mjs Sample data seeder
docs/ Setup, deployment, agents guides
- TypeScript, strict mode. No
anyunless you have a good reason. - Tailwind classes, no inline styles. Palette tokens (
bg-bg,text-fg-muted,border-line, …) live inapp/globals.css— change colors there, not in components. - LLM agent tools go in
lib/server/services/agents/tools.tsand follow the existingtool({ description, inputSchema, execute })shape. Seedocs/AGENTS_GUIDE.md. - New API routes:
app/api/<path>/route.ts, exportGET/POST/PATCH. UseNextResponse.json({ success, data, error })for response shape consistency.
- Bug fixes
- New agent tools and prompts
- Better data ingestion (real BBMP / OSM / Reddit feeds)
- Accessibility, performance, mobile UX
- Tests (currently none — opinionated test setup PRs welcome)
- Renaming
ghost_offices,civic_events, or other collections without a migration plan - Adding paid third-party services without a feature flag
- Architecture overhauls without a prior issue
By contributing, you agree your work is licensed under the MIT License.