https://github.com/t34-dev/web-test
https://github.com/t34-dev/web-test
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/t34-dev/web-test
- Owner: t34-dev
- Created: 2024-11-04T11:13:07.000Z (over 1 year ago)
- Default Branch: feature/init-repo
- Last Pushed: 2024-11-10T19:05:10.000Z (over 1 year ago)
- Last Synced: 2025-03-20T03:05:10.523Z (over 1 year ago)
- Language: TypeScript
- Homepage: https://web-test-pearl.vercel.app
- Size: 1.43 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Turborepo starter
## What's inside?
This turborepo includes the following packages/apps:
### Apps and Packages
.
├── apps
│ ├── backend # NestJS app (https://nestjs.com)
│ └── web # Vite app (https://vite.dev)
└── packages
├── @repo/common # Shared monorepo resources
├── @repo/eslint-config # `eslint` configurations (includes `prettier`)
├── @repo/jest-config # `jest` configurations
└── @repo/typescript-config # `tsconfig.json`s used throughout the monorepo
Each package/app is 100% [TypeScript](https://www.typescriptlang.org/).
### Utilities
This turborepo has some additional tools already setup for you:
- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting
- [Prisma](https://prisma.io/) for database ORM
- [Jest](https://jestjs.io/) for testing
- [Docker Compose](https://docs.docker.com/compose/) for local database
### Commands
This `Turborepo` already configured useful commands for all your apps and packages.
#### Build
```bash
# Will build all the app & packages with the supported `build` script.
pnpm run build
# ℹ️ If you plan to only build apps individually,
# Please make sure you've built the packages first.
```
#### Develop
```bash
# Will run the development server for all the app & packages with the supported `dev` script.
pnpm run dev
```
#### test
```bash
# Will launch a test suites for all the app & packages with the supported `test` script.
pnpm run test
# See `@repo/jest-config` to customize the behavior.
```
#### Lint
```bash
# Will lint all the app & packages with the supported `lint` script.
# See `@repo/eslint-config` to customize the behavior.
pnpm run lint
```
#### Format
```bash
# Will format all the supported `.ts,.js,json,.tsx,.jsx` files.
# See `@repo/eslint-config/prettier-base.js` to customize the behavior.
pnpm format
```
### Database
We use [Prisma](https://prisma.io/) to manage & access our database. As such you will need a database for this project, either locally or hosted in the cloud.
To make this process easier, we offer a [`docker-compose.yml`](https://docs.docker.com/compose/) file to deploy a PostgreSQL server locally with a new database named `turborepo`:
```bash
docker-compose up -d
```
Once deployed you will need to create `.env` file in `apps/backend` in order for Prisma to have a `DATABASE_URL` environment variable to access.
```bash
touch apps/backend/.env
```
If you added a custom database name, or use a cloud based database, you will need to update the `DATABASE_URL` in your `.env` accordingly.
Once deployed & up & running, you will need to create & deploy migrations to your database to add the necessary tables. This can be done using [Prisma Migrate](https://www.prisma.io/migrate):
```bash
npx prisma migrate dev
```
If you need to push any existing migrations to the database, you can use either the Prisma db push or the Prisma migrate deploy command(s):
```bash
pnpm run prisma:push
# OR
pnpm run prisma:migrate:deploy
```
There is slight difference between the two commands & [Prisma offers a breakdown on which command is best to use](https://www.prisma.io/docs/concepts/components/prisma-migrate/db-push#choosing-db-push-or-prisma-migrate).
## Useful Links
Learn more about the power of Turborepo:
- [Tasks](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks)
- [Caching](https://turbo.build/repo/docs/core-concepts/caching)
- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching)
- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering)
- [Configuration Options](https://turbo.build/repo/docs/reference/configuration)
- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference)