Skip to main content

Development Prerequisites

This guide covers all the required software and tools you need to develop BookWish.

Required Software

Flutter 3.x

BookWish uses Flutter for cross-platform mobile app development.

Required Version: Flutter 3.0.0 or higher (SDK constraint: >=3.0.0 <4.0.0)

Installation:

Verify Installation:

flutter --version
flutter doctor

The flutter doctor command will check for any missing dependencies.

Node.js 20.x

The backend API requires Node.js 20 or higher.

Required Version: Node.js 20.0.0 or higher (as specified in backend/package.json)

Installation:

  • Recommended: Use nvm (Node Version Manager)
    nvm install 20
    nvm use 20
  • Alternative: Download directly from nodejs.org

Verify Installation:

node --version  # Should show v20.x.x or higher
npm --version # npm is bundled with Node.js

PostgreSQL 15.x

PostgreSQL is used as the primary database.

Required Version: PostgreSQL 15.x (compatible with Prisma 5.8.0)

Installation:

  • macOS: brew install postgresql@15
  • Ubuntu/Debian:
    sudo apt update
    sudo apt install postgresql-15 postgresql-contrib-15
  • Windows: Download from postgresql.org

Alternative: Use a hosted PostgreSQL service like Supabase (recommended for development)

Verify Installation:

psql --version  # Should show psql (PostgreSQL) 15.x

Redis

Redis is used for caching, rate limiting, and job queues (Bull).

Installation:

  • macOS: brew install redis
  • Ubuntu/Debian: sudo apt install redis-server
  • Windows: Use WSL or Memurai

Alternative: Use a hosted Redis service like Railway or Upstash

Verify Installation:

redis-cli --version
redis-cli ping # Should return PONG

Code Editors

Visual Studio Code (Recommended)

Android Studio (Required for Android development)

Xcode (Required for iOS development on macOS)

  • Install from the Mac App Store
  • Run sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
  • Run sudo xcodebuild -runFirstLaunch

Mobile Device Setup

iOS Simulator (macOS only)

open -a Simulator

Android Emulator

  • Set up through Android Studio > AVD Manager
  • Or use a physical device with USB debugging enabled

API Development Tools

Postman or Insomnia

  • For testing API endpoints
  • Import the BookWish API collection (if available)

Prisma Studio (included with Prisma)

cd backend
npx prisma studio

Opens a visual database browser at http://localhost:5555

Version Control

Git (Required)

git --version  # Should show git version 2.x or higher

Platform-Specific Requirements

macOS

All platforms are supported. Install Xcode for iOS development:

xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license accept

Install CocoaPods (required for iOS dependencies):

sudo gem install cocoapods

Linux

Install additional dependencies for Flutter:

sudo apt-get install \
curl git unzip xz-utils zip libglu1-mesa \
clang cmake ninja-build pkg-config libgtk-3-dev

Windows

  • Enable Developer Mode in Windows Settings
  • Install Git Bash or WSL for Unix commands
  • Use Windows Subsystem for Linux (WSL2) for Redis

Verification Checklist

Run these commands to verify your development environment:

# Flutter
flutter doctor -v

# Node.js and npm
node --version
npm --version

# PostgreSQL
psql --version

# Redis
redis-cli ping

# Git
git --version

# iOS (macOS only)
xcodebuild -version

# Android
flutter doctor | grep "Android toolchain"

Next Steps

Once you have all prerequisites installed, proceed to Environment Setup to clone the repository and configure your development environment.