GitMarks is a Git-based grading platform designed to mirror industry standard workflows and provide support for both students and teaching staff.
Developed in 2024 by:
Please install the following software
Go our primary backend language.
Node Package Manager our package manager in the frontend.
Docker and Docker Desktop our Postgres Database will be containerized in Docker.
Ngrok Allows us to easily connect the frontend to backend code. Make an account for a stable link!
Create an .env file in the backend directory:
APP_PRIVATE_KEY=<Your GitHub app private key>
APP_ID=<Your GitHub app ID>
APP_INSTALLATION_ID=<Your GitHub app installation ID>
APP_WEBHOOK_SECRET=<Your GitHub app's webhook secret>
APP_NAME=<Your GitHub app name>
CLIENT_REDIRECT_URL=<The URL that GitHub should redirect back to>
CLIENT_ID=<The client ID of your GitHub OAuth app>
CLIENT_SECRET=<The client Secret of your GitHub OAuth app>
CLIENT_URL=<The Authorization endpoint of your OAuth provider>
CLIENT_TOKEN_URL=<The access token endpoint of your OAuth provider>
CLIENT_JWT_SECRET=<The Json Web Token secret>
DATABASE_URL=<Your database URL>
Create a second .env file in the frontend root directory:
VITE_PUBLIC_API_DOMAIN=<Your backend url>
VITE_PUBLIC_FRONTEND_DOMAIN=<Your frontend url>
VITE_GITHUB_CLIENT_ID=<The client ID of your GitHub OAuth app>
VITE_GITHUB_APP_NAME=<Your GitHub app name>
- Launch Docker Desktop
- In the base of the repo: run
make db-run
- Then, open a new tab to run commands in: run
make backend-dep
thenmake backend-run
- Next, in a new tab run
make ngrok-run
- Finally, open one last new tab: run
make frontend-run
- Launch Docker Desktop
- In the repo root: run
docker compose up --build
- In a new terminal: run
ngrok http --domain={<ngrok public url>} 8080
- In a new terminal: run
cd frontend
- (On first run) In the frontend directory: run
npm i
- In the frontend directory: run
npm run dev