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
2026-08-02 18:22:11 -04:00
.forgejo/workflows build: point devenv to kennel repo, and update deps 2026-07-26 19:18:25 -04:00
backend backend: votes: remove motion id 2026-08-02 15:59:01 -04:00
docs docs: db: document motion schema without vote types 2026-08-02 15:58:51 -04:00
frontend build: fix security scanner issues 2026-08-02 18:12:48 -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 build: update deps 2026-08-02 15:59:01 -04:00
devenv.nix build: remove docs from checker 2026-08-02 18:04:56 -04:00
devenv.yaml build: point devenv to kennel repo, and update deps 2026-07-26 19:18:25 -04:00
flake.lock build: update deps 2026-08-02 15:59:01 -04:00
flake.nix build: package SPA with backend on a single domain 2026-07-26 19:25:23 -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: readme: remove emdash 2026-08-02 18:04:56 -04:00
secretspec.toml build: package SPA with backend on a single domain 2026-07-26 19:25:23 -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

  • devenv provides Cargo, Deno, Node, PostgreSQL, and other tooling via Nix
  • direnv (recommended)

Quick Setup

For detailed setup instructions, see SETUP.md. Configuration and secrets are documented in secrets-and-config.md.

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

export BAO_ADDR=https://secrets2.scottylabs.org
bao login -method=oidc

Allow direnv (or enter the shell manually):

direnv 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
cd frontend && deno task build
cargo run

Then open http://localhost:8080. Inside the devenv shell, DATABASE_URL and secrets are provided automatically.

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.