DataNova bridges the gap between raw data and actionable insight — no data science background required.
DataNova is a full-stack, AI-powered web application that transforms structured datasets (CSV/Excel) into rich, interactive visual reports and plain-English summaries — all without writing a single line of code.
At its core, DataNova integrates GPT-4 for natural language data summarization, Plotly for dynamic infographics, and a Figma API pipeline for export-ready design assets. A built-in Q&A chatbot lets users interrogate their dataset in conversational language, making data exploration accessible to analysts, students, and business users alike.
| Feature | Description |
|---|---|
| 📤 Multi-format Upload | Accepts CSV and Excel files; handles real-world messy data gracefully |
| 🤖 GPT-4 Summaries | Generates Executive, Technical, or Business-focused summaries contextual to the dataset |
| 📊 Interactive Infographics | Plotly-powered bar, line, scatter, and histogram charts with user-defined axes |
| 💬 Conversational Q&A | Chat interface to ask free-form questions about your data in Normal, Deep, or Quick mode |
| 🎨 Figma Export | Pushes visualization frames directly to Figma via the REST API for design-ready reports |
| 🌑 Dark UI | Polished dark-mode Streamlit interface built with custom CSS for professional presentation |
┌─────────────────────────────────────────────────────────────────┐
│ DataNova Frontend │
│ (Streamlit — app.py) │
│ │
│ [Upload] ──▶ [Summary Mode] ──▶ [Chart Builder] ──▶ [Chat] │
└───────────────────────────┬─────────────────────────────────────┘
│ REST API (requests)
▼
┌─────────────────────────────────────────────────────────────────┐
│ DataNova Backend │
│ (api.py / main.py) │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────┐ │
│ │ summarizer.py │ │ visualizer.py │ │ qna.py │ │
│ │ GPT-4 · /summary│ │ Plotly · /viz │ │ GPT-4·/chat │ │
│ └──────────────────┘ └────────┬─────────┘ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────┐ │
│ │ figma_exporter.py │ │
│ │ Figma REST API │ │
│ └────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Frontend
- Streamlit — rapid Python web UI framework
- Custom CSS — dark theme, card-based layout
Backend & AI
- OpenAI GPT-4 — natural language summarization and Q&A
- Plotly Express — interactive chart generation
- Pandas — data ingestion and manipulation
Integrations
- Figma REST API — design export pipeline
Deployment
- Render — backend hosting
- Streamlit Cloud compatible
Python >= 3.8
OpenAI API key
Figma Personal Access Token (optional, for export)# 1. Clone the repository
git clone https://github.com/Slaytistics/DataNova.git
cd DataNova
# 2. Install dependencies
pip install -r requirements.txt
# 3. Configure environment variables
cp .env.example .env
# → Add OPENAI_API_KEY, FIGMA_TOKEN, etc.
# 4. Start the backend
python main.py
# 5. Launch the Streamlit frontend
streamlit run app.py| Variable | Description |
|---|---|
OPENAI_API_KEY |
OpenAI API key for GPT-4 access |
FIGMA_TOKEN |
Figma personal access token for design export |
BACKEND_URL |
URL of the running FastAPI/Flask backend |
- Upload a CSV or Excel file using the file uploader
- Choose Summary Style — Executive Summary, Technical Analysis, or Business Insights
- Generate Summary — GPT-4 reads your dataset and returns a contextual narrative
- Build Charts — pick chart type, X/Y axes, and row limit; get an interactive Plotly graphic
- Chat with Your Data — ask anything in plain English via the Q&A chatbot
- Export to Figma — push visuals to your design workspace with one click
DataNova/
├── app.py # Streamlit frontend — UI layout, widgets, API calls
├── main.py # Backend entry point
├── api.py # REST API route definitions (/summary, /visualize, /chat)
├── summarizer.py # GPT-4 summarization logic
├── visualizer.py # Plotly chart generation
├── qna.py # GPT-4 conversational Q&A over dataframe context
├── figma_exporter.py # Figma API integration for design export
├── requirements.txt # Python dependencies
└── .streamlit/ # Streamlit configuration (theme, server settings)
- Prompt Engineering — Structured prompts with dynamic dataset context injected into GPT-4 calls to produce domain-specific summaries (executive vs. technical vs. business)
- Retrieval-Augmented Generation (RAG) Pattern — Dataset statistics and sample rows are embedded into prompts to ground the model's responses in real data
- Conversational AI — Multi-turn chat history management with session state, enabling coherent dialogue about the uploaded dataset
- Data-Driven Visualization — Automated chart-type selection and axis mapping based on column dtypes
Contributions are welcome! Please open an issue to discuss what you'd like to change, then submit a pull request.
- Fork the repo
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Built with ❤️ for democratizing data science
If you found this useful, please consider giving it a ⭐