Skip to content

NUSpecialProjects/gitmarks

Repository files navigation

Banner

GitMarks

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:

Tech Stack

Go TypeScript React

Tools

Docker

Development Enviroment Setup

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!

Before Running

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>

Running The Project in A Dev Environment

  1. Launch Docker Desktop
  2. In the base of the repo: run make db-run
  3. Then, open a new tab to run commands in: run make backend-dep then make backend-run
  4. Next, in a new tab run make ngrok-run
  5. Finally, open one last new tab: run make frontend-run

Running locally in dev mode without using Make (due to multi-line env variable issues):

  1. Launch Docker Desktop
  2. In the repo root: run docker compose up --build
  3. In a new terminal: run ngrok http --domain={<ngrok public url>} 8080
  4. In a new terminal: run cd frontend
  5. (On first run) In the frontend directory: run npm i
  6. In the frontend directory: run npm run dev

About

Analytics and grading extension for Github classroom

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published