We welcome contribution to TigerJunction from both the TigerApps Team and the Princeton community! Please read the following guidelines before contributing. If you have any questions, feel free to reach out to the project lead at [email protected].
This repository is a monorepo that contains 3 apps in the apps
directory: web
, server
, and prerequisites
. The web
app is the SvelteKit application. This includes the entirety of the frontend and the majority of the backend. The server
app is a Bun-based backend server that updates the app data. The prerequisites
app is manually-inputted prerequisite data and a WIP interpreter for it.
The db
directory contains sql files for the Supabase database. The way Supabase works currently is a bit scuffed, and we will probably migrate off of it very soon. These files will be useful for setting up a new database.
The .github
directory contains GitHub Actions workflows for the repository.
The public
directory contains images used in the README.
Before you start contributing, make sure you have Node.js version 18 or later installed. You can check your Node.js version by running node -v
in your terminal. If you don't have Node.js installed, you can download it from the official website. If you are working in VSCode, install the Prettier extension.
To get started, clone the repository and install the dependencies:
git clone https://github.com/tigerappsorg/tiger-junction
cd tigerjunction
cd apps/web
npm install
To start the development server, run:
npm run dev
This will start the server at localhost:5173
. You can access the admin panel at localhost:5173/admin
. If you are not already logged in, you will need to replace junction.tigerapps.org
with localhost:5173
in the URL when the login page redirects you. If you do not have admin access, grant yourself admin access by going to the private_profiles
table in Supabase and setting the is_admin
column to true
for your user. PLEASE BE CAREFUL TO NOT ACCIDENTLY GRANT ADMIN ACCESS TO SOMEONE ELSE. If you need the Supabase credentials, please reach out to the TigerJunction project lead.
The main
branch is the default branch and is protected. All changes should be made on a separate branch. When you are ready to merge your changes, open a pull request from your branch to main
. The pull request will be reviewed by the project lead before being merged.
The style guidelines are enforced by Prettier (see .prettierrc). If you are using VSCode, you can install the Prettier extension to automatically format your code. Other IDEs may have their own Prettier extensions. Alternatively, you can run npm run format
to format your code.