GitMarks is a Git-based grading platform that streamlines the academic assessment process by leveraging industry-standard workflows. It provides a comprehensive solution for both educational staff and students, combining automated grading capabilities with professional development practices.
Category | Capabilities |
---|---|
GitHub Integration | • Seamless repository management • Native pull request workflow • Automated assignment distribution |
Automated Assessment | • GitHub Actions integration • Customizable test suites • Immediate feedback loops |
Code Review System | • Line-by-line annotations • Inline feedback tools • Review history tracking |
Assignment Management | • Template-based distribution • Deadline management • Bulk operations support |
Progress Analytics | • Real-time submission tracking • Performance metrics • Completion statistics |
Nick Tietje Full Stack Developer |
Cam Plume Backend Developer |
Kenny Chen Full Stack Developer |
Nandini Ghosh Designer & Frontend Developer |
Alex Angione Full Stack Developer |
Seby Tremblay Infrastructure & Product Manager |
The following tools are required to run GitMarks:
- Go - Backend runtime
- Node.js and npm - Frontend development
- Docker and Docker Desktop - Database containerization
- Ngrok - Local development tunneling
- Backend Configuration (
/backend/.env
):
APP_PRIVATE_KEY=<GitHub App Private Key>
APP_ID=<GitHub App ID>
APP_INSTALLATION_ID=<GitHub App Installation ID>
APP_WEBHOOK_SECRET=<GitHub App Webhook Secret>
APP_NAME=<GitHub App Name>
CLIENT_REDIRECT_URL=<OAuth Redirect URL>
CLIENT_ID=<GitHub OAuth App Client ID>
CLIENT_SECRET=<GitHub OAuth App Client Secret>
CLIENT_URL=<OAuth Authorization Endpoint>
CLIENT_TOKEN_URL=<OAuth Token Endpoint>
CLIENT_JWT_SECRET=<JWT Secret Key>
DATABASE_URL=<Database Connection String>
- Frontend Configuration (
/frontend/.env
):
VITE_PUBLIC_API_DOMAIN=<Backend URL>
VITE_PUBLIC_FRONTEND_DOMAIN=<Frontend URL>
VITE_GITHUB_CLIENT_ID=<GitHub OAuth App Client ID>
VITE_GITHUB_APP_NAME=<GitHub App Name>
# 1. Start the database
make db-run
# 2. Launch the backend
make backend-dep
make backend-run
# 3. Start ngrok tunnel
make ngrok-run
# 4. Launch the frontend
make frontend-run
# 1. Start Docker services
docker compose up --build
# 2. Start ngrok tunnel
ngrok http --domain={your-ngrok-domain} 8080
# 3. Install frontend dependencies
cd frontend
npm install
# 4. Start frontend development server
npm run dev