Skip to content

NUSpecialProjects/gitmarks

Repository files navigation

Banner

GitMarks Overview

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.

Technology Stack

Core Technologies

Go Go Fiber TypeScript React GitHub React Query Chart JS Postgres

Infrastructure

Docker Kubernetes Amazon S3 ECS RDS

Features

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

Team


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

Getting Started

Prerequisites

The following tools are required to run GitMarks:

Configuration

  1. 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>
  1. 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>

Development Setup

Using Make (Recommended)

# 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

Manual Setup

# 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