cameroon second market trusted place
# OfferBid Mobile
A hyper-local second-hand marketplace app built with React Native. Replaces chaotic WhatsApp/Facebook trading with a structured, searchable, hub-based catalog and a counter-bidding engine, closing every deal through a WhatsApp handshake for offline payment (cash / MoMo).
**Platform:** React Native (Android-first, iOS-ready)
**Backend:** NestJS (deployed on Render)
**Database:** PostgreSQL (managed)
---
## Table of Contents
- Quick Start
- Project Structure
- Architecture Overview
- Live Backend Endpoints
- Brand & Design Tokens
- Developer Roles
- Core User Flows
- Environment Variables
- Key Dependencies
- Development Workflow
- Data Model Reference
---
## Quick Start
```bash
# Clone the repo
git clone
github.com
cd offerbid-mobile
# Install dependencies
npm install
# Copy environment config
cp .env.example .env
# Fill in your API keys in .env
# Start Metro bundler
npm start
# Run on Android
npm run android
# Run on iOS (macOS only)
npm run ios
```
### Prerequisites
- Node.js >= 18
- React Native CLI (`npm install -g react-native-cli`)
- Android Studio + Android SDK (for Android builds)
- Xcode (for iOS builds, macOS only)
- JDK 17
---
## Project Structure
```
offerbid-mobile/
├── App.tsx # Root component
├── index.js # Entry point
├── package.json
├── tsconfig.json
├── babel.config.js
├── metro.config.js
├── app.json
├── .env.example # Environment template
├── .eslintrc.js
├── .prettierrc.js
├── .gitignore
│
├── src/
│ ├── assets/
│ │ ├── icons/ # SVG/PNG icons
│ │ └── images/ # Static images, logo
│ │
│ ├── components/ # Shared UI components
│ │ ├── Button.tsx
│ │ ├── ListingCard.tsx
│ │ ├── BidCard.tsx
│ │ ├── CategoryBadge.tsx
│ │ ├── CountdownTimer.tsx
│ │ ├── EmptyState.tsx
│ │ ├── LoadingSpinner.tsx
│ │ ├── Notificati …