{"id":18265714,"url":"https://github.com/jacksonrakena/gradekeeper","last_synced_at":"2025-04-04T21:31:57.633Z","repository":{"id":37394742,"uuid":"501954991","full_name":"jacksonrakena/gradekeeper","owner":"jacksonrakena","description":"A free, open-source grade tracking site used by 600+ students at 15+ universities and colleges around the world","archived":false,"fork":false,"pushed_at":"2024-10-29T22:16:23.000Z","size":1788,"stargazers_count":8,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-30T00:42:43.842Z","etag":null,"topics":["education","grade-calculator","grade-tracking","gradebook","grades","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://gradekeeper.xyz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jacksonrakena.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-10T08:05:14.000Z","updated_at":"2024-10-29T22:16:27.000Z","dependencies_parsed_at":"2024-04-11T10:24:45.579Z","dependency_job_id":"deea9d60-2873-4e9e-97d6-f1fa8c379c05","html_url":"https://github.com/jacksonrakena/gradekeeper","commit_stats":null,"previous_names":["gradekeeper/gradekeeper","jacksonrakena/gradekeeper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonrakena%2Fgradekeeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonrakena%2Fgradekeeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonrakena%2Fgradekeeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacksonrakena%2Fgradekeeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacksonrakena","download_url":"https://codeload.github.com/jacksonrakena/gradekeeper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247252295,"owners_count":20908662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["education","grade-calculator","grade-tracking","gradebook","grades","hacktoberfest"],"created_at":"2024-11-05T11:19:28.407Z","updated_at":"2025-04-04T21:31:57.627Z","avatar_url":"https://github.com/jacksonrakena.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gradekeeper\n\nTry it now: [gradekeeper.xyz](https://app.gradekeeper.xyz)\n|API|Client|\n|--|--|\n|[![Better Stack Badge](https://uptime.betterstack.com/status-badges/v1/monitor/1fqvl.svg)](https://uptime.betterstack.com/?utm_source=status_badge)|[![Better Stack Badge](https://uptime.betterstack.com/status-badges/v1/monitor/faze.svg)](https://uptime.betterstack.com/?utm_source=status_badge)|\n\nGradekeeper is an free, open-source Rust + React web app that simplifies grade tracking and projections for university students across the globe.\n\nThis repository holds the TypeScript/React based client. For the Rust/Axum-based API server, see [jacksonrakena/gradekeeper-server](https://github.com/jacksonrakena/gradekeeper-server).\n\n### Running a developer environment\n\nYou'll need Node 16 and NPM/Yarn installed. This guide will use NPM.\nYou'll also need a Rust compiler that supports the 2021 edition.\n\n#### Server\nFirst, clone [jacksonrakena/gradekeeper-server](https://github.com/jacksonrakena/gradekeeper-server).\n1. Configure the parameters:\n\nYou'll need to copy `.env.template` to `.env` and fill out the fields.\n\n| Field name                             | Description                                                                                                                              |\n| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| DATABASE_URL                           | A Postgres connection string.                                         |\n| JWT_SECRET                        | A random string of any length, used to encrypt JWTs.                                                                            |\n| 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). |\n| 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`.\n\n2. Run the API server in release mode.\n\n```bash\ncargo run --release\n```\n\n#### Client\nFirst, clone [jacksonrakena/gradekeeper](https://github.com/jacksonrakena/gradekeeper).\n\n1. Install dependencies:\n```\nnpm i\n```\n\n2. Configure the client:\n  \nCreate a file called `.env.local` and fill in values as per the below table:\n  \n| Field name        | Description                                                                                          |\n| ----------------- | -----------------------------------------------------------------------------------------------------|\n| VITE_API_BASE_URL | The base url of the API server. For development, set this to something like `http://localhost:3000`. |\n  \n\n3. Start the development server:\n```\nnpm run dev\n```\n\n4. Visit the development server on the address that Vite generates.\n\n### Screenshots\n\nHome page:  \n\u003cimg src=\"https://user-images.githubusercontent.com/44521335/173555388-a4636179-98e2-458b-83c0-6bd5762e820a.jpg\" width=\"400\" /\u003e\n![image](https://user-images.githubusercontent.com/44521335/173555755-fd49ea1b-b182-44c4-a423-7d573516acba.png)\n\n### Copyright\n\nGradekeeper is \u0026copy; 2022\u0026mdash;2025 Jackson Rakena and contributors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacksonrakena%2Fgradekeeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacksonrakena%2Fgradekeeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacksonrakena%2Fgradekeeper/lists"}