Project Title: TideWatch – Real-Time Coastal Flood Monitoring & Early Warning System Competition: Gaiathon Africa 2025 Team: Team TideWatch Team Lead: [Prince Philips Adorboe] Members: [Nkansah Tabi], [Thelma Akuffo], [Luqman]
TideWatch is a low-cost, solar-powered, smart buoy system designed to monitor critical coastal environmental conditions and provide real-time alerts for potential flooding. It is engineered to serve vulnerable coastal communities in Africa with limited access to high-tech flood detection infrastructure.
The system collects data via sensors on a buoy, transmits it via LoRa or GSM, processes it through a FastAPI backend, stores it in Firebase, and visualizes it through a modern, mobile-responsive dashboard built in Next.js.
Coastal communities in Ghana and across Africa face increasing threats from rising sea levels, storm surges, and unpredictable flooding. Most regions lack localized, real-time monitoring tools to issue early warnings and prevent loss of life and property.
- Real-time environmental monitoring via smart buoy sensors
- Data metrics: Wave height, water level, wind speed & direction, temperature, humidity, air pressure, rainfall
- Secure data transmission over LoRa or GSM
- Backend API with JWT authentication
- Data storage using Firebase Realtime Database
- Interactive web dashboard with charts, status indicators, and logs
- Timeframe toggle (24h, 7d, 30d) with % change analytics
- Mobile responsive and dark mode ready
- Frontend: Next.js, TypeScript, TailwindCSS, Recharts, Zustand, React Query
- Backend: FastAPI, Python, Firebase Admin SDK
- Data Flow: MQTT, LoRa/GSM modules, JSON APIs
- Auth: JWT-based secured API routes(currently not employed)
- Database: PostgreSQL DB
- Hardware: ESP32, waterproof pressure transducer, DHT11, LoRa module, solar panel and a Raspberry Pi Microprocessor.
├── frontend/ # Next.js client app
│ ├── pages/
│ ├── components/
│ ├── hooks/
│ ├── store/
│ └── public/
├── backend/ # FastAPI backend
│ ├── main.py
│ ├── auth.py
│ └── routes/
- Node.js v18+
- Python 3.9+
- PostgreSql account & credentials
cd frontend
npm install
npm run devcd backend
```activate virtual environment ```
uvicorn main:app --reloadCreate .env files in both frontend/ and backend/ using the .env.example templates.
POST /api/ingest # Store sensor data
GET /api/metrics?timeframe=24h # Get metric history
GET /api/logs # Recent threshold breach logs
{
"name": "Wave Height",
"unit": "cm",
"value": 142,
"status": "warning",
"change": 9.8,
"history": [
{ "timestamp": "2024-05-28T12:00:00Z", "value": 130 },
{ "timestamp": "2024-05-28T13:00:00Z", "value": 140 },
{ "timestamp": "2024-05-28T14:00:00Z", "value": 142 }
]
}# frontend/.env.local
NEXT_PUBLIC_API_KEY=your_public_token
# backend/.env
PostgreSql Database= coastal_db
PostgreSql password= ******
- Provides real-time flood warnings for vulnerable coastal populations
- Can be locally assembled using low-cost materials
- Adaptable for disaster response, climate research, education
- Add real-time MQTT → WebSocket pipeline
- Integrate machine learning for flood prediction (future implementation)
- Scale deployments to additional West African countries
- Offline-first Web app for remote field authorised access.
- University Of Ghana, Legon
- School of Engineering Sciences, UG
- Computer Engineering Department @SES, UG
- Gaiathon Africa Competitions
- Open source libraries and community contributors & pROJECT sUPERVISORS
- Ghana’s coastal communities for inspiring this project
Coming soon*
Team Lead: [Prince Phil] – [princephil403@gmail.com] GitHub Repo: (https://github.com/themannnphil/coastal)
“We’re building the low-cost, real-time early warning system Africa needs to stay ahead of the tide.” 🌊
