Skip to content

uwblueprint/don-efficace

Repository files navigation

don-efficace

Welcome to the don-efficace platform repository!

Stack Choices

Backend Language: TypeScript (Express.js on Node.js)
Backend API: REST
Database: PostgreSQL
User Auth: Yes
File Storage: Yes

Table of Contents

Documentation

Starter Code
Don Efficace Notion

Getting Started

Prerequisites

Setup

  1. This repo uses Node v18.18.2:
nvm install 18.18.2
nvm use 18.18.2
  1. Clone this repository and cd into the project folder:
git clone https://github.com/uwblueprint/don-efficace.git
cd don-efficace
  1. Add environment variables to the following files (ask PL for env variables):
/.env
/backend/typescript/.env
/frontend/.env
  1. Install dependencies:
cd backend/typescript
yarn install

cd frontend
yarn install
  1. Run the application:
docker compose up --build

Linter

Mac

docker exec -it de_ts_backend /bin/bash -c "yarn fix"
docker exec -it de_frontend /bin/bash -c "yarn fix"

Windows

docker exec -it de_ts_backend bash -c "yarn fix"
docker exec -it de_frontend bash -c "yarn fix"

Prisma

Generate Prisma client:

cd backend/typescript
npx prisma generate

Synchronize Prisma schema with database schema:

npx prisma db push

Generate and apply migrations:

npx prisma migrate dev

Open Prisma studio:

npx prisma studio

Ngrok

Setup

  1. Create an ngrok account

  2. Store your personal ngrok authentication token as an environment variable in the .env file of the root directory:

NGROK_AUTHTOKEN=<your_ngrok_auth_token>
  1. Run the application:
docker compose up --build

Troubleshooting

If another service is occupying port 5001, identify the PID of the service (macOS):

sudo lsof -i :5001

Kill the occupying service:

sudo kill <PID>

Run the application again:

docker compose up --build

The Team

Term 1 (W24):

Project Lead: N/A
Product Managers: Jacqueline Fung & Zafir Raeid
Developers: Jessica Ding, Nandini Mehrotra, Shushawn Saha
Designers: Hillary Huang, Sunny Zhang, David Stirling

Term 2 (S24):

Project Lead: Matthew Ng
Product Managers: Jacqueline Fung
Developers: Aayush Patel, Ben Bai, Jason Le, Jordan Kok, Leo Zhang, Patrick Huang, Rosanne Zhu, Andy Liu
Designers: Sunny Zhang, David Stirling, Jane Al-Shihabi

Huge shoutout to the Internal Tools team for creating StarterCode v2!