CSVify is a simple, lightweight Flask web application that uses Google's Gemini API to generate custom CSV files based on user-provided text descriptions.
Live Demo: https://csvify-ynpu.onrender.com
Currently uses Flask's development server. Production deployment with Gunicorn is planned.
csvify.mp4
- AI-Powered Generation: Leverages the
gemini-3.5-flashmodel to turn plain English descriptions into structured CSV data. - Custom Naming: Allows users to set a custom title for the downloaded file.
- Instant Download: Automatically triggers a file download in the browser as soon as the CSV is generated.
- Backend: Python, Flask
- AI Integration:
google-genaiSDK - Frontend: HTML5, Jinja2 templating (extends a
layout.htmlbase) - Environment Management:
python-dotenv
Before running the project, ensure you have Python installed, along with your Google Gemini API key.
├── static/
│ └── generated.csv
├── templates/
│ ├── index.html
│ └── layout.html
├── .env
├── .env.example
├── .gitignore
├── app.py
├── README.md
└── requirements.txt
Fork the repo using the
Fork [ ]button
git clone https://github.com/[your_username]/csvify.git
cd csvify
Create and activate a virtual environment to keep your project dependencies isolated:
python -m venv venv
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
Run the following command in your terminal to install the necessary dependencies:
pip install -r requirements.txt
Create a file named .env in the root directory of your project by copying the example file:
cp .env.example .env
Open your newly created .env file and insert your API key:
GEMINI_API_KEY=your_actual_api_key_here
- Start the Flask development server by running:
flask run
-
Open your web browser and navigate to
http://127.0.0.1:5000/. -
Enter a title (e.g.,
student_scores), describe the data you want (e.g.,A list of 5 students with columns for Name, Grade, and Favorite Subject), and click Generate CSV.
created by Naina Bhatnagar