Skip to content

Tushargg1/Data-Finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🔍 Data Finder — Company Intelligence Platform

Typing SVG

Spring Boot React MySQL OpenAI Java Maven License: MIT


Data Finder is a full-stack AI-powered platform that fetches, verifies, and manages company information at scale — search by city & industry, get real-time verified results, and export everything to Excel in one click.


🚀 Getting Started · 📖 API Docs · ✨ Features · 🤝 Contributing


📋 Table of Contents


🌟 Overview

Data Finder solves a real-world problem: gathering verified, up-to-date company data at scale is slow, expensive, and error-prone. This platform combines OpenAI's GPT models with intelligent filtering and a clean React UI to deliver high-quality company intelligence — including operational status, location, website, and industry — in seconds.

Whether you're a researcher, sales team, or business analyst, Data Finder turns hours of manual research into an automated, reliable pipeline.


✨ Features

Feature Description
🤖 AI-Powered Extraction Leverages OpenAI GPT to intelligently extract and verify company data with high accuracy
🌍 City + Industry Search Filter companies by city and industry through a clean, intuitive form
Smart Verification Every result is tagged — Active, Acquired, or Closed
🚫 Duplicate Prevention Built-in exclusion list management keeps your dataset clean
📊 One-Click Excel Export Export formatted .xlsx files using Apache POI — CRM-ready
📁 Drag-and-Drop Upload Batch-process companies via drag-and-drop file input
Real-Time Table View Live-updating interactive data table with filtering & sorting
🔒 Secure by Design All secrets stored in environment variables — never hardcoded

🏗 Architecture

┌──────────────────────────────────────────────────────────┐
│                      CLIENT LAYER                        │
│                                                          │
│        ┌─────────────────────────────────────┐           │
│        │     React 18 Frontend (Port 3000)   │           │
│        │  Search Form · Data Table · Export  │           │
│        └──────────────────┬──────────────────┘           │
└─────────────────────────── │ ────────────────────────────┘
                             │  HTTP REST (JSON)
                             ▼
┌──────────────────────────────────────────────────────────┐
│                      SERVER LAYER                        │
│                                                          │
│     ┌───────────────────────────────────────────────┐    │
│     │    Spring Boot 3.5.3 Backend (Port 8081)      │    │
│     │  Controllers · Services · JPA Repositories   │    │
│     └─────────────────┬─────────────┬──────────────┘    │
└───────────────────────│─────────────│────────────────────┘
                        │             │
             ┌──────────▼───┐   ┌─────▼────────────┐
             │  MySQL 8.0   │   │  OpenAI GPT API  │
             │  (Persist)   │   │  (Extraction)    │
             └──────────────┘   └──────────────────┘

🛠 Tech Stack

Layer Technology Version
Frontend React 18.x
Frontend Lang JavaScript ES6+
Backend Spring Boot 3.5.3
Backend Lang Java 17
Build Tool Maven 3.8+
Database MySQL 8.0
ORM Spring Data JPA / Hibernate
AI Integration OpenAI API (GPT) Latest
File Processing Apache POI
Security Spring Security + Env Vars

📋 Prerequisites

Requirement Version Link
JDK 17+ Download
Node.js 16+ Download
MySQL 8.0+ Download
Maven 3.8+ Download
OpenAI API Key Get Key

🚀 Installation

Step 1 — Clone the Repository

git clone https://github.com/Tushargg1/Data-Finder.git
cd Data-Finder

Step 2 — Database Setup

CREATE DATABASE company_extractor;

CREATE USER 'df_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON company_extractor.* TO 'df_user'@'localhost';
FLUSH PRIVILEGES;

Step 3 — Backend Setup

cd company-backend

Set environment variables (Linux/macOS):

export DB_USERNAME=df_user
export DB_PASSWORD=your_secure_password
export OPENAI_API_KEY=sk-...your_key...

Set environment variables (Windows PowerShell):

$env:DB_USERNAME="df_user"
$env:DB_PASSWORD="your_secure_password"
$env:OPENAI_API_KEY="sk-...your_key..."

Build & Run:

mvn clean install
mvn spring-boot:run

✅ Backend running at: http://localhost:8081


Step 4 — Frontend Setup

cd ../frontend
npm install
npm start

✅ Frontend running at: http://localhost:3000


⚙ Configuration

Variable Description Required
DB_USERNAME MySQL username
DB_PASSWORD MySQL password
OPENAI_API_KEY OpenAI secret key
DB_URL JDBC connection URL Optional
SERVER_PORT Backend port (default: 8081) Optional

⚠️ Never commit credentials to version control. Add .env to .gitignore.


📖 Usage

🔍 Search Companies

  1. Open http://localhost:3000
  2. Enter a City (e.g., Mumbai) and Industry (e.g., FinTech)
  3. Click Extract Data — live results populate immediately

📊 Export to Excel

  • Click Export to Excel — a formatted .xlsx file downloads automatically

📁 Batch Upload

  • Drag and drop a company list file into the upload area
  • Backend enriches each entry and displays results in the live table

📡 API Documentation

Base URL: http://localhost:8081/api

Method Endpoint Description
POST /companies/extract Extract companies by city & industry
GET /companies Retrieve all stored companies
GET /companies/{id} Get a specific company by ID
DELETE /companies/{id} Delete a company record
GET /companies/export Download all data as Excel
POST /companies/upload Batch upload via file

Example Request

curl -X POST http://localhost:8081/api/companies/extract \
  -H "Content-Type: application/json" \
  -d '{
    "city": "Bangalore",
    "industry": "FinTech",
    "limit": 20
  }'

Example Response

{
  "status": "success",
  "count": 20,
  "data": [
    {
      "id": 1,
      "name": "Razorpay",
      "city": "Bangalore",
      "industry": "FinTech",
      "website": "https://razorpay.com",
      "status": "Active",
      "extractedAt": "2025-07-16T10:30:00Z"
    }
  ]
}

📁 Project Structure

Data-Finder/
├── 📂 company-backend/                  # Spring Boot backend
│   └── src/main/java/com/company/
│       ├── controller/                  # REST Controllers
│       ├── service/                     # Business logic + AI calls
│       ├── repository/                  # JPA Repositories
│       ├── model/                       # Entity classes
│       └── config/                      # App & security config
│
├── 📂 frontend/                         # React frontend
│   └── src/
│       ├── components/                  # Reusable UI components
│       ├── pages/                       # Page views
│       ├── services/                    # Axios API service layer
│       └── App.js
│
└── 📄 README.md

🤝 Contributing

Contributions are welcome and appreciated! 🎉

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m "feat: add my feature"
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

Commit Convention

Prefix Purpose
feat: New feature
fix: Bug fix
docs: Documentation
refactor: Code cleanup
test: Tests
chore: Maintenance

🔒 Security

  • API keys and DB credentials are never hardcoded — environment variables only
  • Database access uses a scoped user with minimal privileges
  • CORS is restricted to the frontend origin
  • Found a vulnerability? Please open a private issue or contact the maintainer directly

🔮 Future Enhancements

  • 🔐 JWT-based user authentication & role management
  • 📈 Analytics dashboard for extraction trends
  • 🐳 Docker + Docker Compose for one-command deployment
  • 📧 Scheduled email digest reports
  • 🔗 CRM integrations (Salesforce, HubSpot)
  • 🧪 Full test coverage (JUnit + React Testing Library)
  • 📱 Progressive Web App (PWA) support
  • 🌐 Multi-language UI support

📄 License

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


⭐ Found this useful? Give it a star — it helps a lot!

Made with ❤️ by Tushar

GitHub followers GitHub stars

About

Company Data Extractor is a full-stack app to fetch verified company info by city and industry. Built with Spring Boot, React, and MySQL, it uses OpenAI API for accurate data extraction and allows viewing, filtering, and exporting results to Excel.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages