As an undergraduate researcher, I know how time-consuming it can be to manually explore datasets and extract meaningful insights. Agentic EDA automates this process: upload your CSV, pay just $1, and receive a comprehensive, AI-generated PDF report. Instantly gain clear, actionable interpretations of your data and accelerate your research like never before.
- Agentic AI Analysis: AI validates its own work for accuracy
 - Professional PDF Reports: Comprehensive analysis with visualizations
 - Secure Payment Processing: Stripe integration for $1 per analysis
 - User Authentication: Supabase Auth with Google OAuth
 - Cloud Storage: Secure file storage with Supabase
 - Real-time Status Updates: Track analysis progress
 - Mobile Responsive: Works on all devices
 
- Frontend: Next.js 14, TypeScript, Tailwind CSS
 - Backend: Next.js API routes, Node.js
 - Database: Supabase (PostgreSQL)
 - Storage: Supabase Storage
 - AI/LLM: OpenAI GPT-4-turbo
 - EDA Engine: Python (pandas, matplotlib, seaborn)
 - PDF Generation: ReportLab
 - Payments: Stripe
 - Authentication: Supabase Auth
 - Deployment: Vercel
 
- Node.js 18+
 - Python 3.9+
 - Supabase account
 - OpenAI API key
 - Stripe account
 - Vercel account (for deployment)
 
git clone <repository-url>
cd agentic-eda
npm installcd runner
pip install -r requirements.txt
cd ..Copy .env.example to .env and fill in your API keys:
cp .env.example .envRequired environment variables:
NEXT_PUBLIC_SUPABASE_URL: Your Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY: Supabase anonymous keySUPABASE_SERVICE_ROLE_KEY: Supabase service role keyOPENAI_API_KEY: OpenAI API keySTRIPE_SECRET_KEY: Stripe secret keyNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: Stripe publishable keySTRIPE_WEBHOOK_SECRET: Stripe webhook secretNEXTAUTH_SECRET: Random secret for session encryptionNEXTAUTH_URL: Your app URL
- Create a new Supabase project
 - Run the SQL commands in 
supabase/schema.sqlin your Supabase SQL editor - Enable Google OAuth in Supabase Auth settings
 
- Create a Stripe account
 - Enable webhooks for your endpoint: 
/api/payment/webhook - Add webhook events: 
checkout.session.completed,payment_intent.payment_failed 
Create two storage buckets in Supabase:
csv-files(public)pdf-reports(public)
Run the development server:
npm run devOpen http://localhost:3000 in your browser.
- Push your code to GitHub
 - Connect your repository to Vercel
 - Add all environment variables in Vercel dashboard
 - Deploy
 
The app uses Python for EDA processing. Vercel supports Python, but you may need to:
- Add 
requirements.txtto your project root - Configure Vercel to install Python dependencies
 - Ensure Python scripts are executable
 
- Row Level Security (RLS) in Supabase
 - Secure file uploads with validation
 - Payment verification before analysis
 - Data isolation per user
 - HTTPS encryption
 - API key security
 
- User uploads CSV: File stored securely in Supabase Storage
 - Payment processing: Stripe handles $1 payment
 - Agentic analysis: Python script performs EDA with AI validation
 - PDF generation: Professional report created with visualizations
 - Delivery: User downloads PDF from dashboard
 
The AI agent:
- Analyzes CSV data using pandas/matplotlib
 - Validates its own results using GPT-4
 - Generates additional insights and recommendations
 - Creates visualizations and comprehensive reports
 - Ensures accuracy through self-verification loops
 
agentic-eda/
├── pages/                 # Next.js pages
│   ├── api/              # API routes
│   ├── index.tsx         # Landing page
│   ├── dashboard.tsx     # User dashboard
│   └── payment.tsx       # Payment page
├── runner/               # Python EDA pipeline
│   ├── agent.py         # Main orchestrator
│   ├── eda.py           # EDA analysis
│   ├── validator.py     # AI validation
│   └── pdf_generator.py # PDF creation
├── lib/                 # Utility libraries
├── supabase/            # Database schema
└── styles/              # CSS styles
- File uploads: 10MB max
 - Analysis timeout: 5 minutes
 - Concurrent analyses: Limited by Vercel
 
- Supported formats: CSV only
 - Max file size: 10MB
 - Processing time: 2-5 minutes typical
 
- Supabase dashboard for database metrics
 - Vercel analytics for performance
 - Stripe dashboard for payments
 - Optional: Sentry for error tracking
 
- Upload fails: Check file size (<10MB) and format (CSV only)
 - Analysis stuck: Check Python dependencies and OpenAI API key
 - Payment issues: Verify Stripe webhook configuration
 - PDF not generated: Check Python script permissions
 
Check logs in:
- Vercel Functions tab for API errors
 - Supabase Logs for database issues
 - Stripe Dashboard for payment issues
 
To update the system:
- Update dependencies: 
npm update - Update Python packages: 
pip install -r requirements.txt --upgrade - Test thoroughly before deployment
 
MIT License - see LICENSE file for details.
- Fork the repository
 - Create a feature branch
 - Make your changes
 - Add tests if applicable
 - Submit a pull request
 
For issues and questions:
- Check the troubleshooting guide
 - Review logs in Vercel/Supabase dashboards
 - Contact support through the app
 
Built with ❤️ using Next.js, Supabase, and OpenAI