Informal Land Documentation & Verification Platform for Central African countries
# π LandVault
**Informal Land Documentation & Verification Platform**
Bamenda, Cameroon | MVP v1.0
---
## What It Does
LandVault enables field agents to:
1. Register informal land plots with GPS coordinates
2. Capture photos and witness statements
3. Generate a Property Verification Certificate (PDF)
4. Anchor the certificate hash on Polygon blockchain β permanent, tamper-resistant proof
---
## Tech Stack
| Layer | Technology |
|-------|-----------|
| Mobile | Flutter (Android-first) |
| Auth | Firebase Auth |
| Backend | FastAPI + PostgreSQL (Render) |
| Storage | Appwrite |
| PDF | ReportLab |
| Blockchain | Polygon Amoy Testnet + Solidity |
---
## Project Structure
```
landvault/
βββ contracts/ # Solidity smart contract + Hardhat
β βββ LandVaultRegistry.sol
β βββ hardhat.config.js
β βββ scripts/deploy.js
βββ backend/ # FastAPI
β βββ main.py
β βββ models.py
β βββ auth.py
β βββ routes/
β βββ services/
βββ mobile/ # Flutter app
βββ lib/
βββ main.dart
βββ core/
βββ screens/
```
---
## Setup Guide
### 1. Smart Contract
```bash
cd contracts
npm install
cp .env.example .env
# Add your PRIVATE_KEY to .env
npx hardhat test # run tests
npx hardhat run scripts/deploy.js --network amoy # deploy
# Copy deployed address to backend .env as CONTRACT_ADDRESS
```
### 2. Backend
```bash
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
# Fill in all .env values
uvicorn main:app --reload # runs on
localhost
# API docs:
localhost
```
**Required .env values:**
- `DATABASE_URL` β PostgreSQL connection string
- `FIREBASE_SERVICE_ACCOUNT_PATH` β path to Firebase service account JSON
- `APPWRITE_*` β from your Appwrite project console
- `AGENT_PRIVATE_KEY` β MetaMask wallet private key (deployer wallet)
- `CONTRACT_ADDRESS` β from deploy script output
### 3. Flutt β¦