Discord bot for CMU Courses, CMU Eats, and other ScottyLabs services
  • TypeScript 99.3%
  • Nix 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Nikhil R 0e11b091c5
Some checks failed
kennel/deploy deployment healthy
CI / build (push) Successful in 2m40s
CI / check-1 (pull_request) Failing after 1m11s
CI / build (pull_request) Successful in 3m29s
CI / check (pull_request) Failing after 0s
nixbot/nix-eval evaluation succeeded
nixbot/nix-build 0 attributes built
kennel/build build succeeded
CI / check-1 (push) Failing after 1m16s
CI / check (push) Failing after 0s
fix: improve FCE error handling when multiple invalid FCEs
2026-11-04 18:31:02 -05:00
.forgejo chore: align with current kennel patterns 2026-10-13 02:41:37 -04:00
.vscode fix: change extension settings 2026-06-20 11:58:19 +05:30
docs docs: expand and revise SETUP.md 2026-09-29 01:29:01 -04:00
drizzle/20251216201838_powerful_turbo chore: add ci workflow to check, format, and lint (#83) 2026-01-17 17:10:02 -08:00
src fix: improve FCE error handling when multiple invalid FCEs 2026-11-04 18:31:02 -05:00
tests feat: add parser tests 2026-07-23 18:29:33 -04:00
.editorconfig feat: update secretspec.toml 2026-06-09 14:54:23 -07:00
.env.example feat: use devenv, migrate to deno, and include secretspec (#194) 2026-06-08 05:06:14 +02:00
.gitignore chore: remove some unneeded .gitignore 2026-07-23 12:02:08 -04:00
.oxlintrc.json feat: migrate some parts to more deno-friendly patterns 2026-06-20 11:58:18 +05:30
biome.jsonc fix: exclude biome.jsonc from treefmt to match CI format check 2026-06-04 01:32:00 -04:00
CODEOWNERS chore: remove redundancy in CODEOWNERS 2026-07-23 12:03:18 -04:00
deno.json feat: add compile task 2026-06-25 23:03:55 +05:30
deno.lock feat: re-introduce tests 2026-06-20 18:24:29 +02:00
devenv.lock chore: update lockfiles 2026-10-19 10:52:05 +00:00
devenv.nix chore: align with current kennel patterns 2026-10-13 02:41:37 -04:00
devenv.yaml chore: align with current kennel patterns 2026-10-13 02:41:37 -04:00
docker-compose.yml style: treefmt 2026-06-14 23:22:48 -04:00
drizzle.config.ts Revert "fix: read env vars via process.env for Bun runtime on Kennel" 2026-06-09 20:43:32 -04:00
flake.lock chore: update lockfiles 2026-10-19 10:52:05 +00:00
flake.nix chore: align with current kennel patterns 2026-10-13 02:41:37 -04:00
LICENSE-APACHE-2.0 chore: update to devops standards (#20) 2025-10-24 15:14:13 -04:00
LICENSE-MIT chore: update to devops standards (#20) 2025-10-24 15:14:13 -04:00
README.md docs: expand and revise README 2026-10-03 21:06:24 -04:00
secretspec.toml chore: align with current kennel patterns 2026-10-13 02:41:37 -04:00

Dalmatian

Dalmatian is a Discord bot designed for CMU students, providing easy access to campus resources like CMU Courses and CMU Eats right at your fingertips! Made in TypeScript using Discord.js.

Try some of dalmatian's bot commands!

  • /fce - View and compare Faculty Course Evaluations (FCEs) across semesters and professors
  • /dining - View the statuses of dining locations on campus
  • /course - Look up information about a specific course

To add Dalmatian to your server, click here!

Getting Started

Prerequisites

Setup

For detailed setup instructions including creating a Discord bot, obtaining API credentials, and configuring your development environment, see docs/SETUP.md.

Quick setup:

  1. Install devenv (see link above)
  2. Create a Discord bot at https://discord.com/developers/applications and invite it to a server you can test in
  3. Get your DISCORD_TOKEN and DISCORD_CLIENT_ID and put them in .env:
    cp .env.example .env
    # Edit .env with your Discord bot credentials
    

Running the Bot

Authenticate once per machine with:

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

Then start the bot and a local PostgreSQL database:

devenv up

Database migrations and slash command registration happen automatically when the bot starts. The first run may take a while as devenv downloads its tooling.

Deployment

Production runs on Kennel via devenv and secretspec.

Contributing

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