CIVWATCH is in active development. Docs describe intended architecture; core implementation is scaffolded. This repo is honest about what works and what's planned.
- π Architecture Docs β Intended design
- π§ͺ Testing Strategy β How we'll validate
- π Security Policy β Responsible disclosure
- π Issues & Roadmap β What's next
| Component | Status | Details |
|---|---|---|
| Backend Status API | β Live | GET /api/status β {status: 'ok'} on :3000 |
| Frontend Bootstrap | β Renders | Static header + React scaffolding at :4000 |
| Analytics Module | β Partial | src/analytics/dataAnalyzer.ts β mean, median, stddev calculations |
| Test Stubs | β Present | tests/analytics/ β ready for real test implementation |
| Docker Compose | Services start; healthchecks need endpoint alignment | |
| ML Service | β Stub | Currently placeholder; DBSCAN + NLP planned |
| Dashboard UI | β Stub | React shell exists; no real components yet |
| DB/Redis Integration | β Not Wired | PostgreSQL + Redis placeholders in compose |
| Real-Time Updates | β Planned | WebSocket layer not built |
flowchart LR
subgraph Ingestion["π₯ Data Ingestion"]
APIs["Public APIs"]
PDF["PDF Extraction"]
Web["Web Scraping"]
end
subgraph Processing["βοΈ Processing Pipeline"]
Clean["Data Cleaning"]
NLP["NLP Analysis"]
ML["DBSCAN Clustering"]
Anomaly["Anomaly Detection"]
end
subgraph Storage["πΎ Storage"]
PG[("PostgreSQL")]
Cache["Redis Cache"]
end
subgraph API["π API Layer"]
GraphQL["GraphQL Endpoint"]
REST["REST API"]
end
subgraph Frontend["π¨ UI"]
React["React Dashboard"]
Maps["Interactive Maps"]
end
APIs --> Clean
PDF --> Clean
Web --> Clean
Clean --> NLP
Clean --> ML
NLP --> Anomaly
ML --> Anomaly
Anomaly --> PG
Anomaly --> Cache
PG --> GraphQL
PG --> REST
GraphQL --> React
REST --> React
Cache --> Maps
- Docker & Docker Compose
- Node.js 18+ (for local dev)
- Python 3.10+ (for ML service)
git clone https://github.com/POWDER-RANGER/CIVWATCH.git
cd CIVWATCH
docker-compose upβ
Backend running on http://localhost:3000
- GET /api/status β {"status": "ok"}
- Other endpoints: planned
β
Frontend on http://localhost:4000
- Static header rendering
- React scaffolding ready for dashboard
β οΈ ML service: placeholder (HTTP server not running yet)
β Database connections: stub environment variables only
# Backend
cd backend && npm install && npm run dev
# Frontend
cd frontend && npm install && npm run dev
# ML Service (when ready)
cd ml && pip install -r requirements.txt && python main.py- Align Docker healthcheck endpoints
- Implement real
/api/healthendpoint - Fix type mismatches in
dataAnalyzer.ts - Write actual test cases (replace stubs)
- Wire PostgreSQL connection
- Wire Redis client
- Implement DBSCAN clustering in ML service
- Add NLP preprocessing pipeline
- Create GraphQL schema and resolvers
- Build real React dashboard components
- Integrate WebSocket for real-time updates
- Security audit and penetration testing
- Performance optimization (caching strategies)
- Comprehensive test coverage (target: 80%+)
- CI/CD pipeline automation
- Packaged releases (Windows exe, macOS dmg, Linux AppImage)
Test structure exists but is scaffolded:
# Run (stub) tests
npm test
# Python tests (when ML service is ready)
pytest tests/ -vSee docs/testing.md for testing strategy.
We're actively building CIVWATCH! See CONTRIBUTING.md for guidelines.
- Finish Phase 1 β Help implement real tests and database wiring
- Fix docs β Break a link? Open an issue
- Code review β PRs always welcome
Found a vulnerability? Please follow our Responsible Disclosure process instead of opening a public issue.
See SECURITY.md for security practices and contact.
MIT License β see LICENSE for details.
- Architecture Docs β System design, data flow, component breakdown
- API Spec β Planned REST + GraphQL endpoints
- Setup Guide β Detailed environment setup
- Changelog β Version history and release notes
Open an issue or check existing discussions.
Built by Curtis Farrar | Independent Systems Engineer & AI Security Architect
GitHub Β· Portfolio