/compass

Primary LanguageTypeScript

🧭 Compass Center's Internal Resource Management App

🛠 Technologies

  • Next.js
  • TailwindCSS
  • TypeScript
  • Supabase

📁 File Setup

\compass
    \components // Components organized in folders related to specific pages
    \pages // Store all pages here
        \api // API routes
    \public // Local assets (minimize usage)
    \utils // Constants, Routes, Classes, Dummy Data
    \styles // CSS files

🚀 To Start

Follow these steps to set up your local environment:

\\ Clone this repository
git clone https://github.com/cssgunc/compass.git
\\ Go into main folder
cd compass
\\ Install dependencies
npm install
\\ Run local environment
npm run dev

Also add following variables inside of a .env file inside of the backend directory

\\ .env file contents

POSTGRES_DATABASE=compass
POSTGRES_USER=postgres
POSTGRES_PASSWORD=admin
POSTGRES_HOST=db
POSTGRES_PORT=5432
HOST=localhost

Backend Starter

  • Please open the VS Code Command Palette
  • Run the command Dev Containers: Rebuild and Reopen in Container
  • This should open the dev container with the same file directory mounted so any changes in the dev container will be seen in the local repo

In Dev Container

Run this to reset the database and populate it with the approprate tables that reflect the entities folder

python3 -m backend.script.reset_demo

Possible Dev Container Errors

  • Sometimes the ports allocated to our services will be allocated (5432 for Postgres and 5050 for PgAdmin4)
  • Run docker stop to stop all containers
  • If that does not work using sudo lsof -i :[PORT_NUMBER] to find the process running on the needed ports and idenitfy the PID
  • Run sudo kill [PID]
  • If you are on Windows please consult ChatGPT or set up WSL (will be very useful in the future)

Accesing pgAdmin 4

  • First go to http://localhost:5050/ on your browser
  • Log in using the credentials admin@example.com and admin
  • Click Add New Server
  • Fill in the name field with Compass (can be anything)
  • Click Connection tab and fill in the following:
    • Host name/address: db
    • Maintence database: compass
    • Username: postgres
    • Password: admin
  • Click Save at the bottom to add connection
  • Click Server dropdown on the left and click through items inside the Compass server

Testing Backend Code

  • Write tests for any service you create and any function in those services
  • Make sure to add docstrings detailing what the file is doing and what each test is doing
  • Name all test functions with test_[testContent] (Must be prefixed with test to be recognized by pytest)
  • Utitlize dependency injection for commonly used services
\\ Run all tests by being in the backend directory
pytest

\\ Run specific tests by passing in file as a parameter
\\ Passing the -s allows us to see any print statements or debugging statements in the console
pytest -s --rootdir=/workspace [testFilePath]::[testFunctionSignature]

💡 Dev Notes

  • For each task, create a branch in the format '[your name]-[ticket number]-[task description]'
  • Only commit your work to that branch and then make a git request to '/main'
  • When creating new files in the backend and code is in python make sure to add a docstring for the file and any function you create ("""[content]"""")