A modern React Native mobile application for booking services, built with Expo.
This project follows a feature-based architecture for better scalability and maintainability.
src/
├── features/ # Feature modules (self-contained)
│ ├── auth/ # Authentication & authorization
│ ├── user/ # User-facing features
│ ├── provider/ # Service provider features
│ └── booking/ # Booking management
├── shared/ # Shared across all features
│ ├── components/ # Reusable UI components
│ ├── hooks/ # Common React hooks
│ ├── utils/ # Helper functions
│ └── constants/ # App-wide constants
├── core/ # Core app functionality
│ ├── navigation/ # Navigation setup
│ ├── services/ # API & data services
│ └── types/ # Global TypeScript types
└── config/ # App configuration
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- Expo Go app (for testing on device)
npm install# Start development server
npm start
# Run on Android
npm run android
# Run on iOS
npm run ios
# Clear cache and start
npm run start:clear-
User Features
- Browse and search services
- Book appointments
- Manage bookings
- Leave reviews
- Location-based search
-
Provider Features
- Dashboard with analytics
- Manage services
- View appointments
- Track earnings
- Respond to reviews
-
Authentication
- Role-based login (User/Provider)
- Registration flows
- Demo mode for testing
- React Native 0.81.5
- Expo ~54.0
- React Navigation 7.x
- TypeScript
- React Context API for state management
- Restructure Guide - Details about the new architecture
- Quick Start - Getting started guide
- Expo Setup - Expo Go configuration
The project uses a feature-based architecture where each feature is self-contained with its own:
- Components
- Screens
- Context/State
- Hooks
- Types (if feature-specific)
Shared code is explicitly separated in the shared/ directory, and core functionality lives in core/.
Private