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