Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Ultimate Adventure Guides is a website used for advertising and booking clients with a guide for outdoor activites such as rapelling, climbing, and canyoneering.

Notifications You must be signed in to change notification settings

ch843/ultimate-adventure

Repository files navigation

Ultimate Adventure Monorepo

This is a Turborepo-managed monorepo for the Ultimate Adventure project.

Project Structure

/ultimate-adventure
├── apps/
│   ├── web/                    # Ultimate Adventure Guides (frontend)
│   ├── admin/                  # Ultimate Adventure Guides Admin (frontend)
│   ├── web-api/                # Future: Backend API for web
│   └── admin-api/              # Future: Backend API for admin
├── packages/
│   ├── shared-models/          # Shared data models and types (using Zod)
│   ├── backend-utils/          # Backend-specific utilities
│   └── tsconfig/               # Shared TypeScript configurations
├── turbo.json                  # Turborepo configuration
└── package.json                # Root package.json with workspaces

Quick Start

Install Dependencies

npm install

Development

Run all apps in development mode:

npm run dev

Run a specific app:

# Run web app only
npm run dev --filter=@ultimate-adventure/web

# Run admin app only
npm run dev --filter=@ultimate-adventure/admin

Build

Build all apps:

npm run build

Build a specific app:

# Build web app
npm run build --filter=@ultimate-adventure/web

# Build admin app
npm run build --filter=@ultimate-adventure/admin

Lint

Lint all packages:

npm run lint

Packages

@ultimate-adventure/shared-models

Shared data models and types used across all apps. Built with Zod for runtime validation.

Usage in apps:

  1. Add to package.json dependencies:
{
  "dependencies": {
    "@ultimate-adventure/shared-models": "*"
  }
}
  1. Import in your code:
import { YourModel } from '@ultimate-adventure/shared-models';

@ultimate-adventure/backend-utils

Backend-specific utilities shared between backend services.

Usage:

  1. Add to package.json dependencies (backend apps only):
{
  "dependencies": {
    "@ultimate-adventure/backend-utils": "*"
  }
}
  1. Import in your code:
import { yourUtil } from '@ultimate-adventure/backend-utils';

@ultimate-adventure/tsconfig

Shared TypeScript configurations to ensure consistency across the monorepo.

Available configs:

  • base.json - Base configuration for all packages
  • react.json - React-specific configuration for frontend apps
  • node.json - Node-specific configuration for build tools (Vite, etc.)

Usage:

{
  "extends": "@ultimate-adventure/tsconfig/react.json",
  "compilerOptions": {
    // Your app-specific overrides
  }
}

Adding New Apps

  1. Create a new directory in apps/:
mkdir apps/your-new-app
  1. Create a package.json with the naming convention:
{
  "name": "@ultimate-adventure/your-new-app",
  "version": "0.0.0",
  "private": true
}
  1. Install dependencies from the root:
npm install

Adding New Packages

  1. Create a new directory in packages/:
mkdir packages/your-package
  1. Create a package.json:
{
  "name": "@ultimate-adventure/your-package",
  "version": "0.0.0",
  "private": true,
  "main": "./src/index.ts",
  "types": "./src/index.ts"
}
  1. Install dependencies from the root:
npm install

Turborepo Features

  • Caching: Turborepo caches build outputs to speed up subsequent builds
  • Parallel Execution: Runs tasks across packages in parallel when possible
  • Dependency Graph: Automatically understands dependencies between packages
  • Remote Caching: Can be configured for team-wide cache sharing (optional)

Environment Variables

Each app manages its own .env file. Environment variables are not shared across apps by default.

  • apps/web/.env - Web app environment variables
  • apps/admin/.env - Admin app environment variables

Future Roadmap

  • Split frontend apps into separate frontend and backend
  • Add apps/web-api - Backend API for the web app
  • Add apps/admin-api - Backend API for the admin app
  • Set up shared authentication package
  • Add E2E testing setup
  • Configure remote caching for CI/CD

Resources

About

Ultimate Adventure Guides is a website used for advertising and booking clients with a guide for outdoor activites such as rapelling, climbing, and canyoneering.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •