Voting app for the Undergraduate Senate and other student orgs https://tartan.vote
  • Rust 54.6%
  • Svelte 39.8%
  • TypeScript 3.8%
  • CSS 0.9%
  • Nix 0.8%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ScottyLabs bcccf79063
Some checks failed
kennel/build build succeeded
kennel/deploy service 'tartan-vote' failed healthcheck within startup grace period
CI / check-1 (push) Failing after 33s
CI / build (push) Failing after 39s
CI / check (push) Failing after 0s
nixbot/nix-eval evaluation succeeded in 0s (1 warning)
nixbot/nix-build 0 attributes built
Merge pull request 'chore: update lockfiles' (#54) from renovate/kennel into main
2026-10-19 09:53:26 +00:00
.forgejo/workflows chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
backend backend: votes: remove motion id 2026-08-02 15:59:01 -04:00
docs docs: update docs for hopefully better onboarding 2026-10-02 22:13:53 -04:00
frontend chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
.gitattributes build: remove emdash from gitattributes 2026-08-02 18:04:56 -04:00
.gitignore git: update .gitignore 2026-07-20 18:13:35 -04:00
Cargo.lock build: fix security scanner issues 2026-08-02 18:12:48 -04:00
Cargo.toml document-devenv (#2) 2026-06-06 06:27:01 +02:00
CODEOWNERS document-devenv (#2) 2026-06-06 06:27:01 +02:00
devenv.lock chore: update lockfiles 2026-10-19 09:50:46 +00:00
devenv.nix chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
devenv.yaml chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
flake.lock chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
flake.nix chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00
LICENSE-APACHE-2.0 docs: update and expand documentation (#8) 2026-03-20 17:18:33 -04:00
LICENSE-MIT docs: update and expand documentation (#8) 2026-03-20 17:18:33 -04:00
osv-scanner.toml build: fix security scanner issues 2026-08-02 18:12:48 -04:00
README.md docs: update docs for hopefully better onboarding 2026-10-02 22:13:53 -04:00
secretspec.toml chore: align with current kennel patterns 2026-10-13 02:43:09 -04:00

Tartan Vote

Tartan Vote is a CMU Undergraduate Senate-commissioned, ScottyLabs-developed voting app, to help the Senate and other student organizations manage attendance and host elections and motions. Currently, the app is still under development, but we strongly hope to get it completed very soon!

Built With

  • SvelteKit
  • Rust
  • PostgreSQL

Assumptions about the reader

Hello, reader! For the remainder of this README, and other documentation, we will assume that you are a developer or contributor, using WSL or a Unix development system, and have some familiarity with the command line. If you need any help, you are free to contact one of the codeowners found in CODEOWNERS, or join the discord.

Getting Started

Prerequisites

  • You are added to the Tartan-Vote team on governance
  • devenv provides Cargo, Deno, Node, PostgreSQL, and other tooling via Nix

Quick Setup

For detailed setup instructions, see SETUP.md.

Authenticate once per machine with OpenBao so secretspec can read dev secrets:

nix run git+https://git.cmu.dev/ScottyLabs/kennel#login

Allow devenv (or enter the shell manually):

devenv allow
# or: devenv shell

Run the app (inside the devenv shell, from the repo root):

devenv up
# add --detach or -d to run it in the background
# devenv processes down to shut it down

# in a separate terminal if you didn't add -d
cd frontend && deno task build

cargo run

Then open http://localhost:8080.

Deployment

Production runs on Kennel via devenv and secretspec.

Contributing

Please check CONTRIBUTING.md before you contribute to this project!

Licenses

Voting App is distributed under the Apache 2.0 and MIT Licenses, found in the files LICENSE-APACHE-2.0 and LICENSE-MIT respectively.