Skip to main content

Development Guide

Welcome to the development documentation for Remind Tools. This guide covers everything you need to start developing, from environment setup to deployment.

Quick Start

1

Clone Repository

git clone https://github.com/design4pro/remind_tools.git
cd remind_tools
2

Install Dependencies

# Install Flutter and Dart
./scripts/dev_setup.sh

# Bootstrap Melos workspace
melos bootstrap
3

Run Development

# Run Trips app
melos run trips:dev

# Run Money app
melos run money:dev

Documentation Structure

Environment Setup

Complete development environment configuration

Git Flow

Branching strategy and version control

GitHub Standards

Issue and PR guidelines

Melos Workspace

Monorepo management with Melos

Supabase Setup

Backend configuration and database setup

Claude Commands

AI-assisted development commands

Development Workflow

Branch Strategy

We follow Git Flow:
  • main - Production-ready code
  • develop - Integration branch
  • feature/* - New features
  • bugfix/* - Bug fixes
  • release/* - Release preparation
  • hotfix/* - Production fixes

Code Quality

# Run all tests
melos test

# Run with coverage
melos run coverage

Key Commands

Development

  • melos run trips:dev - Run Trips app in debug mode
  • melos run money:dev - Run Money app in debug mode
  • melos run generate - Run code generation

Build & Deploy

  • melos run build:all - Build for all platforms
  • melos run build:android - Build Android APK
  • melos run build:ios - Build iOS
  • melos run build:web - Build web version

Utilities

  • melos clean - Clean all packages
  • melos run upgrade - Upgrade dependencies
  • melos run audit - Security audit

Best Practices

  1. Code Style
    • Follow Dart effective style guide
    • Use meaningful variable names
    • Write self-documenting code
  2. Testing
    • Maintain 80%+ code coverage
    • Write unit, widget, and integration tests
    • Use golden tests for UI consistency
  3. Documentation
    • Document public APIs
    • Update documentation with features
    • Use clear commit messages
  4. Performance
    • Profile before optimizing
    • Use const constructors
    • Implement lazy loading