Skip to content

jacksonrakena/gradekeeper

Repository files navigation

Gradekeeper

Try it now: gradekeeper.xyz

Gradekeeper is an free, open-source Rust + React web app that simplifies grade tracking and projections for university students across the globe.

This repository holds the TypeScript/React based client. For the Rust/Axum-based API server, see jacksonrakena/gradekeeper-server.

Running a developer environment

You'll need Node 16 and NPM/Yarn installed. This guide will use NPM. You'll also need a Rust compiler that supports the 2021 edition.

Server

First, clone jacksonrakena/gradekeeper-server.

  1. Configure the parameters:

You'll need to copy .env.template to .env and fill out the fields.

Field name Description
DATABASE_URL A Postgres connection string.
JWT_SECRET A random string of any length, used to encrypt JWTs.
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET Your Google credentials for login. You can get these from the Google Cloud Console.
PERMITTED_REDIRECT_URLS A list of comma-separated permitted URLs. For example, the production server uses https://app.gradekeeper.xyz. For development, set this to something like http://localhost:5173.
  1. Run the API server in release mode.
cargo run --release

Client

First, clone jacksonrakena/gradekeeper.

  1. Install dependencies:
npm i
  1. Configure the client:

Create a file called .env.local and fill in values as per the below table:

Field name Description
VITE_API_BASE_URL The base url of the API server. For development, set this to something like http://localhost:3000.
  1. Start the development server:
npm run dev
  1. Visit the development server on the address that Vite generates.

Screenshots

Home page:
image

Copyright

Gradekeeper is copyright © 2023 Jackson Rakena.

About

A free, open-source grade tracking site used by 500+ students at 15+ universities and colleges around the world

Topics

Resources

Security policy

Stars

Watchers

Forks

Languages