This repository is a monorepo for all of Genius Junior's services, powered by Turborepo. View our documentation at docs.tuturuuu.com.
This turborepo uses pnpm as a package manager. It includes the following packages/apps:
app: a Next.js app with Tailwind CSS support that contains all public information about Genius Junior, including the landing page, pricing plans, branding-related resources and Genius Junior's services through a web application interface. On production, this app is located at tuturuuu.com.
ui: a stub React component library with Tailwind CSS shared by thewebapplication.eslint-config:ESLintconfigurations (includeseslint-config-nextandeslint-config-prettier).typescript-config:tsconfig.jsons used throughout the monorepo.
This turborepo has some additional tools already setup for you:
- Tailwind CSS for styles
- Shadcn UI for UI components
- TypeScript for static type checking.
- ESLint for code linting.
- Prettier for code formatting.
- Vitest for testing.
Before proceeding to the Build and Develop sections, you should have pnpm installed on your local machine. The most common way to install it is using npm:
npm install -g pnpmMore information can be found at the pnpm installation page.
After installing pnpm, you can install all dependencies by running the following command:
pnpm installor
pnpm iTo build all apps and packages, run the following command:
pnpm buildTo develop all apps and packages (without requiring a local setup), run the following command:
pnpm devTo stop development apps and packages that are running on your local machine, run the following command:
pnpm stopIn case you want to run all local development servers, run the following command:
pnpm devxRunning devx will:
- Stop the currently running supabase instance and save current data as backup (if there is any)
- Install all dependencies
- Start a new supabase instance (using backed up data)
- Start all Next.js apps in development mode
If you want to have the same procedure without the backup, you can run pnpm devrs instead. This will:
- Stop the currently running supabase instance (if there is any)
- Install all dependencies
- Start a new supabase instance (with clean data from seed.sql)
- Start all Next.js apps in development mode
In case you don't want to run a local supabase instance, you can run
pnpm devinstead.
There are 5 seed accounts that are already set up for local development:
To run all tests, run the following command:
pnpm testNote: Tests are still a work in progress. We're currently working on adding tests to all packages to ensure the best quality possible.