A TypeScript-based platform for managing AZAV coaching businesses. This monorepo contains multiple applications and packages that work together to provide a comprehensive coaching management solution.
This is a monorepo managed with pnpm workspaces, containing:
-
apps/web
: The main web application built with Next.js- Handles the primary user interface
- Integrates with Daily.co for video functionality
- Includes analytics and real-time features
- Uses AI capabilities through OpenAI integration
-
apps/video
: Video generation service- Built with Remotion for programmatic video creation
- Includes support for animations and transitions
- Integrates with AI services for content generation
The repository includes several shared packages that are used across applications:
@octocoach/auth
: Authentication utilities@octocoach/charts
: Charting and visualization components@octocoach/daily
: Daily.co integration utilities@octocoach/db
: Database access layer@octocoach/i18n
: Internationalization utilities@octocoach/ui
: Shared UI components@octocoach/tshelpers
: TypeScript utility types and helpers@octocoach/typescript-config
: Shared TypeScript configuration
- Docker Desktop (Windows/macOS) or Docker Engine (Linux)
- Visual Studio Code
- Dev Containers extension
That's it! All other dependencies (Node.js, pnpm, etc.) are handled within the development container.
The project uses DevContainers for a consistent development environment. The setup includes:
-
Three main services:
app
: Main application containerdb
: PostgreSQL databasedb_proxy
: WebSocket proxy for database connections
-
Exposed ports:
- 3000: Web application
- 5433: Database WebSocket proxy
- 6432: PostgreSQL database
- Clone the repository:
git clone https://github.com/octocoach/octocoach.git
- Open in VS Code:
code octocoach
- When prompted, click "Reopen in Container", or:
- Press F1 or Ctrl/Cmd + Shift + P
- Type "Dev Containers: Reopen in Container"
- Press Enter
The container will automatically:
- Set up the development environment
- Install all dependencies
- Configure the database
- Prepare the development servers
To learn more about working with Dev Containers, see the official documentation.
Once the container is ready:
pnpm dev
The development container comes pre-configured with:
- Prettier for code formatting
- Docker tools
- SQL Tools with PostgreSQL support
- TypeScript error highlighting
pnpm dev
: Start all applications in development modepnpm build
: Build all applications and packagespnpm lint
: Run linting across all projectspnpm format
: Format all files using Prettierpnpm test
: Run tests using Vitest
- Frontend: Next.js, React
- Backend: Node.js
- Database: PostgreSQL
- Video Processing: Remotion
- AI Integration: OpenAI
- Containerization: Docker
- Package Management: pnpm