π Production-Ready Event-Driven Assessment Platform
- Zero Vendor Lock-in: Complete source code with Apache 2.0 license
- AI-Powered Grading: Automated assessment with intelligent feedback
- Cost-Effective: Enterprise-grade features without enterprise costs
- Community-Driven: Built by educators, for educators
- Event-Driven Microservices: 7 independent services with RabbitMQ messaging
- High Test Coverage: Comprehensive test suites for all services
- Scalable by Design: Handle thousands of concurrent users
- Security-First: PASETO V4 tokens, FERPA/GDPR compliant
- Backend: Node.js, TypeScript, Express.js with PostgreSQL
- Frontend: Next.js 14+ App Router, React 18, Tailwind CSS
- Real-time: WebTransport + WebSocket dual-protocol server for cutting-edge performance
- Container-Ready: Docker deployment with health monitoring
- Assessment Interface: Clean, accessible exam-taking experience
- Real-time Auto-save: Never lose progress with automatic draft saving
- Instant Feedback: Immediate results for multiple-choice questions
- Assessment Builder: Rich assessment creation with media support
- Automated + Manual Grading: Hybrid grading with rubric UI, per-question scoring, teacher queue, and overview analytics
- Student Management: Searchable/paginated roster, student detail page with recent submissions
- Real-time Analytics: Backend analytics service operational
- User Management: Backend user service operational
- System Analytics: Backend analytics operational
- Scalable Infrastructure: Handle institutional-scale concurrent usage
- Integration Ready: API-first design for LMS and SIS integration
# Clone and start the production-ready backend
git clone https://github.com/pediafor/assessment.git
cd assessment
docker compose up --build
# π Backend Ready! Access services:
# API Gateway: http://localhost:3000
# RabbitMQ Management: http://localhost:15672Use these to sanity-check your environment (replace TOKEN with a real access token after login):
# Gateway health
curl -s http://localhost:3000/health
# Public register (example)
curl -s -X POST http://localhost:3000/users/register \
-H "Content-Type: application/json" \
-d '{"email":"demo+gw@local","password":"Passw0rd!","firstName":"Demo","lastName":"User"}'
# Protected example (requires TOKEN)
curl -s http://localhost:3000/users/me -H "Authorization: Bearer TOKEN"For per-service smoke tests, see the individual service READMEs in services/*/README.md.
- ποΈ Architecture Guide
- β‘ Event-Driven Architecture
- π§ Development Setup
- π Deployment Guide
- π‘ API Documentation
- π¨ Frontend Documentation
- π Notification Service
- π€ Contributing Guide
- π§ͺ SQL Examples (dev-only)
- Node.js + TypeScript: Type-safe, performant microservices
- Express.js: Lightweight, flexible API framework
- PostgreSQL + Prisma: Robust data layer with type safety
- RabbitMQ: Enterprise-grade event messaging
- PASETO V4: Modern, secure token authentication
- Next.js 14+ App Router: Modern React framework with SSR
- Tailwind CSS: Responsive, utility-first CSS
- Docker: Containerized deployment
| Feature | Status | Notes |
|---|---|---|
| User Management | β Implemented | CRUD, roles, permissions |
| Authentication | β Implemented | PASETO V4, login, logout, refresh |
| Assessment Management | β Implemented | CRUD, media uploads |
| Submission Management | β Implemented | CRUD, file uploads, autosave |
| Automated Grading | β Implemented | MCQ, True/False |
| Event-Driven Architecture | β Implemented | RabbitMQ, events for all services |
| Email Notifications | β Implemented | Notification Service consumes grading.completed and emails students |
| Real-time Notifications | β Implemented | Event-driven notifications with gateway and realtime fanout |
| Frontend | π‘ In Development | Basic structure and some components are ready |
- Advanced Grading: Essay grading, AI-powered grading.
- Advanced Analytics: More detailed dashboards and reports.
- Full Frontend Implementation: Complete the frontend for all user roles.
- LMS Integrations: Canvas, Moodle, etc.
- Mobile App: Native mobile apps for iOS and Android.
Licensed under the Apache License 2.0.
Last Updated: October 20, 2025