https://github.com/hdm-chat-team/application-project-ws24
https://github.com/hdm-chat-team/application-project-ws24
bun react shadcn-ui tailwindcss tanstack-react-query tanstack-router turborepo vite websocket-chat
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/hdm-chat-team/application-project-ws24
- Owner: hdm-chat-team
- Created: 2024-10-16T16:19:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-04T18:49:56.000Z (over 1 year ago)
- Last Synced: 2025-03-06T01:32:13.601Z (over 1 year ago)
- Topics: bun, react, shadcn-ui, tailwindcss, tanstack-react-query, tanstack-router, turborepo, vite, websocket-chat
- Language: TypeScript
- Homepage: https://app.hdmchat.de
- Size: 3.71 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# StudyConnect
[](https://github.com/DenizGazitepe/application-project-ws24/actions/workflows/test.yml) [](https://biomejs.dev)
A realtime web messanger to connect students at [Stuttgart Media University](https://www.hdm-stuttgart.de/)
## ๐๏ธ Requirements
This project uses [Bun](https://bun.sh) as its package manager and server runtime.
To install it follow the instructions [here](https://bun.sh/docs/installation).
You will also need [Node.js](https://nodejs.org/en/download).
[Docker Desktop](https://www.docker.com/) to run the development database.
## ๐๏ธ Project structure
We are using [Bun workspaces](https://bun.sh/docs/install/workspaces) to separate packages.
Each package is 100% [TypeScript](https://www.typescriptlang.org/).
### ๐ Apps
- `/app`: a monorepo-style app
- `/backend`: a ๐ฅ [Hono](https://hono.dev) server providing api and static routes
- ๐ Cookie based authentication using the [lucia-auth](https://lucia-auth.com/) guide.
- ๐ [Websockets](https://bun.sh/docs/api/websockets) for real time features.
- `/frontend`: a โก [Vite](https://vite.dev) SPA using
- โ๏ธ [React](https://react.dev) as the frontend framework.
- ๐๏ธ [Tanstack Router](https://tanstack.com/router/) for managing SPA routes.
- ๐๏ธ [Tanstack react-query](https://tanstack.com/query) for managing server state on the client
- ๐๏ธ [Tanstack react-form](https://tanstack.com/form) for form validation
### ๐ฆ Packages
- `/cuid`: package for generating and validating [CUID2](https://github.com/paralleldrive/cuid2) ids on the server and client.
- `/tsconfig`: shared typescript configuration
## ๐งฐ Utilities
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [Biome](https://biomejs.dev/) for code linting/formatting
- use `bun check` to check for typescript errors
- use `bun check:fix` to fix most linting errors and apply formatting
- [PWA-assets generator](https://vite-pwa-org.netlify.app/assets-generator)
- use `bun assets` to generate PWA assets from `public/logo.svg`
## ๐ก Contributing
We use [conventional commits](https://www.conventionalcommits.org) to format commit messages. The repo includes a recommended VSCode extension.
We use issue branches and Pull requests to organize changes.
## โจ๏ธ Commands
### ๐งช Test
So far we are simply using Bun's integrated test runner:
```zsh
bun run test
```
Make sure to include `run`, otherwise environment variables won't be set.
Test files are all named `*.test.ts`
### ๐ทโโ๏ธ Build
To build all apps and packages, run the following command in the root of the project:
```zsh
bun run build
```
### ๐ Docker
To start the local database run:
```zsh
docker compose up db --detach
```
To start both containers:
```zsh
docker compose up --build --detach
```
### ๐จโ๐ป Develop
To start all development servers, run the following command:
```zsh
bun dev
```
Tanstack router and react-query will render development tools to debug their features.
To use Drizzle-kit CLI [commands](https://orm.drizzle.team/docs/kit-overview) run:
```zsh
bun db
```
To use shadcn/ui CLI [commands](https://ui.shadcn.com/docs/cli) run:
```zsh
bun ui
```