Skip to content

Offline-first serverless IoT data ingestion pipeline for water quality monitoring (Lake Victoria) running entirely on LocalStack.

Notifications You must be signed in to change notification settings

Victoria-Sentinel/sentinel-ingest-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sentinel Ingest API

Offline-first serverless IoT data ingestion pipeline for water quality monitoring (Lake Victoria) running entirely on LocalStack.

Architecture

This project simulates a real-world IoT data ingestion system using:

  • AWS Lambda - Serverless compute for data processing

  • Amazon API Gateway - REST API endpoint for data ingestion

  • Amazon DynamoDB - NoSQL database for sensor readings

  • LocalStack - Local AWS cloud stack for offline development

    Simple architecture

Quick Start

Prerequisites

  • Docker and Docker Compose
  • Python 3.11+
  • Terraform
  • Make

Running the Project

  1. Start LocalStack

    make up
  2. Initialize and Deploy Infrastructure

    make init
    make deploy
  3. Test the API

    make test-curl
  4. Stop LocalStack

    make down

Data Format

Send POST requests to /ingest endpoint with:

{
  "sensor_id": "sensor-001",
  "ph_level": 7.2,
  "turbidity": 15.3
}

Project Structure

├── docker-compose.yml      # LocalStack environment
├── infra/                  # Terraform infrastructure
├── src/                    # Lambda function code
├── Makefile               # Development commands
└── README.md              # This file

About

Offline-first serverless IoT data ingestion pipeline for water quality monitoring (Lake Victoria) running entirely on LocalStack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 47.4%
  • Makefile 31.6%
  • Python 21.0%