https://github.com/jacksonrakena/gradekeeper
A free, open-source grade tracking site used by 600+ students at 15+ universities and colleges around the world
https://github.com/jacksonrakena/gradekeeper
education grade-calculator grade-tracking gradebook grades hacktoberfest
Last synced: about 1 year ago
JSON representation
A free, open-source grade tracking site used by 600+ students at 15+ universities and colleges around the world
- Host: GitHub
- URL: https://github.com/jacksonrakena/gradekeeper
- Owner: jacksonrakena
- Created: 2022-06-10T08:05:14.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T22:16:23.000Z (over 1 year ago)
- Last Synced: 2024-10-30T00:42:43.842Z (over 1 year ago)
- Topics: education, grade-calculator, grade-tracking, gradebook, grades, hacktoberfest
- Language: TypeScript
- Homepage: https://gradekeeper.xyz
- Size: 1.71 MB
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Gradekeeper
Try it now: [gradekeeper.xyz](https://app.gradekeeper.xyz)
|API|Client|
|--|--|
|[](https://uptime.betterstack.com/?utm_source=status_badge)|[](https://uptime.betterstack.com/?utm_source=status_badge)|
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](https://github.com/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](https://github.com/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](https://console.cloud.google.com/apis/credentials). |
| 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`.
2. Run the API server in release mode.
```bash
cargo run --release
```
#### Client
First, clone [jacksonrakena/gradekeeper](https://github.com/jacksonrakena/gradekeeper).
1. Install dependencies:
```
npm i
```
2. 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`. |
3. Start the development server:
```
npm run dev
```
4. Visit the development server on the address that Vite generates.
### Screenshots
Home page:

### Copyright
Gradekeeper is © 2022—2025 Jackson Rakena and contributors.