Getting Started

This guide will help you set up Usertour for local development. Follow these steps to get your development environment running:

1. Fork and Clone

  1. Fork the Usertour repository
  2. Clone your fork to your local machine:
git clone git@github.com:<your-github-username>/usertour.git
cd usertour

2. System Requirements

Before proceeding, ensure you have the following installed:

  • Redis - For caching and session management
  • PostgreSQL - For data storage
  • pnpm - For package management

3. Project Structure

Usertour is a monorepo containing multiple packages:

apps/
├── server/        # Backend API server
├── web/           # Frontend web application
├── sdk/           # Usertour.js SDK

packages/          # Shared packages
├── components/    # Reusable UI components
├── radix/         # Radix UI components
└── shared/        # Shared utilities and types

4. Setup Steps

  1. Install Dependencies
pnpm install
  1. Configure Environment

Set up environment variables for each component:

# Web application
cp apps/web/.env.example apps/web/.env

# API server
cp apps/server/.env.example apps/server/.env
# Update Redis and PostgreSQL configuration in apps/server/.env

# SDK
cp apps/sdk/.env.example apps/sdk/.env
  1. Start Development Servers

You can run each component separately:

# Start the backend API server
pnpm dev:server

# Start the web application
pnpm dev:web

# Start the SDK development server
pnpm dev:sdk

Once running, you can access the web application at http://localhost:5174.

Contributing

Development Workflow

  1. Create a new branch for your feature or bug fix
  2. Make your changes following our style guidelines
  3. Add tests for new features
  4. Update documentation as needed
  5. Submit a pull request

Branch Strategy

  • main - Production-ready code
  • develop - Integration branch for new features
  • Feature branches - Created from develop for new features

Getting Help

If you need assistance:

Recognition

Contributors are featured in our README. We appreciate your help in making Usertour better!