Worker for the Hack4Impact-UMD App Portal assessment autograder.
graph TB
User[Applicant] -->|Submits Assessment| Frontend[App Portal - Frontend]
Frontend[App Portal - Frontend] -->|Reads Status and Results| User[Applicant]
Frontend -->|Requests Grading| Backend[App Portal - Backend]
Backend -->|Creates Documents| Firestore[(Firestore)]
Backend -->|Enqueues Job| CloudTasks[Queue - Cloud Tasks]
CloudTasks -->|Delivers Job| Professor[Professor - Cloud Run]
Professor -->|Updates Documents| Firestore
Professor -->|Clones Repo| GitHub[GitHub]
Professor -->|Tests Repo| Playwright[Playwright]
Firestore -->|Reads Documents| Frontend
style Frontend fill:#4285f4,color:#fff
style Backend fill:#4285f4,color:#fff
style Professor fill:#9334e9,color:#fff
style Firestore fill:#ffa000,color:#fff
style CloudTasks fill:#34a853,color:#fff
- Language: Go
- Runtime: Node
- Package Manager: Bun
- Testing: Playwright
- Database: Firestore
- Deployment: Docker, Google Cloud Run
Build locally with:
make buildThe resulting binary will be professor.
With Docker installed and alive, build the image with:
make docker-buildThen run with:
make docker-runMake sure you have a .env file in the root directory with PROJECT_ID set correctly, and DEV=true in order to connect to the firestore emulator
And now http://localhost:8000 on your machine should be live!