Getting Started
This guide covers setting up your development environment for DiveSuite.
Prerequisites
Section titled “Prerequisites”Required
Section titled “Required”| Tool | Version | Purpose |
|---|---|---|
| Node.js | 22+ | JavaScript runtime (see .nvmrc) |
| npm | 10+ | Package manager |
| Git | 2.x | Version control |
For Deco Engine Development
Section titled “For Deco Engine Development”| Tool | Version | Purpose |
|---|---|---|
| Rust | stable | Deco engine language |
| wasm-pack | latest | Rust -> WASM compiler |
| cargo | (with Rust) | Rust package manager |
For Mobile Testing
Section titled “For Mobile Testing”| Tool | Purpose |
|---|---|
| Xcode | iOS simulator and builds |
| Android Studio | Android emulator and builds |
| Expo Go app | Quick testing on physical devices |
Installation
Section titled “Installation”1. Clone the Repository
Section titled “1. Clone the Repository”git clone https://github.com/DiveSuite/app.gitcd DiveSuite2. Install Node.js Dependencies
Section titled “2. Install Node.js Dependencies”# Use correct Node versionnvm use # reads .nvmrc
# Install dependenciesnpm install3. Install Rust Toolchain (for deco engine)
Section titled “3. Install Rust Toolchain (for deco engine)”# Install Rustcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WASM targetrustup target add wasm32-unknown-unknown
# Install wasm-packcargo install wasm-pack4. Build the Deco Engine
Section titled “4. Build the Deco Engine”cd rust-enginewasm-pack build --target webcd ..Running the App
Section titled “Running the App”Development Mode
Section titled “Development Mode”# Start Expo development servernpx expo start
# Options:# - Press 'i' for iOS simulator# - Press 'a' for Android emulator# - Press 'w' for web browser# - Scan QR code with Expo Go app on deviceRunning Tests
Section titled “Running Tests”# TypeScript testsnpm test
# Rust testscd rust-engine && cargo test
# With coveragenpm test -- --coverageBuilding for Production
Section titled “Building for Production”# Webnpx expo export --platform web
# iOS/Android (requires EAS CLI)npx eas build --platform iosnpx eas build --platform androidProject Configuration
Section titled “Project Configuration”Key Files
Section titled “Key Files”| File | Purpose |
|---|---|
app.json | Expo configuration |
tsconfig.json | TypeScript settings (strict mode) |
.nvmrc | Node.js version (22) |
.editorconfig | Editor formatting rules |
mkdocs.yml | Documentation site config |
CLAUDE.md | AI assistant instructions |
Path Aliases
Section titled “Path Aliases”The project uses path aliases for clean imports:
// Instead of:import { DiveLog } from '../../../core/models/dive-log';
// Use:import { DiveLog } from '@core/models/dive-log';| Alias | Path |
|---|---|
@core/ | src/core/ |
@features/ | src/features/ |
@shared/ | src/shared/ |
Next Steps
Section titled “Next Steps”- Read the Project Structure guide
- Review Coding Standards
- Understand the Testing Strategy
- Check the Architecture Overview