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:
- macOS/Linux: Follow the official Flutter installation guide
- Windows: Download from Flutter SDK releases
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:
Alternative: Use a hosted Redis service like Railway or Upstash
Verify Installation:
redis-cli --version
redis-cli ping # Should return PONG
Recommended Development Tools
Code Editors
Visual Studio Code (Recommended)
- Install the Flutter extension
- Install the Dart extension
- Install the Prisma extension
Android Studio (Required for Android development)
- Download from developer.android.com/studio
- Includes Android SDK and emulator
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.