This repository is a monorepo for the Good Dog Licensing project, managed with TurboRepo and Bun.
The repository is organized as follows:
- apps/: Contains the main applications.
- web/: The web application built with Next.js.
- packages/: Contains shared packages.
- auth/: Authentication-related code.
- components/: Shared React components.
- db/: Database-related scripts and configurations.
- email/: Email-related utilities.
- env/: Environment variable configurations.
- trpc/: tRPC-related code.
- ui/: UI components and utilities.
- tests/: Contains test-related files and configurations.
- api/: API tests.
- frontend/: Frontend tests.
- mocks/: Mock implementations for testing.
- tooling/: Contains configuration and tooling for the project.
- eslint/: ESLint configurations.
- github/: GitHub Actions and workflows.
- prettier/: Prettier configurations.
- tailwind/: Tailwind CSS configurations.
- typescript/: TypeScript configurations.
-
Clone the repository:
git clone [email protected]:sandboxnu/good-dog-licensing.git cd good-dog
-
Install dependencies:
bun install
- Create env files
bun env:setup
- Start the dev enviornment:
bun dev
The following scripts are available in the root package.json
:
build
: Build all packages and applications.clean
: Clean allnode_modules
and Turbo cache.db:up
: Start the database.db:down
: Stop the database.db:push
: Push database schema changes.db:generate
: Generate database client.db:migrate
: Run database migrations.db:studio
: Open the database Studio.db:seed
: Seeds the database.dev
: Start all the development apps.dev:web
: Start only the web app.format
: Check code formatting.format:fix
: Fix code formatting.lint
: Run linting.lint:fix
: Fix linting issues.typecheck
: Run TypeScript type checks.shad-add
: Add a new UI component using Shadcn.generate:package
: Generate a new package.env:setup
: Setup the default env varsbun test
: Run the test suites
You can run the entire test suite using bun test
or run the tests for a specific entrypoint, bun test <file-path>
. To filter tests by name, use bun test <file-path> -t <test-name>
. For example, to run all tests for the frontend
folder, you can run bun test frontend
.