LivestockGuard is an embedded firmware + cloud platform system designed to be installed on various GPS tag hardware (collars, ear tags, boluses) for livestock tracking, geofencing, theft prevention, and herd management — initially targeting South African cattle, sheep, and goat farmers.
# LivestockGuard
**GPS livestock tracking & geofencing platform for South African farmers.**
Real-time animal monitoring, virtual fencing, theft detection, and herd health — delivered through affordable GPS collars, BLE ear tags, and a cloud-connected dashboard with mobile app.
---
## Table of Contents
- Quick Start (One Command)
- Prerequisites
- First-Time Setup
- Running the Platform
- Demo Modes
- All Make Targets
- System Architecture
- Project Structure
- Key Features
- Demo Credentials
- Testing
- Documentation
- Tech Stack
---
## Quick Start (One Command)
```bash
# Clone and run the FULL platform (all 3 farms, all sims, dashboard + mobile):
git clone
github.com
cd livestockguard
make setup # installs backend deps, starts Docker, seeds DB
make setup-frontend # installs dashboard + mobile deps, checks native prerequisites
make demo # launches EVERYTHING: 65 animals, 3 farms, dashboard, mobile app
```
Open **
http://localhost:5173** (dashboard) or **
http://localhost:8082** (mobile app).
Log in with any of:
- `africa.mydrive@gmail.com` / `demo123` (Boschhoek, Free State)
- `lochvaal@livestockguard.co.za` / `demo123` (Loch Vaal, Gauteng)
- `sibanyoni@livestockguard.co.za` / `demo123` (Sibanyoni, North West)
> **Development (no simulators):** `make dev` starts backend + dashboard + mobile without any simulators — use when coding or connected to real hardware.
---
## Prerequisites
| Requirement | Version | Install (macOS) |
|-------------|---------|-----------------|
| Docker + Compose | 24+ | `brew install colima docker docker-compose` then `colima start` |
| Node.js | 18+ | `brew install node` |
| Python | 3.10+ | `brew install python3` |
| Git | any | `brew install git` |
> **Colima users:** Link the Compose plugin so `docker compose` (v2) works:
> ```bash
> mkdir -p ~/.docker/cli-plugins
> ln -sfn /opt/homebrew/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docke …