stock-bot/apps/wcag-ada/README.md
2025-06-28 11:11:34 -04:00

175 lines
No EOL
4 KiB
Markdown

# WCAG-ADA Compliance Monitoring Platform
An automated web accessibility compliance monitoring system that continuously scans websites for WCAG and ADA compliance issues, provides detailed reports, and offers remediation suggestions.
## Architecture
The platform consists of four main services:
### 1. **Scanner Service** (`/scanner`)
- Performs accessibility scans using axe-core and Playwright
- Supports WCAG 2.0, 2.1, and 2.2 compliance levels (A, AA, AAA)
- Generates detailed violation reports with fix suggestions
- Captures screenshots of accessibility issues
### 2. **API Service** (`/api`)
- RESTful API built with Hono framework
- JWT-based authentication
- Redis-backed rate limiting
- PostgreSQL database with Prisma ORM
- BullMQ integration for job queuing
### 3. **Worker Service** (`/worker`)
- Processes scan jobs from the queue
- Runs scheduled scans based on website configurations
- Handles scan result processing and storage
- Provides health monitoring endpoints
### 4. **Dashboard** (`/dashboard`)
- React 18 SPA with Vite
- Real-time scan monitoring
- Compliance reporting and analytics
- Website and scan management
- Built with TailwindCSS and Radix UI
## Configuration
The application uses a sophisticated configuration system that loads settings from multiple sources:
1. Default values (defined in schemas)
2. Configuration files (`.env`, `config.json`)
3. Environment variables
4. Command-line arguments
### Key Configuration Files
- `/config/src/schemas/` - Zod schemas defining all configuration options
- `/config/src/config-instance.ts` - Main configuration loader
- `.env` - Environment-specific settings
## Getting Started
### Prerequisites
- Node.js 18+
- PostgreSQL
- Redis
- Bun (recommended) or npm/yarn
### Installation
1. Install dependencies:
```bash
bun install
```
2. Set up the database:
```bash
cd apps/wcag-ada/api
bunx prisma migrate dev
```
3. Configure environment variables:
```bash
cp .env.example .env
# Edit .env with your settings
```
### Running Services
Start all services concurrently:
```bash
bun run dev
```
Or run individual services:
```bash
# API
cd apps/wcag-ada/api
bun run dev
# Worker
cd apps/wcag-ada/worker
bun run dev
# Dashboard
cd apps/wcag-ada/dashboard
bun run dev
# Scanner (for testing)
cd apps/wcag-ada/scanner
bun run example
```
## API Endpoints
### Authentication
- `POST /api/auth/register` - Register new user
- `POST /api/auth/login` - User login
- `GET /api/auth/me` - Get current user
### Websites
- `GET /api/websites` - List user's websites
- `POST /api/websites` - Add new website
- `PUT /api/websites/:id` - Update website
- `DELETE /api/websites/:id` - Delete website
### Scans
- `POST /api/scans` - Start new scan
- `GET /api/scans/:id` - Get scan status
- `GET /api/scans/:id/result` - Get scan results
- `GET /api/scans/:id/violations` - Get violations
- `DELETE /api/scans/:id` - Cancel scan
### Reports
- `GET /api/reports/compliance/:websiteId` - Get compliance report
- `GET /api/reports/trends/:websiteId` - Get trend analysis
### Health
- `GET /health` - Service health check
- `GET /health/stats` - Detailed statistics
## Development
### Project Structure
```
apps/wcag-ada/
├── api/ # REST API service
├── config/ # Configuration management
├── dashboard/ # React web interface
├── scanner/ # Accessibility scanning engine
├── shared/ # Shared types and utilities
└── worker/ # Background job processor
```
### Testing
Run tests for all services:
```bash
bun test
```
### Building for Production
```bash
bun run build
```
## Deployment
The application is designed to be deployed as separate microservices. Each service can be containerized and deployed independently.
### Docker Support
Build Docker images:
```bash
docker build -t wcag-ada-api -f apps/wcag-ada/api/Dockerfile .
docker build -t wcag-ada-worker -f apps/wcag-ada/worker/Dockerfile .
docker build -t wcag-ada-dashboard -f apps/wcag-ada/dashboard/Dockerfile .
```
## License
Proprietary - All rights reserved