# Scandic Monorepo This is the monorepo for Scandic Hotels' web projects. It includes multiple apps and packages that together make up the Scandic Hotels web ecosystem. ## What's inside? ### Apps Inside the `/apps` directory, you'll find our standalone sites and APIs: - `scandic-web`: [Next.js](https://nextjs.org/) app for our public website [scandichotels.com](https://scandichotels.com). - `scandic-redirect`: Netlify Functions that handle redirects for `scandic-web`. - `partner-sas`: [Next.js](https://nextjs.org/) app for our partner site [sas.scandichotels.com](https://sas.scandichotels.com). (⚠️ Work in progress ⚠️) - `redis-api`: API wrapping [Redis](https://redis.io/) that we use for caching. ### Packages Inside the `/packages` directory, you'll find our shared libraries and utilities: - `design-system`: A shared library of styles and components used by our React apps. - `booking-flow`: This is our booking flow that is used by both `scandic-web` and `partner-sas`. It's built to be used by a [Next.js](https://nextjs.org/) app. - `trpc`: A [tRPC](https://trpc.io/) data layer that connects our apps and packages to the backend APIs. - `common`: A collection of shared utilities, helpers and types used across both our apps and our packages. - `typescript-config`: Shared TypeScript configs for all apps and packages. > A note about dependencies between our apps and packages: > In general all apps are allowed to depend on any package, but packages have a few caveats: > > `design-system` should never import from `booking-flow` or `trpc`. > `common` should never import from anything except `typescript-config`. ## Getting Started To get started, clone this repository and run `yarn install` in the root directory. We use [Turbo](https://turborepo.com/) to handle our monorepo tasks. See `package.json` for all available scripts, but here's the most commonly used: - `yarn dev:web`: Start the development server for the `scandic-web` app. - `yarn dev:sas`: Start the development server for the `partner-sas` app. - `yarn dev:ds`: Start the development server for the `design-system` package. - `yarn lint`: Run ESLint and type checking across all apps and packages. - `yarn test`: Run tests for the codebase. If this is the first time you are running one of our apps you can run `yarn env:web` or `yarn env:sas` to see what environment variables you need for those apps. For more details see the respective apps and packages' README files. ## More documentation - [Deploy](./docs/deploy.md) - [Icons](./docs/icons.md) - [Payment](./docs/payment.md) - [Translations (i18n)](./docs/translations.md)