Bilingual rental marketplace for Cameroon
# π LoyerMboa β Trouvez votre chez-vous / Find your home
**Bilingual (FR/EN) rental marketplace for Cameroon.**
---
## Project Structure
```
loyermboa/
βββ backend/ # Node.js + Express REST API
β βββ src/
β β βββ config/ # DB & JWT config
β β βββ controllers/ # Business logic
β β βββ middleware/ # Auth, RBAC, validation
β β βββ models/ # Mongoose/DB models
β β βββ routes/ # API routes
β β βββ utils/ # Helpers
β βββ package.json
βββ frontend/ # React.js SPA (bilingual)
β βββ src/
β β βββ components/ # Reusable UI
β β βββ pages/ # Route pages
β β βββ context/ # App state & i18n
β β βββ locales/ # FR & EN translations
β β βββ hooks/ # Custom hooks
β β βββ utils/ # API client, helpers
β βββ package.json
βββ package.json # Root monorepo scripts
```
## Quick Start
### Prerequisites
- Node.js >= 18
- MongoDB running locally OR set `MONGO_URI` in `.env`
### 1. Install all dependencies
```bash
npm run install:all
```
### 2. Configure environment
```bash
cp backend/.env.example backend/.env
# Edit backend/.env with your values
```
### 3. Run (both frontend + backend)
```bash
npm run dev
```
- **Backend API**:
localhost
- **Frontend**:
localhost
---
## API Endpoints
### Auth
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/api/auth/register` | Register (tenant or landlord) |
| POST | `/api/auth/login` | Login β JWT token |
| POST | `/api/auth/logout` | Logout |
| GET | `/api/auth/profile` | Get own profile |
| PUT | `/api/auth/profile` | Update profile |
### Properties
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/api/properties` | All verified properties |
| GET | `/api/properties/search` | Search + filter |
| GET | `/api/properties/:id` | Single property |
| POST | `/api/properties` | Create (landlord only) |
| PUT | `/api/propertie β¦