Skip to content

TejasThombare20/RuleEngine-WeatherMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Full Stack Applications - Rule Engine & Weather Monitor

This repository contains two full-stack applications: a Rule Engine and a Weather Monitoring system. Both applications are containerized using Docker for easy deployment and testing.

Deploy link :

Table of Contents

Overview

Features

Setup & Installation

Technical Details

Main :

Technology Stack

Rule Engine Application

  • Frontend: Next.js
  • Backend: Golang (Gin Framework)
  • Database: MongoDB

Weather Monitor Application

  • Frontend: Next.js
  • Backend: Golang (Gin Framework)
  • Database: PostgreSQL (TimescaleDB)

Application Features

Rule Engine Application

Core Features:

  • Rule Creation and Management
    • Create individual rules with multiple conditions
    • Combine 2+ rules with complex logical operations
    • Real-time rule evaluation based on input data

Query Optimization:

  • Optimized queries for:
    • Rule creation
    • Rule combination
    • Rule evaluation
    • Rule optimization

Advanced Rule Combination Heuristics:

  • Intelligent rule merging strategy:
    • Identifies and isolates common conditions for single evaluation
    • Preserves rule semantics during combination
    • Rules without common conditions: Combined using AND operations
    • Rules with common conditions: Merged using OR operations after extracting common conditions

Weather Monitoring Application

Core Features:

  • Multi-City Weather Tracking
    • Real-time monitoring of three cities
    • Data collection every 5 minutes
    • Tracks:
      • Current temperature
      • "Feels like" temperature
      • Dominant weather condition

Data Analysis:

  • Daily Data Aggregation and Rollups:
    • Maximum temperature
    • Minimum temperature
    • Average temperature
    • Per-city analysis

Advanced Features:

  • Customizable Alert System
    • User-defined temperature thresholds for each city
    • Automated notification system
    • City-specific alert configurations

Performance Optimization:

  • Query optimization using:
    • Database Views
    • TimescaleDB time_bucket function
    • Efficient data rollup strategies

Getting Started

There are two ways to run these applications:

Option 1: Using Docker Compose

  1. Clone the repository:
git clone https://github.com/TejasThombare20/RuleEngine-WeatherMonitor.git
cd zeotap
  1. Start all services using Docker Compose:
docker-compose up -d
  1. Access the applications:

Option 2: Using Pre-built Docker Image

  1. Pull the image:
docker pull tejasthombare/zeotap
  1. Run the container:
docker run -d \
  -p 3001:3000 \
  -p 3002:3000 \
  -p 8000:8000 \
  -p 9000:9000 \
  tejasthombare/zeotap
  1. Access the applications:

Application Ports

Rule Engine

  • Frontend: 3001
  • Backend API: 8000

Weather Monitor

  • Frontend: 3002
  • Backend API: 9000

Project Structure

.
├── rule_engine/
│   ├── client/          # Next.js frontend
│   └── server/          # Golang backend
├── weather_monitoring/
│   ├── client/          # Next.js frontend
│   └── server/          # Golang backend
├── Dockerfile
├── docker-compose.yml
└── README.md

Releases

No releases published

Packages

No packages published