Skip to content

kishanraj41/analyst-assist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

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

Repository files navigation

⚑ Pocket Analyst

Pocket Analyst is a web-based data analysis platform that empowers users to explore datasets and query data analysis techniques. It offers interactive visualizations, actionable insights, and transparent citations as raw URLs.

Users can upload CSV or Excel files for analysis or ask questions about data techniques, receiving detailed responses powered by the Perplexity Sonar API. Built with React, Express, and Chart.js, Pocket Analyst combines a mobile-responsive design with a neon aesthetic, featuring Orbitron and Roboto fonts and a dark/light mode toggle.


πŸ“‘ Table of Contents


πŸš€ Features

  • CSV Data Analysis: Upload CSV files to generate insights, business recommendations, and future analysis methods via /analyze-data.
  • Interactive Visualizations: Bar charts using Chart.js.
  • Query Interface: Ask data questions like β€œHow to find duplicates in SQL?” via /analyst-query.
  • Transparent Citations: Raw clickable URLs like https://www.atlassian.com/....
  • Mobile-Responsive Design: Styled with Tailwind CSS.
  • Future Analysis Tools: Recommends tools like PySpark, Tableau, and methods like clustering.
  • Scalable Backend: Express server with Sonar API integration.
  • Error Handling: Graceful messages and console logging.


Screenshots

  • Data Analysis
image image
  • Data Queries
image

🧰 Getting Started

Prerequisites

  • Node.js v16+ Download
  • Perplexity Sonar API Key Get it here
  • VS Code (Recommended)
  • Git & Browser (Chrome, Firefox, Edge)

πŸ› οΈ Installation

git clone https://github.com/your-username/pocket-analyst.git
cd pocket-analyst
npm install express axios dotenv csv-parse multer cors

Create a .env file:

PERPLEXITY_API_KEY=your_api_key_here

▢️ Running Locally

node server.js

Then visit: http://localhost:3000


πŸ“‚ Usage

πŸ“€ Uploading CSV Data

  1. Navigate to Upload Data.
  2. Upload a file (sample.csv):
order_id,user_id,product_id,order_date,category,product_name,price,quantity,revenue,...
1,101,201,2025-01-01,Electronics,Laptop,1000,1,1000,...
2,102,202,2025-01-02,Clothing,Shirt,50,2,100,...
  1. Click "How can we analyze this Data?"

Output

  • Chart: Revenue by category (e.g., Electronics $3800)
  • Insights: Trends like "Electronics = 86% revenue"
  • Recommendations: Business strategies
  • Future Analysis: Tools & methods
  • Citations: Raw URLs or β€œNo external sources cited”

❓ Querying Data Techniques

  1. Navigate to Questions.
  2. Enter a question: "How to find duplicates in SQL?"
  3. Click Execute

Output

  • Results: SQL example using GROUP BY
  • Citations: [1] https://www.atlassian.com/...
  • Reasoning: Explanation from Sonar
  • Follow-up: Optional additional input

🧱 Technical Architecture

πŸ–₯️ Frontend

  • Framework: React (JSX via CDN)

  • Styling: Tailwind CSS with Cyberpunk theme:

    • Neon Pink #FF007A
    • Cyan #00D4FF
    • Purple #9D00FF
  • Fonts:

    • Orbitron (titles/buttons)
    • Roboto (text)
  • Charts: Chart.js v4

  • Components:

    • Sidebar, AnalystQueryInput, DataUpload, Chart, ResultDisplay, ThemeToggle
  • Error Handling: ErrorBoundary


πŸ§ͺ Backend

  • Framework: Express.js

  • File Handling: Multer for CSVs, csv-parse

  • Endpoints:

    • POST /analyst-query
    • POST /analyze-data
  • Session: conversationHistories Map

  • CORS: Enabled

  • Errors: Console logs and UI alerts


πŸ”Œ API Integration

  • Service: Perplexity Sonar

    • Endpoint: https://api.perplexity.ai/chat/completions
    • Model: sonar-pro
    • Auth: Bearer Token via .env
  • Citations:

    • Inline like [1] mapped to raw URLs

πŸ“ File Structure

pocket-analyst/
β”œβ”€β”€ public/            # Static frontend
β”œβ”€β”€ uploads/           # CSV uploads
β”œβ”€β”€ docs/              # Screenshots
β”œβ”€β”€ .env               # API keys
β”œβ”€β”€ server.js          # Express backend
β”œβ”€β”€ sample.csv         # Demo file
β”œβ”€β”€ README.md
β”œβ”€β”€ package.json
└── node_modules/

πŸ› οΈ Troubleshooting

  • Server won't start: Check terminal logs and .env
  • No citations: Inspect /analyst-query response in browser dev tools
  • Chart not rendering: Ensure correct CSV structure
  • Mobile issues: Use Chrome DevTools, inspect Tailwind sm: classes

🀝 Contributing

We welcome contributions!

# Fork + Clone
git clone https://github.com/kishanraj41/pocket-analyst.git

# Create branch
git checkout -b feature/your-feature

# Commit
git commit -m "Add your-feature"
git push origin feature/your-feature

🧭 Roadmap

βœ… Short-Term

  • Add More Visualizations based on Data
  • Validate uploaded CSVs and Excel Files
  • Improve accessibility
  • Live Q/A regarding uploaded data
  • Browser Extension

πŸ›€οΈ Mid-Term

  • Real-time data stream support
  • New API Integration for Deeper analysis

πŸš€ Long-Term

  • Mobile and Desktop app
  • Storage for Personalization
  • CI/CD and unit testing

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors