Skip to content

Shrishagk/AURA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

 β–„β–„β–„Β· β–„β€’ β–„β–Œβ–„β–„β–„   β–„β–„β–„Β·
β–β–ˆ β–€β–ˆ β–ˆβ–ͺβ–ˆβ–ˆβ–Œβ–€β–„ β–ˆΒ·β–β–ˆ β–€β–ˆ
β–„β–ˆβ–€β–€β–ˆ β–ˆβ–Œβ–β–ˆβ–Œβ–β–€β–€β–„ β–„β–ˆβ–€β–€β–ˆ
β–β–ˆ β–ͺβ–β–Œβ–β–ˆβ–„β–ˆβ–Œβ–β–ˆβ€’β–ˆβ–Œβ–β–ˆ β–ͺβ–β–Œ
 β–€  β–€  β–€β–€β–€ .β–€  β–€ β–€  β–€

Anomaly Intelligence Platform β€” v2.0

The internet generates signals. AURA reads them.

Platform Firebase Chart.js Auth License


⚑ What Problem Does AURA Solve?

Every day, billions of posts move across social platforms. Most are noise.
A few are signals β€” coordinated spikes, sudden drops, viral cascades β€” that tell you something real is happening.

Traditional analytics tools tell you what happened.
AURA tells you why it happened β€” and flags it before you even notice.

AURA is not a dashboard. It's a behavioral surveillance layer built on top of social data.


🎬 Feature Walkthrough

πŸ” Authentication β€” Built for Real Users

AURA ships with a complete, production-grade auth system β€” not a placeholder login screen.

Method Details
πŸ“§ Email / Password Full registration, login, forgot-password flow
🟦 Google SSO One-click sign-in via Firebase OAuth popup
πŸ”’ Secure isolation Each user's data lives in their own Firestore subcollection
πŸ›‘οΈ Settings Update display name, change password, delete account β€” all from within the app

The authentication layer is complete end-to-end β€” password strength meter, loading spinners, error code mapping, enter-key shortcuts, and eye-toggle for password fields included.


πŸ“Š Interactive Dashboard

The command center. Everything you need, nothing you don't.

4 Live KPI Cards β€” each with an accent gradient, delta indicator, and shimmer skeleton loader while data populates:

Card What it tracks
🟣 Anomalies Detected Count of flagged records vs. total dataset
πŸ”΄ Events Flagged Total event clusters + critical count
🟒 Avg Confidence Weighted mean confidence score across events
🟑 Total Engagement Cumulative engagement across all platforms

Advanced Filter Bar β€” filter by platform, topic, type (spike/drop), severity (low β†’ critical), and keyword search (debounced at 280ms to avoid excessive re-renders).

4 Synchronized Charts β€” all update instantly on every filter change:

πŸ“ˆ Timeline     β†’ Engagement + anomaly frequency over 30 days (dual-axis line)
🍩 Platform     β†’ Breakdown of anomaly count per platform (doughnut)
πŸ“Š Topic        β†’ Horizontal bar showing anomaly-heavy topics
πŸ”΅ Scatter      β†’ Sentiment vs. Engagement β€” reveals hidden clusters

⚠️ Anomaly Detection Engine

Each anomaly record carries:

{
  "timestamp":        "ISO-8601 datetime",
  "platform":         "Twitter | Instagram | Reddit | TikTok | ...",
  "topic_category":   "Politics | Sports | Technology | ...",
  "engagement_score": 84.7,
  "sentiment_score":  -0.312,
  "anomaly_pred":     1,
  "detected_type":    "spike | drop",
  "anomaly_reason":   "Z-score threshold exceeded by 3.2Οƒ",
  "confidence_score": 0.934,
  "anomaly_strength": 4.1,
  "hashtags":         "#trending #viral #tech",
  "event_id":         "EVT007"
}

Detection types include:

  • Viral Spikes β€” engagement surges beyond statistical thresholds
  • Engagement Drops β€” sudden unexplained activity collapses
  • Coordinated Activity β€” bot-like behaviour cluster patterns
  • Sentiment Reversals β€” sudden shift in community tone

πŸ“¦ Event Intelligence System

Raw anomalies alone are noisy. AURA clusters them into Events β€” meaningful named groupings that map to real-world moments.

Every event contains:

Event ID      β†’ Unique identifier (EVT001 – EVT999)
Event Label   β†’ Human-readable name ("Tech Conference Surge")
Platform      β†’ Dominant platform for this event
Topic         β†’ Dominant topic category
Post Count    β†’ Volume of posts in the cluster
Confidence    β†’ Mean confidence score across member anomalies
Intensity     β†’ low | medium | high | critical
Time Window   β†’ start_time β†’ end_time
Top Hashtags  β†’ Most prevalent hashtags in the cluster
AI Explanation→ Auto-generated reasoning for why this event was flagged

Events are displayed both in a scannable table (top 50, sortable) and in a grid of expandable cards in the dedicated Events tab.


🧠 AI Explanation Panel

Click any event β€” anywhere in the app β€” to open a side-panel detail view with:

  • Full event metadata and confidence bar
  • AI-generated contextual reasoning
  • Engagement peak + post volume stats
  • Duration (auto-computed from start/end timestamps)
  • Hashtag cloud
  • Severity and type badges

The panel slides in from the right with a smooth 320ms cubic-bezier animation and a backdrop overlay.


πŸ“‚ Data Upload System

AURA speaks two data formats natively:

JSON β€” accepts either:

{ "anomalies": [...], "events": [...] }   // Pre-split structure
[{ "engagement_score": ..., ... }]         // Raw array (auto-detected)

CSV β€” any CSV with recognizable column names. AURA auto-normalizes column variants:

Canonical Field Also recognized as
timestamp date, created_at, ts
platform source, network
engagement_score engagement, score, value

If events aren't present in the data, AURA derives them automatically from anomaly clusters grouped by event_id.

Drag & Drop is supported β€” or click to browse. On successful upload, data is saved to Firestore and appears in your history.


⚑ Live Mode

Toggle Go Live to activate real-time simulation:

  • Dashboard auto-refreshes every 5 seconds
  • New mock data is generated on each tick
  • A toast notification and notification log entry fire on each refresh
  • The Live button pulses with a visual indicator while active

Designed to simulate the experience of monitoring a live feed β€” ideal for demos or testing.


πŸ—‚οΈ History Tracking

Every non-mock upload is persisted to Firestore under your user account.

  • Lists your 10 most recent analysis runs, sorted newest-first
  • Each entry shows: filename, anomaly count, event count, timestamp
  • Click any history entry to restore that exact dataset back into the dashboard β€” including all charts and filters

Data is stored in a proper subcollection structure:

users/{uid}/runs/{runId}/anomalies/{0..N}
users/{uid}/runs/{runId}/events/{0..N}

πŸ”” Notification System

A lightweight in-app event log:

  • Fires on: login, logout, file upload, history save, live refresh
  • Notification bell with a pulsing dot indicator when unread items exist
  • Dropdown panel with timestamps (JetBrains Mono formatted)
  • One-click Clear All
  • Capped at 20 entries β€” FIFO eviction

πŸ“₯ CSV Export

Export your currently filtered event dataset as a .csv file:

event_id, event_label, dominant_platform, dominant_topic,
post_count, confidence_mean, event_intensity, start_time, end_time

Respects all active filters β€” what you see is what you export.


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    CLIENT BROWSER                    β”‚
β”‚                                                     β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  Landing  β”‚  β”‚  Auth Pages  β”‚  β”‚  App Shell    β”‚ β”‚
β”‚  β”‚  Page    β”‚  β”‚ Login/Signup β”‚  β”‚  Dashboard    β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  Events Tab   β”‚ β”‚
β”‚                                  β”‚  History Tab  β”‚ β”‚
β”‚                                  β”‚  Settings Tab β”‚ β”‚
β”‚                                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                       β”‚                            β”‚
β”‚            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”‚
β”‚            β”‚    services/api.js  β”‚                 β”‚
β”‚            β”‚  (Firebase layer)   β”‚                 β”‚
β”‚            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                        β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚        FIREBASE            β”‚
          β”‚                            β”‚
          β”‚  Authentication            β”‚
          β”‚  β”œβ”€ Email/Password         β”‚
          β”‚  └─ Google OAuth           β”‚
          β”‚                            β”‚
          β”‚  Firestore Database        β”‚
          β”‚  └─ users/{uid}            β”‚
          β”‚     β”œβ”€ profile doc         β”‚
          β”‚     β”œβ”€ prefs               β”‚
          β”‚     └─ runs/{runId}        β”‚
          β”‚        β”œβ”€ anomalies/*      β”‚
          β”‚        └─ events/*         β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎨 Design System

AURA was designed from scratch with a cyber-intelligence aesthetic β€” dark, precise, data-dense.

Token Value
Primary #8b5cf6 (Violet)
Secondary #06b6d4 (Cyan)
Success #10b981 (Emerald)
Danger #f43f5e (Rose)
Background #020617 (Near-black)
Display Font Syne (800 weight)
Body Font DM Sans
Mono Font JetBrains Mono

Animated elements: ambient background blobs, grid overlay, skeleton loaders, shimmer states, live ticker, badge pulse, scroll-based animations.


πŸ“‹ Data Schema Reference

Anomaly Record Schema
interface Anomaly {
  timestamp:        string;   // ISO-8601
  platform:         string;   // "Twitter" | "Instagram" | ...
  topic_category:   string;   // "Politics" | "Sports" | ...
  engagement_score: number;   // 0–100
  sentiment_score:  number;   // -1 to +1
  anomaly_pred:     0 | 1;    // 1 = anomaly
  detected_type:    "spike" | "drop";
  anomaly_reason:   string;
  confidence_score: number;   // 0.5–1.0
  anomaly_strength: number;   // 0–5
  hashtags:         string;
  event_id:         string;   // "EVT001"
}
Event Record Schema
interface Event {
  event_id:          string;
  event_label:       string;
  dominant_platform: string;
  dominant_topic:    string;
  post_count:        number;
  engagement_max:    number;
  confidence_mean:   number;  // 0.5–1.0
  event_intensity:   "low" | "medium" | "high" | "critical";
  start_time:        string;  // ISO-8601
  end_time:          string;  // ISO-8601
  top_hashtags:      string;
  detected_type:     "spike" | "drop";
  ai_explanation:    string;
}

πŸš€ Quick Start

# 1. Clone the repo
git clone https://github.com/your-username/aura-v2.git
cd aura-v2

# 2. Open frontend/
# β†’ See frontend/README.md for full setup instructions

# 3. Configure Firebase
# β†’ Add your Firebase config to frontend/app.js (firebaseConfig object)
# β†’ Enable Email/Password + Google Auth in Firebase Console
# β†’ Create a Firestore database

# 4. Open in browser (no build step required)
open frontend/index.html
# or: npx serve frontend/

πŸ› οΈ Tech Stack

Layer Technology
UI Vanilla HTML5 + CSS3 + JavaScript (ES2022)
Charts Chart.js 4.4
Auth Firebase Authentication (Email + Google OAuth)
Database Cloud Firestore
Fonts Google Fonts (Syne, DM Sans, JetBrains Mono)
Build None β€” zero-dependency frontend

πŸ—ΊοΈ Roadmap

  • Real ML backend (Python FastAPI + scikit-learn anomaly detection)
  • WebSocket support for true real-time streaming
  • Custom alert thresholds per user
  • Team workspaces (shared analysis runs)
  • Twitter/Reddit API integrations for live data ingestion
  • Export to PDF report

πŸ“œ License

MIT β€” do whatever you want with it. Attribution appreciated but not required.


Built with obsession over details. Every pixel intentional.

AURA β€” See what the internet doesn't want you to miss.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors