A PoC of an automatic bulk assignment grader LLM engine
| Metric | Status |
|---|---|
| Build Status | |
| Code Coverage | |
| Code Quality | |
| Technical Debt | |
| Dependencies | |
| Last Commit |
-
Clone the repository
git clone https://github.com/FumingPower3925/auto-grade.git cd auto-grade -
Set up environment variables
cp .env.example .env # Edit .env and add your secrets -
Run the application
make build # Build Docker images make up # Start the application
The API will be available at http://localhost:8080/api and the web interface at http://localhost:8080
All commands are available through the Makefile. Run make help to see all available commands.
make build # Build all Docker images
make up # Start the application
make down # Stop all services and remove volumes
make logs # View application logsmake test # Run all tests
make test-unit # Run unit tests with 100% coverage requirement
make test-integration # Run integration tests
make test-e2e # Run end-to-end tests with Playwrightmake lint # Run ruff linter with auto-fix and format
make lint-check # Check linting without auto-fix
make type-check # Run mypy type checking
make format # Format code with ruff
make security # Run security checks with bandituv lock # Update uv.lock file after changing dependencies
uv sync # Install/update all dependencies from lock fileThe project includes comprehensive testing with multiple layers:
- Unit Tests: Test individual components in isolation (
tests/unit/)- 100% coverage required - CI will fail if coverage drops below 100%
- Coverage is only collected from unit tests
- Integration Tests: Test component interactions (
tests/integration/)- No coverage requirements
- Tests API endpoints and database operations
- E2E Tests: Test complete user workflows using Playwright (
tests/e2e/)- Browser-based testing
- Screenshots and videos captured on failure
- Parallel Execution: All test types run in parallel for faster CI
- Unit and integration tests run in dedicated Docker containers
- E2E tests run with Playwright for browser automation
- All tests are automatically run in the CI/CD pipeline
- Coverage reports are generated and uploaded to Codecov
- Parallel test execution for faster feedback
- 100% code coverage enforcement on unit tests
- Code quality checks with mypy, ruff, and bandit
- Security scanning with Trivy and safety
- SonarCloud integration for code quality metrics
- Multi-platform Docker builds (AMD64 & ARM64)
- Artifact uploads for test results and coverage reports
⚠️ Important NoticeThis project is part of my Master's Thesis at Universitat Politècnica de Catalunya (UPC). Until the thesis is presented and defended, I cannot accept external contributions.
After the thesis presentation (expected mid-2025), all contributions will be welcome!
Once the thesis is complete, contributions will be welcome! Here's how to contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Ensure tests pass with 100% coverage (
make test-unit) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Python 3.13+
- Docker and Docker Compose
- UV for dependency management
- 100% test coverage for new code
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Albert Bausili
- Email: albert.bausili@gmail.com
- GitHub: @FumingPower3925