This repository contains a Rust workspace for building an exam scheduling system backed by Z3, along with a sveltekit frontend.
crates/model: database models and shared ID types.crates/entity: SeaORM entities generated from the SQLite schema.crates/solver: Z3-backed scheduler and constraints.crates/backend: database access, data prep, and wiring to the solver.frontend: Sveltekit frontendfrontend/app: Tauri app for the frontendTimeslots are ordered by (date, slot) when building any scheduling logic. Do not assume
TimeslotId is in chronological order.
gh-release or vendored feature flagsgh-release and the default featureset requires the end-user to have Z3 installed as well. vendored will statically link z3From the repository root:
cargo buildcargo nextest runcargo nextest run -p solver add_pair_constraint_enforces_allowed_pairscargo clippy --all-targets --all-featurescargo fmtFrom frontend:
pnpm ipnpm tauri buildpnpm lintpnpm formatCoverage helpers are documented in docs/coverage.md.
This is a currently WIP, Mostly personal project, and some bits (A lot of bits, currentlty) are messy and AI generated with little review other than "yeah that code is fine and it works". I am slowly reviewing of all AI-marked areas :p. I do not approve of vibe coding (i.e. LLM generated code without proper review), but LLMs are a useful tool to get stuff done a bit faster.
AI was used in this repository. All AI-generated contributions that have not been modified/fully reviewed by
persons are marked with an explicit notice (for example /// AI-generated. in Rust doc comments, or /** AI-generated */ in JSDoc).
AI-generated contributions are allowed, but they will be reviewed strictly and must be marked as such.