Skip to content
Snippets Groups Projects

Grady

Grady is a tool to aid in the process of grading exams at the University of Goettingen, developed at the Institute for Computer Science.

Getting Started

Dependencies

If you are using Nix, all you'll need is:

  • devenv
  • direnv (optional, automatically activates devenv shell on entering the project directory)

Otherwise, you'll need the following to start developing:

Running the Application

There are two ways to run the application for local development:

  1. with only devenv
  2. Using bun/npm and, for running the database backend, either:
  • A local installation of SurrealDB
  • Docker, for running a SurrealDB container

Option 1: Running with devenv (Recommended for Local Development)

After entering the devenv shell, use it to set up and run the application and all required services locally.

If you're running devenv without direnv for automatic shell activation, enter the shell via devenv shell first

devenv up

Option 2: Running with Docker or local SurrealDB

If you prefer not to use devenv, you can start a local SurrealDB instance manually or using Docker.

Database

Create a directory to persist the development database (this is needed to ensure correct filesystem permissions):

mkdir -p run/data
Using SurrealDB CLI

Install the SurrealDB CLI

Run a local SurrealDB instance with development credentials:

surreal start \
  --bind 127.0.0.1:8000 \
  --user root \
  --pass root \
  --log debug \
  --import-file ./db/schema/schema.surql \
  rocksdb://run/data/dev.db
Docker

For installing Docker on your system, refer to the Docker documentation

Run the SurrealDB Docker container with development credentials:

docker run --rm --pull always \
  -p 8000:8000 \
  --user $(id -u) \
  -v $(pwd)/run/data:/data \
  -v $(pwd)/db:/db \
  surrealdb/surrealdb:latest start \
    --bind 127.0.0.1:8000 \
    --user root \
    --pass root \
    --log debug \
    --import-file /db/schema/schema.surql \
    rocksdb://data/dev.db
Frontend
  1. Install dependencies
bun install

Or

npm install
  1. Initialize development data
bun --bun run db/manage.ts init

Or use the compiled version if you don't have Bun installed:

On linux

./db/manage.linux_x64 init

On windows

./db/manage.win_x64.exe init
  1. Start the app
bun --bun run dev

Or

npm run dev

License

This project is licensed under the MIT License - see the LICENSE.md file for details