This is a tool to validate, solve, and manage TA and PLA assignment at Worcester Polytechnic Institute.
Note
This is a T3 Stack project bootstrapped with create-t3-app.
You will need a POSIX style operating system to run this repo. Mac and Linux users are OK, but Windows users should use WSL.
This project uses nvm to manage Node versions. There is a file named ./nvmrc that contains the correct node version that nvm will install.
To install nvm, use one of the following commands or read their docs here:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bashThen install & use the correct version of Node:
nvm install # installs Node version specified in .nvmrc
nvm use # switches to the node versionThis project uses pnpm as the package manager. To install pnpm, run theses commands or visit their docs here:
corepack enable
corepack prepare [email protected] --activatenode -v # should be >=22
pnpm -v # should be >=10.15.0You will need the proper database and environment variables set up to run the app. For local development, you must set up a local Postgres instance. There is a provided start-database.sh script that you can run. The script also contains extra instructions at the top of the file.
The app will NOT run without properly set environment variables.
Copy the example file (.env.example) into a .env file:
cp .env.example .envThe file will tell you what environment variables you need. When adding additional environment variables, the schema in src/env.js should be updated accordingly.
Warning
Never commit environment variables! Treat them like you would any other password.
If you would like to skip environment variable checking when running the app/command,
you will need to set the SKIP_ENV_VALIDATION to true.
This can be useful for CI/CD or when building w/ Docker.
Example:
SKIP_ENV_VALIDATION=true pnpm run devpnpm i
SKIP_ENV_VALIDATION=true pnpm run devPlease read the package.json file to see what kinds of scrips you can run.
Running pnpm run in the terminal will also give you the available commands.
This project uses Husky for managing git hooks.
This allows us to run formatters and linter fixes before pushes.
All the Github actions are under ./github/workflows. They can type check, lint check, formatter check, and make sure that the project will build.
- Next.js: Framework docs
- NextAuth.js: Authentication
- Prisma: ORM
- Tailwind CSS: Styling
- tRPC: Typesafe REST API (it's also integrated with React Query)
- shadcn and shadcn.io: Component libraries
- Vitest & Cypress: Testing
This project uses Docker. Here is the t3 guide.
There are more docs here