Skip to content

CrewSplit is a local-first, deterministic trip expense splitter for families, built with Expo/React Native, SQLite/Drizzle, and auditable settlement math.

License

Notifications You must be signed in to change notification settings

Masked-Kunsiquat/CrewSplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrewSplit

A deterministic, family-focused trip expense-splitting app built with Expo.

Features

  • Trip Management - Create and manage trips with custom currencies and date ranges
  • Expense Tracking - Track expenses with categories, custom splits, and multi-currency support
  • Smart Settlement - Automatic calculation of who owes whom with transaction minimization
  • Participant Management - Add participants with color-coded avatars
  • Display Currency - View all amounts in your preferred currency with real-time conversion
  • Offline-First - Full functionality without internet connection
  • Pull-to-Refresh - Update data across all screens with pull-down gesture
  • Dark Mode Ready - Built with dark-mode-first design tokens

Project Structure

CrewSplit/
├── app/                    # Expo Router screens
├── src/
│   ├── modules/           # Domain modules (colocated)
│   │   ├── trips/
│   │   ├── participants/
│   │   ├── expenses/
│   │   ├── settlement/
│   │   └── sync/
│   ├── ui/                # Components, screens, design tokens
│   ├── store/             # Zustand state management
│   ├── db/                # SQLite + Drizzle ORM
│   └── utils/             # Shared utilities
├── docs/                  # Documentation
└── AGENTS.md              # Agent coordination guide

Getting Started

Installation

npm install

Development

# Start Expo development server
npm start

# Run on iOS
npm run ios

# Run on Android
npm run android

Type Checking

npm run type-check

Testing

npm test

Tech Stack

  • Expo - Cross-platform mobile framework
  • Expo Router - File-based routing
  • TypeScript - Type safety
  • SQLite + Drizzle ORM - Local database
  • Zustand - State management

Documentation

See docs/README.md for detailed documentation.

Agent Coordination

See AGENTS.md for agent responsibilities and architecture decisions.

License

See LICENSE

About

CrewSplit is a local-first, deterministic trip expense splitter for families, built with Expo/React Native, SQLite/Drizzle, and auditable settlement math.

Topics

Resources

License

Stars

Watchers

Forks