This project is a comprehensive web-based programming assignment system with the following components:
- Programming UI and API: Frontend interface and backend service for students to view and submit programming assignments
- Grader API and Image: Automated code grading system with Docker containerization
- Database Management: Uses Flyway for database migrations
- Performance Testing: K6 load testing scripts and documented results
- DevOps Infrastructure: Docker Compose configurations for development and production environments
- Reverse Proxy: NGINX configuration for routing requests
- Caching: Redis implementation for performance optimization
- End-to-End Testing: Playwright tests ensuring system reliability
- The architecture follows modern microservices principles with separate containers for each service, secure API communication, and automated grading in isolated environments. The system demonstrates expertise in full-stack development, containerization, testing strategies, and production deployment.
To start all services:
- docker compose up --build
- Access the UI at port 7800
- Please don't use Tor and any adblock extension while browsing. They may block the page.
To run the end-to-end testing:
- Go to /e2e-playwright/playwright folder
- Run "npm install"
- Go to /tests folder
- Run the test while services are running. For example using UI mode: "npx playwright test --ui-port=8080 --ui-host=0.0.0.0"