Skip to content

NawrizTurjo/InsightFlow

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ† Update: 2nd Runners Up in Therap Javafest 2025

πŸš€ InsightFlow

Spring Boot React TypeScript MongoDB Docker Ollama

AI-Powered Business Intelligence & Competitive Analysis Platform

🌟 Demo β€’ πŸ“š Documentation β€’ πŸš€ Quick Start β€’ 🎯 Features β€’ πŸ—οΈ Architecture


πŸ“‹ Table of Contents


🎯 Features

πŸ” Competitive Analysis

  • Single Company Deep Analysis: SWOT, PESTEL, Porter's Five Forces, BCG Matrix, McKinsey 7S
  • RAG-Powered Insights: Retrieval-Augmented Generation with document upload support
  • Visual Frameworks: Auto-generated strategy visualization charts
  • LinkedIn Intelligence: Professional network analysis and company insights
  • Real-time Data: Live web scraping with Tavily search integration

πŸ“Š Multi-Company Comparison

  • Side-by-Side Analysis: Compare 2-5 companies simultaneously
  • Investment Recommendations: AI-generated investment insights
  • Performance Metrics: Market share, growth rate, sentiment scoring
  • Interactive Visualizations: Radar charts, bar graphs, scatter plots
  • Benchmark Analysis: Industry-standard comparative metrics

πŸ“ˆ Sentiment & Trend Analysis

  • Real-Time Monitoring: Automated daily sentiment collection
  • Multi-Source Intelligence: News APIs, social media, financial data
  • Time-Series Analytics: MongoDB time-series with granular tracking
  • Event Detection: Statistical anomaly and pattern recognition
  • Predictive Trends: Mathematical slope analysis and volatility metrics

πŸ” Enterprise Security

  • JWT Authentication: Secure token-based authentication
  • Role-Based Access: Granular permission system
  • Session Management: Secure user session handling
  • API Security: CORS, rate limiting, input validation

🎨 Modern Interface

  • Responsive Design: Mobile-first UI with Tailwind CSS
  • Interactive Dashboards: Real-time data visualization
  • Export Capabilities: PDF, Markdown, TXT format exports
  • Dark/Light Mode: User preference-based theming
  • Progressive Web App: Offline capabilities and mobile optimization

πŸ—οΈ Architecture

graph TB
    subgraph "Frontend Layer"
        A[React 19 + TypeScript]
        B[Tailwind CSS]
        C[Vite Build Tool]
    end
    
    subgraph "Backend Layer"
        D[Spring Boot 3.4.9]
        E[Spring Security]
        F[LangChain4j RAG]
    end
    
    subgraph "AI/ML Layer"
        G[Ollama Llama 3.2]
        H[Nomic Text Embeddings]
        I[Statistical Analysis]
    end
    
    subgraph "Data Layer"
        J[MongoDB Time-Series]
        K[Firebase Storage]
        L[Supabase Storage]
    end
    
    subgraph "External APIs"
        M[Tavily Search]
        N[NewsAPI]
        O[Google Custom Search]
        P[LinkedIn Scraping]
    end
    
    A --> D
    D --> G
    D --> J
    G --> H
    D --> M
    D --> N
    D --> O
    D --> P
    J --> L
    J --> K
Loading

πŸ”„ Data Flow Architecture

  1. Input Layer: User requests, file uploads, API calls
  2. Processing Layer: AI analysis, web scraping, data validation
  3. Storage Layer: Time-series data, document storage, cache management
  4. Analytics Layer: Trend calculation, comparison metrics, insights generation
  5. Presentation Layer: Charts, reports, interactive dashboards

πŸš€ Quick Start

πŸ“‹ Prerequisites

  • Java 17+ β˜•
  • Node.js 18+ & npm πŸ“¦
  • MongoDB 7+ πŸƒ
  • Docker & Docker Compose 🐳
  • Ollama (for AI features) πŸ€–

⚑ One-Command Setup

# Clone the repository
git clone https://github.com/Sayjad21/InsightFlow.git
cd InsightFlow

# Start all services with Docker
docker-compose up -d

# Access the application
# Frontend: http://localhost:5173
# Backend API: http://localhost:8000

πŸ”§ Manual Setup

Backend Setup
cd backend

# Install dependencies
./mvnw clean install

# Configure environment variables
cp application.properties.example application.properties
# Edit application.properties with your API keys

# Start Ollama (if running locally)
ollama serve
ollama pull llama3.2
ollama pull nomic-embed-text

# Run the application
./mvnw spring-boot:run
Frontend Setup
cd frontend

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Edit .env with your backend URL

# Start development server
npm run dev

πŸ”‘ Environment Configuration

Backend Configuration (application.properties)
# Database
spring.data.mongodb.uri=mongodb://localhost:27017/insightflow

# AI Configuration
ollama.base-url=http://localhost:11434
ollama.model.chat=llama3.2
ollama.model.embedding=nomic-embed-text

# External APIs
newsapi.key=your_newsapi_key
google-search.key=your_google_api_key
google-search.cx=your_search_engine_id
tavily.api.key=your_tavily_key

# Cloud Storage
supabase.url=your_supabase_url
supabase.key=your_supabase_key
firebase.config.path=path/to/firebase-config.json

# Security
jwt.secret=your_jwt_secret
jwt.expiration=86400000
Frontend Configuration (.env)
VITE_API_BASE_URL=http://localhost:8000
VITE_APP_NAME=InsightFlow
VITE_APP_VERSION=1.0.0

πŸ“š Documentation

πŸ“– System Documentation


🌟 Demo

πŸŽ₯ Live Demo

🌐 View Live Demo (if deployed)

πŸ“Έ Screenshots

View Application Screenshots

Dashboard Overview

Dashboard

Competitive Analysis

Analysis

Comparison Charts

Comparison

Sentiment Trends

Trends


πŸ› οΈ Technology Stack

πŸ–₯️ Backend

Technology Version Purpose
Spring Boot 3.4.9 Application Framework
Java 17 Programming Language
MongoDB 7+ Time-Series Database
LangChain4j 0.35.0 RAG Framework
Apache Commons 3.6.1 Statistical Analysis
JFreeChart 1.5.4 Chart Generation

🌐 Frontend

Technology Version Purpose
React 19.1.1 UI Framework
TypeScript 5.8.3 Type Safety
Tailwind CSS 4.1.13 Styling Framework
Vite 7.1.2 Build Tool
Axios 1.11.0 HTTP Client

πŸ€– AI/ML Stack

Technology Purpose
Ollama Llama 3.2 Local LLM for analysis
Nomic Text Embeddings 768-dimensional vectors
Apache Commons Math3 Statistical calculations
Spring Cache Performance optimization

☁️ Infrastructure

Service Purpose
Docker Containerization
MongoDB Atlas Cloud database
Supabase Storage File storage
Firebase Storage Alternative storage
Azure Cloud deployment

πŸ“± API Endpoints

πŸ” Authentication

  • POST /api/auth/signup - User registration
  • POST /api/auth/signin - User login
  • POST /api/auth/refresh - Token refresh
  • POST /api/auth/logout - User logout

πŸ† Competitive Analysis

  • POST /api/analyze - Single company analysis
  • POST /api/generate-company-file - Generate analysis report

βš–οΈ Comparison

  • GET /api/comparison/analyses - Get user analyses
  • POST /api/comparison/compare-existing - Compare existing analyses
  • POST /api/comparison/compare - Generate new comparison
  • POST /api/comparison/compare-enhanced - Advanced comparison

πŸ“ˆ Sentiment Analysis

  • GET /api/sentiment/{company}/trend - Get sentiment trends
  • GET /api/sentiment/{company}/trend/chart - Trend visualization
  • GET /api/sentiment/comparison/chart - Multi-company sentiment
  • POST /api/sentiment/collect - Trigger data collection
View Sample API Requests

Competitive Analysis

POST /api/analyze
Content-Type: multipart/form-data

company_name: Tesla
file: [optional analysis document]

Company Comparison

POST /api/comparison/compare-enhanced
Content-Type: application/json

{
  "companyNames": ["Tesla", "Apple", "Google"],
  "comparisonType": "new",
  "saveResult": true
}

Sentiment Trend

GET /api/sentiment/Tesla/trend/chart?days=30&sources=news,social
Authorization: Bearer <jwt_token>

πŸ“Š Data Sources

πŸ” External APIs

🎯 Data Processing

  • Web Scraping: Modular scraping with fallback mechanisms
  • Content Extraction: Text processing and cleaning
  • AI Analysis: Sentiment scoring and risk assessment
  • Time-Series Storage: Optimized for trend analysis

🎨 UI Components

πŸ“± Component Library

src/components/
β”œβ”€β”€ common/
β”‚   β”œβ”€β”€ ImageUpload.tsx      # File upload component
β”‚   └── Pagination.tsx       # Data pagination
β”œβ”€β”€ Dashboard/
β”‚   β”œβ”€β”€ AnalysisTab.tsx      # Company analysis interface
β”‚   β”œβ”€β”€ ComparisonTab.tsx    # Comparison dashboard
β”‚   β”œβ”€β”€ SentimentAnalysisTab.tsx # Sentiment monitoring
β”‚   └── TrendsTab.tsx        # Trend visualization
β”œβ”€β”€ ui/
β”‚   └── button.tsx           # Reusable UI components
└── Layout.tsx               # Application shell

πŸŽ›οΈ Key Features

  • Responsive Design: Mobile-first approach
  • Interactive Charts: Real-time data visualization
  • Export Functions: Multiple format support
  • Loading States: Skeleton screens and spinners
  • Error Boundaries: Graceful error handling

πŸ§ͺ Testing

πŸ”¬ Backend Testing

cd backend

# Run all tests
./mvnw test

# Run specific test categories
./mvnw test -Dtest="*ControllerTest"
./mvnw test -Dtest="*ServiceTest"
./mvnw test -Dtest="*RepositoryTest"

# Generate test coverage report
./mvnw jacoco:report

πŸ§ͺ Test Coverage

  • Controllers: 85%+ coverage
  • Services: 90%+ coverage
  • Repositories: 95%+ coverage
  • Integration Tests: End-to-end workflows

πŸ“Š Test Categories

  • Unit Tests: Individual component testing
  • Integration Tests: Service interaction testing
  • API Tests: Endpoint behavior validation
  • Performance Tests: Load and stress testing

🚒 Deployment

🐳 Docker Deployment

# Production build
docker-compose -f docker-compose.prod.yml up -d

# Scale services
docker-compose up -d --scale backend=3

# Health checks
docker-compose ps
docker-compose logs -f

☁️ Cloud Deployment

Azure Container Apps
# azure-container-app.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: insightflow-backend
spec:
  replicas: 2
  selector:
    matchLabels:
      app: insightflow-backend
  template:
    metadata:
      labels:
        app: insightflow-backend
    spec:
      containers:
      - name: backend
        image: insightflow/backend:latest
        ports:
        - containerPort: 8000
        env:
        - name: SPRING_PROFILES_ACTIVE
          value: "prod"

πŸ”§ Environment-Specific Configs

  • Development: Local Ollama, file storage
  • Staging: Cloud AI, managed database
  • Production: Full cloud stack, CDN, monitoring

πŸ“ˆ Performance Metrics

⚑ System Performance

  • API Response Time: < 200ms average
  • Chart Generation: < 2s for complex visualizations
  • Database Queries: Time-series optimized indexing
  • Concurrent Users: 1000+ simultaneous connections
  • Data Processing: Real-time sentiment analysis

πŸ“Š Monitoring & Analytics

  • Application Metrics: Spring Boot Actuator
  • Database Performance: MongoDB Compass
  • Error Tracking: Comprehensive logging
  • User Analytics: Custom dashboard metrics

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

πŸ› οΈ Development Setup

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and test thoroughly
  4. Commit your changes: git commit -m 'Add amazing feature'
  5. Push to the branch: git push origin feature/amazing-feature
  6. Open a Pull Request

πŸ“‹ Code Standards

  • Java: Google Java Style Guide
  • TypeScript: ESLint + Prettier configuration
  • Documentation: Comprehensive inline documentation
  • Testing: Minimum 80% code coverage

πŸ“ž Support & Contact

πŸ†˜ Getting Help

πŸ‘¨β€πŸ’» Maintainer


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


🌟 Acknowledgments


⭐ Star this repository if you find it helpful!

GitHub stars GitHub forks GitHub watchers

Made with ❀️ by Sayjad21

About

2nd Runnersup in Javafest 2025 | InsightFlow is an autonomous competitive intelligence platform that turns public data into strategic insights. It combines advanced web scraping, RAG-enhanced analysis, and LLM to automate market research; generates detailed reports, competitor profiles, and visual analytics securely and efficiently.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 59.7%
  • TypeScript 39.1%
  • PowerShell 0.8%
  • Dockerfile 0.2%
  • CSS 0.1%
  • JavaScript 0.1%