Impactify is a full-stack AI-powered web application that bridges the gap between raw data and actionable insights. Users can upload datasets, clean data interactively, and ask questions in plain English β Impactify automatically converts them into SQL queries and renders dynamic visualizations like bar, line, or pie charts instantly.
| πΉ | Section | Description |
|---|---|---|
| 1οΈβ£ | β¨ Overview | Learn what this project is all about |
| 2οΈβ£ | π Key Features | Explore the unique and powerful functionalities |
| 3οΈβ£ | π€ User Roles | Understand the roles and permissions in the system |
| 4οΈβ£ | π₯οΈ Frontend Pages | See what the user interface includes |
| 5οΈβ£ | π§± Database Schema | Visualize the data structure and relationships |
| 6οΈβ£ | π§© Tech Stack | Discover the technologies powering this project |
| 7οΈβ£ | βοΈ Workflow | Understand how the frontend, backend, and DB interact |
| 8οΈβ£ | π§βπ» Our Team | Meet the developers behind the project |
Impactify is a next-generation data analysis platform designed to simplify how people interact with data.
Instead of learning SQL or data visualization tools, users can ask questions in natural language.
The backend then securely converts these questions into SQL queries and visualizes the results dynamically.
To make data-driven decision-making accessible to everyone β not just data scientists.
- In-browser parsing using Papa Parse.
- Chunked streaming to backend for reliable ingestion.
- Detects column types, missing values, and text inconsistencies.
- Generates a Data Report Card highlighting issues and suggestions.
- View and fix issues from the Data Report Card.
- Fill missing values (mean, median, custom).
- Merge inconsistent text entries.
- Correct inferred data types.
- AI translates plain English into optimized SQL queries.
- Example: βShow me the top 10 customers by sales last quarter as a bar chart.β
- Secure validation before execution.
- Outputs chart-ready data and visualization type.
- Dynamic rendering via D3.js.
- Supports bar, line, pie, scatter charts, etc.
- Pin and save charts to a customizable dashboard using
react-grid-layout.
| Role | Permissions | Data Access |
|---|---|---|
| Admin | Manage users, view system metrics, control public content | Read-only metadata (no user data) |
| Registered User | Upload, clean, analyze data, manage dashboards | Full access to their own data |
| Guest (Future) | Browse public dashboards | Read-only |
| Route | Description |
|---|---|
/login & /signup |
Authentication pages |
/dashboard |
User's project hub |
/upload |
Upload CSV datasets |
/dataset/{id}/clean |
Data cleaning interface |
/dataset/{id}/analyze |
Natural language querying + visualization workbench |
/admin/dashboard |
Admin control panel |
/profile |
Manage user profile |
| Column | Type | Description |
|---|---|---|
| id | UUID | Primary Key |
| String | Unique | |
| password_hash | String | Securely stored |
| role | Enum(ADMIN, USER) |
Access control |
| auth_provider | Enum(EMAIL, GOOGLE) |
Login type |
| google_id | String | Nullable |
| created_at | Timestamp | Creation date |
| Column | Type | Description |
|---|---|---|
| id | UUID | Primary Key |
| user_id | UUID | FK β User |
| dataset_name | String | Name of dataset |
| status | Enum | uploading, profiling, cleaning, ready, error |
| data_table_name | String | Private table name per dataset |
| Column | Type | Description |
|---|---|---|
| id | UUID | Primary Key |
| dataset_id | UUID | FK β Dataset |
| column_name | String | Column name |
| data_type | String | FLOAT / TEXT / TIMESTAMP |
| description | Text | Optional column notes for AI |
| Layer | Technologies |
|---|---|
| Frontend | React, Tailwind CSS, Zustand, D3.js, React Router, react-grid-layout, Papa Parse |
| Backend | Node.js, Express, Fastify (optional), JWT Auth, Google OAuth |
| AI / LLM | Google Gemini API (Schema-Aware Prompting) |
| Database | PostgreSQL (with TimescaleDB extension optional) |
| Deployment | Vercel (Frontend), Render/Railway (Backend), Neon.tech (DB) |
- Login/Upload β User signs in and uploads a CSV.
- Parsing β Browser parses CSV with Papa Parse, streams to backend.
- Profiling β Backend analyzes data, creates schema, sets dataset status =
cleaning. - Cleaning β User fixes missing values, text inconsistencies, etc.
- Commit β Backend applies cleaning rules and finalizes dataset.
- Analyze β User queries data in plain English.
- AI Processing β Backend retrieves schema and queries LLM for SQL + chart type.
- Execution β SQL is validated and executed on the userβs private dataset.
- Visualization β Frontend dynamically renders the chart.
- Dashboard Save β Users can pin, save, and manage dashboards.
Thanks to these amazing people for contributing to Impactify π₯
Ayush Kumar Singh β’ Angelo Nelson β’ Rohit Nair P β’ Isha Singh