Skip to main content

17 - Development Guide

Setup Development Environment

# Clone repository
git clone https://github.com/ribato22/multiwa.git
cd multiwa

# Install dependencies
pnpm install

# Setup environment
cp .env.example .env

# Start PostgreSQL and Redis
docker compose up -d db redis

# Run migrations
pnpm prisma migrate dev

# Start development servers
pnpm dev

Project Structure

multiwa/
├── apps/
│ ├── api/ # NestJS Backend
│ │ ├── src/
│ │ │ ├── modules/ # Feature modules
│ │ │ ├── common/ # Shared utilities
│ │ │ └── main.ts
│ │ └── Dockerfile
│ └── admin/ # Next.js Dashboard
│ ├── app/
│ ├── components/
│ └── Dockerfile
├── packages/
│ ├── prisma/ # Database schema
│ ├── sdk-python/ # Python SDK
│ └── sdk-php/ # PHP SDK
├── docs/ # Documentation
└── docker-compose.yml

Adding a New Module

  1. Create module directory:
mkdir -p apps/api/src/modules/myfeature
  1. Create files:
myfeature/
├── dto/
│ └── index.ts
├── myfeature.controller.ts
├── myfeature.service.ts
└── myfeature.module.ts
  1. Register in app.module.ts:
import { MyFeatureModule } from './modules/myfeature/myfeature.module';

@Module({
imports: [..., MyFeatureModule],
})

Testing

# Unit tests
pnpm test

# E2E tests
pnpm test:e2e

# Coverage
pnpm test:cov

Code Style

  • ESLint + Prettier for formatting
  • Conventional Commits for commit messages
# Lint
pnpm lint

# Format
pnpm format

Pull Request Checklist

  • Tests pass (pnpm test)
  • Lint passes (pnpm lint)
  • Docs updated if needed
  • Conventional commit message

Useful Commands

CommandDescription
pnpm devStart dev servers
pnpm buildBuild production
pnpm prisma studioOpen Prisma Studio
pnpm prisma migrate devRun migrations
pnpm testRun tests

← Docker Deployment · Documentation Index