AI-powered DVSA test slot monitoring platform with intelligent automation and ethical compliance
- AI-Powered Monitoring: Smart scanning with adaptive frequency based on historical patterns
- Real-Time Notifications: Multi-channel alerts (WebSocket, SMS, Email, Push) with <2s latency
- Consent-Based Auto-Booking: Secure credential storage with AES-256 encryption
- Intelligent Dashboards: Separate interfaces for Students, Instructors, and Administrators
- Ethical Compliance: Full DVSA terms compliance with rate limiting and blackout hours
- Self-Healing DOM Logic: Automatically adapts to website changes
- Pattern Recognition: AI learns peak hours and success rates
- GDPR Compliance: Complete data protection with user consent management
- Background Processing: Robust job queue system with BullMQ
- Comprehensive API: RESTful endpoints with full documentation
- Data Encryption: AES-256 for sensitive information
- Audit Logging: Complete activity tracking for compliance
- Rate Limiting: Respectful API usage with intelligent throttling
- User Consent: Granular permission system for data processing
- Secure Authentication: JWT-based auth with Firebase integration
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Next.js Frontend │ │ Node.js Backend │ │ PostgreSQL DB │
│ │ │ │ │ │
│ • Student Dashboard │ │ • Express.js API │ │ • User Management │
│ • Instructor Portal │◄──►│ • Socket.IO │◄──►│ • Test Slots │
│ • Admin Interface │ │ • Prisma ORM │ │ • Bookings │
│ • Real-time Updates │ │ • JWT Auth │ │ • Audit Logs │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
│ ┌─────────────────────┐
│ │ Redis Cache │
└───────────────┤ │
│ • Session Storage │
│ • Job Queues │
│ • Pub/Sub Messages │
└─────────────────────┘
Frontend:
- Next.js 15 with App Router
- TypeScript for type safety
- TailwindCSS for styling
- Firebase Authentication
- Socket.IO client for real-time updates
- React Query for data fetching
- Zustand for state management
Backend:
- Node.js with Express.js
- Prisma ORM with PostgreSQL
- Socket.IO for real-time communication
- BullMQ for job processing
- Redis for caching and pub/sub
- Playwright for web automation
- JWT authentication
Infrastructure:
- Docker containerization
- Multiple deployment options (Vercel, Railway, Render)
- GitHub Actions CI/CD
- Nginx/Caddy reverse proxy configurations
- Node.js 18+
- PostgreSQL 15+
- Redis 7+
- Git
git clone https://github.com/knightappsdev/DVSA_Monitor.git
cd DVSA_Monitor# Frontend dependencies
npm install
# Backend dependencies
cd backend
npm install
cd ..# Copy environment files
cp .env.local.example .env.local
cp backend/.env.example backend/.envUpdate the environment variables in both files with your database credentials and API keys.
cd backend
npx prisma migrate dev
npx prisma generate
cd ..# Terminal 1: Frontend
npm run dev
# Terminal 2: Backend
cd backend
npm run devVisit:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
Complete API documentation is available in API_DOCUMENTATION.md including:
- Authentication endpoints
- User management
- Test slot monitoring
- Booking management
- GDPR compliance
- Admin functions
POSTGRES_URL="postgresql://user:pass@localhost:5432/smartdvsa"
NEXT_PUBLIC_API_URL="http://localhost:5000"
NEXT_PUBLIC_WS_URL="ws://localhost:5000"
NEXT_PUBLIC_FIREBASE_API_KEY="your_firebase_key"
# ... other Firebase configDATABASE_URL="postgresql://user:pass@localhost:5432/smartdvsa"
REDIS_HOST="localhost"
REDIS_PORT="6379"
JWT_SECRET="your_jwt_secret"
AUTO_BOOKING_ENCRYPTION_KEY="64_char_hex_key"
TWILIO_ACCOUNT_SID="your_twilio_sid"
# ... other service credentials- Set Preferences: Configure test centers, dates, and notification preferences
- Monitor Slots: Track available test slots in real-time
- Enable Auto-Booking: Securely store credentials for automatic booking (optional)
- Receive Alerts: Get instant notifications when slots become available
- Manage Students: Add and monitor multiple students
- Track Progress: View student booking attempts and success rates
- Bulk Operations: Manage preferences for multiple students
- Analytics: Access performance metrics and reports
- System Monitoring: Track platform performance and usage
- User Management: Manage user accounts and permissions
- Compliance: Monitor GDPR requests and audit logs
- Configuration: Adjust system settings and rate limits
# Build and run with Docker Compose
docker-compose up -d
# Or use the deployment script
chmod +x scripts/deploy.sh
./scripts/deploy.sh# Frontend to Vercel
vercel --prod
# Backend to Railway
railway upDetailed deployment guides available for:
# Frontend tests
npm test
# Backend tests
cd backend
npm test
# Integration tests
npm run test:integration
# Load testing
npm run test:load- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript best practices
- Write tests for new features
- Maintain GDPR compliance
- Respect DVSA terms of service
- Document API changes
This project is licensed under the MIT License - see the LICENSE file for details.
This platform is designed to:
- Respect DVSA website terms of service
- Implement ethical scraping practices
- Use appropriate rate limiting
- Honor blackout hours
- Provide user consent mechanisms
- User consent management
- Data minimization principles
- Right to be forgotten
- Data portability
- Audit logging
- Retention policies
This software is for educational and personal use. Users are responsible for complying with all applicable laws and terms of service. The developers assume no liability for misuse of this software.
- DVSA for providing public test slot information
- Open source community for excellent tools and libraries
- Contributors and testers who helped improve the platform
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@smartdvsa-monitor.com
⚡ Built with modern web technologies and ethical AI practices