# Thunderbird Appointment Frontend This is the frontend component of Thunderbird Appointment. It's written in VueJS with Vite. ## Project setup Copy the [.env.example](.env.example) as `.env`. Then simply run: ```bash corepack enable pnpm install ``` ### Compiles and hot-reloads for development ```bash pnpm run dev ``` ### Compiles and minifies for production ```bash pnpm run build ``` ### Post-CSS We use post-css to enhance our css. Any post-css that isn't in a SFC must be in a `.pcss` file and imported into the scoped style like so: ```css @import '@/assets/styles/custom-media.pcss'; @media (--md) { .container { ... } } ``` ### Rate limits We use slowapi for rate limiting. In order for rate limiting to function an api route needs to be have the @limiter decorator below the request decorator, and they need to have `request: Request` as a parameter. ### Lints and fixes files Frontend is formatted using ESlint with airbnb rules. ```bash pnpm run lint pnpm run lint:fix ``` ### Run tests ```bash pnpm run test ``` Note: Tests are setup to run in America/Vancouver timezone. ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/).