Cooper is a tool for Northeastern students to both submit reviews of their co-ops and filter through reviews of co-ops left by other students.
Read our docs cooper-docs-sandboxneu.vercel.app !
- Next.js - Web development framework
- tRPC - End-to-end typesafe API
- Tailwind CSS - CSS framework
- shadcn/ui - Pre-built components
- NextAuth.js - Authentication
- Drizzle - ORM
- PostgreSQL - Relational database
- Docker - Database containerization for local development
- Zod - Validation
- Vitest - Unit tests
- Playwright - E2E tests
This is a T3 Stack project bootstrapped with create-t3-turbo. See create-t3-turbo!
Before you start you will need the following:
Note
Setting up the database for local development is currently a work in progress given that the Drizzle connector only supports connections to Vercel / Neon. The documentation will be updated with new instructions for using the Postgres Docker container.
You do not need Docker as of now.
- Clone the repo
git clone git@github.com:sandboxnu/cooper.git
cd cooper- Install the necessary dependencies.
pnpm install- Configure the
.envfile by following the template in.env.example. See Environment File.
- Create a new file called
.envor copy the.env.exampleand rename it to.env.
cp .env.example .env- Complete the file to add your environment variables. These are the defaults for local development. Make sure that the
dockercontainer is running.
POSTGRES_URL='<url>'
AUTH_SECRET='supersecret'
AUTH_GOOGLE_ID=''
AUTH_GOOGLE_SECRET=''While the Node Postgres work is in progress, the best way to get a Postgres database up and running that supports the existing database connection code would be through Neon.
- Sign in using your GitHub account
- Create a new Project
- Copy the Connection String. Make sure that Pooled connection is checked.
To generate AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET, see Setting up OAuth 2.0. Ensure that you set the value of Authorized JavaScript origins and Authorized redirect URIs to the appropriate URLs. To generate a new AUTH_SECRET, run the following command in your terminal and add it to the .env file.
openssl rand -base64 32To fill the location info within Neon, follow the steps on this page. Skip steps 2 and 3, as the locations.csv file already exists in the repo, and then for step 4, replace 'customer' with 'location' and replace the path with the path to the location.csv file.