https://github.com/tejasthombare20/ruleengine-weathermonitor
https://github.com/tejasthombare20/ruleengine-weathermonitor
golang heuristic-search-algorithms nextjs postgresql-database query-optimizer tailwindcss timescaledb timeseries-database weather-api
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tejasthombare20/ruleengine-weathermonitor
- Owner: TejasThombare20
- Created: 2024-10-26T17:48:17.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-29T06:13:50.000Z (about 1 year ago)
- Last Synced: 2025-03-16T13:23:50.468Z (8 months ago)
- Topics: golang, heuristic-search-algorithms, nextjs, postgresql-database, query-optimizer, tailwindcss, timescaledb, timeseries-database, weather-api
- Language: TypeScript
- Homepage:
- Size: 53.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# 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 :
- Rule Engine with AST: https://rule-engine-sand.vercel.app/
- Weather Monitor : https://weather-monitor-tau.vercel.app/
# Table of Contents
## Overview
- [Full Stack Applications - Rule Engine & Weather Monitor](#full-stack-applications---rule-engine--weather-monitor)
- [Technology Stack](#technology-stack)
- [Rule Engine Application](#rule-engine-application)
- [Weather Monitor Application](#weather-monitor-application)
## Features
- [Application Features](#application-features)
- [Rule Engine Application](#rule-engine-application-1)
- [Core Features](#core-features)
- [Query Optimization](#query-optimization)
- [Advanced Rule Combination Heuristics](#advanced-rule-combination-heuristics)
- [Weather Monitoring Application](#weather-monitoring-application)
- [Core Features](#core-features-1)
- [Data Analysis](#data-analysis)
- [Advanced Features](#advanced-features)
- [Performance Optimization](#performance-optimization)
## Setup & Installation
- [Getting Started](#getting-started)
- [Option 1: Using Docker Compose](#option-1-using-docker-compose)
- [Option 2: Using Pre-built Docker Image](#option-2-using-pre-built-docker-image)
## Technical Details
- [Application Ports](#application-ports)
- [Rule Engine](#rule-engine)
- [Weather Monitor](#weather-monitor)
## 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:
```bash
git clone https://github.com/TejasThombare20/RuleEngine-WeatherMonitor.git
cd zeotap
```
2. Start all services using Docker Compose:
```bash
docker-compose up -d
```
3. Access the applications:
- Rule Engine: http://localhost:3001
- Weather Monitor: http://localhost:3002
### Option 2: Using Pre-built Docker Image
1. Pull the image:
```bash
docker pull tejasthombare/zeotap
```
2. Run the container:
```bash
docker run -d \
-p 3001:3000 \
-p 3002:3000 \
-p 8000:8000 \
-p 9000:9000 \
tejasthombare/zeotap
```
3. Access the applications:
- Rule Engine Frontend: http://localhost:3001
- Rule Engine Backend: http://localhost:8000
- Weather Monitor Frontend: http://localhost:3002
- Weather Monitor Backend: http://localhost:9000
## 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
```