A powerful, modular text processing application that lets you chain multiple AI-powered transformations together. Built with Node.js/Express backend, React frontend, and Google Gemini AI.
Live Demo: https://workflow-builder-hzft.onrender.com (Render backend) + Vercel frontend
- Features
- Project Overview
- Tech Stack
- Architecture
- Prerequisites
- Installation and Setup
- Configuration
- How to Run
- API Endpoints
- Functions and Features
- Deployment
- Troubleshooting
- Contributing
- License
- Workflow Management: Create, edit, and manage custom text processing workflows
- AI-Powered Processing: Chain multiple Gemini AI transformations:
- Text Cleaning (remove whitespace, fix grammar)
- Summarization (condense text to key points)
- Key Point Extraction (bullet-point format)
- Auto-Categorization (classify into 5 categories)
- Run History: Track and view past workflow executions
- Health Monitoring: Real-time status dashboard for backend services
- Responsive UI: Modern React interface with Tailwind CSS styling
Workflow Builder is a full-stack application that demonstrates:
- Backend API design with Express.js
- MongoDB data persistence
- Integration with Google Gemini API
- Frontend-backend communication patterns
- Production-ready deployment on Render + Vercel
The core concept: Users define a sequence of text transformation steps, then execute them on input text. Each step's output becomes the next step's input, creating a pipeline.
- Runtime: Node.js v16+
- Framework: Express.js v5.2.1
- Database: MongoDB (Atlas) with Mongoose ODM
- AI Integration: Google Gemini AI API (v1beta)
- HTTP Client: Axios v1.13.5
- CORS: cors v2.8.6
- Environment: dotenv v17.3.1
- Framework: React 19.2.0 with Vite 7.3.1
- Styling: Tailwind CSS v4.2.1
- Routing: React Router DOM v7.13.1
- HTTP Client: Axios v1.13.5
- Build Tool: Vite with @vitejs/plugin-react
- Linting: ESLint with React plugins
- Backend: Render (Node.js hosting)
- Frontend: Vercel (React hosting)
- Database: MongoDB Atlas
┌─────────────────────────────────────────────────────────┐
│ Vercel Frontend (React) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Pages: Builder, Run, History, Health │ │
│ │ Components: Workflow forms, Run executor, Lists │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────┬──────────────────────────────────────┘
│ HTTPS Calls
▼
┌─────────────────────────────────────────────────────────┐
│ Render Backend (Node.js/Express) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Routes: │ │
│ │ - /api/workflows (CRUD operations) │ │
│ │ - /api/runs (execute, list history) │ │
│ │ - /health (status check) │ │
│ │ - /api/diagnostic (debug Gemini API) │ │
│ └──────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────┬──────┴──────┬─────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ MongoDB Gemini API Environment Request Logging │
└─────────────────────────────────────────────────────────┘
Workflow:
{
_id: ObjectId,
name: String, // e.g., "News Processor"
steps: [String], // e.g., ["clean", "summarize", "keypoints", "tag"]
createdAt: Date,
updatedAt: Date
}Run:
{
_id: ObjectId,
workflowId: ObjectId, // Reference to Workflow
workflowName: String,
input: String, // Original user input
steps: [String], // Steps executed
outputs: [String], // Output after each step
createdAt: Date,
updatedAt: Date
}- Node.js: v16+ (check with
node --version) - npm: v8+ (included with Node.js)
- MongoDB: Cloud account (MongoDB Atlas) or local instance
- Google Gemini API Key: Free from https://aistudio.google.com/app/apikey
- Git: For version control
node --version # Should be v16+
npm --version # Should be v8+
git --version # Should be installedgit clone https://github.com/Aarya-Shinde/Workflow-Builder.git
cd Workflow-Builder# Navigate to backend directory
cd backend
# Install dependencies
npm install# Navigate to frontend directory (from root)
cd frontend
# Install dependencies
npm installCreate a .env file in the backend/ directory:
# MongoDB Connection String
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/workflow-builder?retryWrites=true&w=majority
# Google Gemini API Key
GEMINI_API_KEY=your_gemini_api_key_here
# Server Port (optional, defaults to 5000)
PORT=5000Create a .env.local file in the frontend/ directory:
# Backend API URL
VITE_API_URL=http://localhost:5000For production, set VITE_API_URL to your deployed backend URL (e.g., https://your-render-app.onrender.com).
-
Start Backend:
cd backend npm startBackend will run at
http://localhost:5000 -
Start Frontend (in a new terminal):
cd frontend npm run devFrontend will run at
http://localhost:5173 -
Access the Application: Open your browser and navigate to
http://localhost:5173
-
Build Frontend:
cd frontend npm run build -
Start Backend:
cd backend npm start
GET /api/workflows- List all workflowsPOST /api/workflows- Create a new workflowDELETE /api/workflows/:id- Delete a workflow
GET /api/runs- List all runs (history)POST /api/runs/execute- Execute a workflow
GET /health- Backend health checkGET /api/diagnostic- Test Gemini API connection
- Create Workflows: Enter a name and select up to 4 processing steps from:
- Clean Text: Removes extra whitespace, fixes grammar, and improves readability
- Summarize: Condenses the text into key points
- Extract Key Points: Converts content into bullet-point format
- Tag Category: Automatically categorizes into one of 5 categories (Technology, Business, Health, Education, Entertainment)
- Validation: Requires at least 2 steps and a non-empty name
- Manage Workflows: View existing workflows and delete them
- Select Workflow: Choose from saved workflows
- Input Text: Enter the text to process
- Execute: Run the workflow and see step-by-step outputs
- Results Display: Shows original input, each step's transformation, and final output
- View Past Runs: List of all executed workflows with timestamps
- Details: Click to see full input, steps, and outputs for each run
- Backend Status: Check if the server is running
- Database Connection: Verify MongoDB connectivity
- API Status: Test Gemini AI API availability
- Connect your GitHub repo to Render
- Set build command:
npm install - Set start command:
npm start - Add environment variables in Render dashboard
- Deploy
- Connect your GitHub repo to Vercel
- Set build command:
npm run build - Set output directory:
dist - Add
VITE_API_URLenvironment variable pointing to Render backend - Deploy
- Create a free cluster
- Get connection string
- Whitelist IP addresses or use 0.0.0.0/0 for testing
- Add to backend environment variables
Backend won't start:
- Check if port 5000 is available
- Verify MongoDB URI is correct
- Ensure all dependencies are installed
Frontend can't connect to backend:
- Check if backend is running
- Verify
VITE_API_URLin.env.local - Check CORS settings
Gemini API errors:
- Verify API key is valid
- Check API quota limits
- Ensure internet connection
Database connection fails:
- Check MongoDB Atlas credentials
- Verify network access
- Check firewall settings
- Backend logs appear in terminal/console
- Check browser developer tools for frontend errors
- Use
/healthendpoint for backend diagnostics
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test thoroughly
- Commit:
git commit -m 'Add feature' - Push:
git push origin feature-name - Create a Pull Request
This project is licensed under the ISC License.
For more information or support, please open an issue on GitHub.
A powerful, modular text processing application that lets you chain multiple AI-powered transformations together. Built with Node.js/Express backend, React frontend, and Google Gemini AI.
Live Demo: https://workflow-builder-hzft.onrender.com (Render backend) + Vercel frontend
- Features
- Project Overview
- Tech Stack
- Architecture
- Prerequisites
- Installation and Setup
- Configuration
- How to Run
- API Endpoints
- Functions and Features
- Deployment
- Troubleshooting
- Contributing
- License
- Workflow Management: Create, edit, and manage custom text processing workflows
- AI-Powered Processing: Chain multiple Gemini AI transformations:
- Text Cleaning (remove whitespace, fix grammar)
- Summarization (condense text to key points)
- Key Point Extraction (bullet-point format)
- Auto-Categorization (classify into 5 categories)
- Run History: Track and view past workflow executions
- Health Monitoring: Real-time status dashboard for backend services
- Responsive UI: Modern React interface with Tailwind CSS styling
Workflow Builder is a full-stack application that demonstrates:
- Backend API design with Express.js
- MongoDB data persistence
- Integration with Google Gemini API
- Frontend-backend communication patterns
- Production-ready deployment on Render + Vercel
The core concept: Users define a sequence of text transformation steps, then execute them on input text. Each step's output becomes the next step's input, creating a pipeline.
- Runtime: Node.js v16+
- Framework: Express.js v5.2.1
- Database: MongoDB (Atlas) with Mongoose ODM
- AI Integration: Google Gemini AI API (v1beta)
- HTTP Client: Axios v1.13.5
- CORS: cors v2.8.6
- Environment: dotenv v17.3.1
- Framework: React 19.2.0 with Vite 7.3.1
- Styling: Tailwind CSS v4.2.1
- Routing: React Router DOM v7.13.1
- HTTP Client: Axios v1.13.5
- Build Tool: Vite with @vitejs/plugin-react
- Linting: ESLint with React plugins
- Backend: Render (Node.js hosting)
- Frontend: Vercel (React hosting)
- Database: MongoDB Atlas
┌─────────────────────────────────────────────────────────┐
│ Vercel Frontend (React) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Pages: Builder, Run, History, Health │ │
│ │ Components: Workflow forms, Run executor, Lists │ │
│ └──────────────────────────────────────────────────┘ │
└──────────────────┬──────────────────────────────────────┘
│ HTTPS Calls
▼
┌─────────────────────────────────────────────────────────┐
│ Render Backend (Node.js/Express) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Routes: │ │
│ │ - /api/workflows (CRUD operations) │ │
│ │ - /api/runs (execute, list history) │ │
│ │ - /health (status check) │ │
│ │ - /api/diagnostic (debug Gemini API) │ │
│ └──────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────┬──────┴──────┬─────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ MongoDB Gemini API Environment Request Logging │
└─────────────────────────────────────────────────────────┘
Workflow:
{
_id: ObjectId,
name: String, // e.g., "News Processor"
steps: [String], // e.g., ["clean", "summarize", "keypoints", "tag"]
createdAt: Date,
updatedAt: Date
}Run:
{
_id: ObjectId,
workflowId: ObjectId, // Reference to Workflow
workflowName: String,
input: String, // Original user input
steps: [String], // Steps executed
outputs: [String], // Output after each step
createdAt: Date,
updatedAt: Date
}- Node.js: v16+ (check with
node --version) - npm: v8+ (included with Node.js)
- MongoDB: Cloud account (MongoDB Atlas) or local instance
- Google Gemini API Key: Free from https://aistudio.google.com/app/apikey
- Git: For version control
node --version # Should be v16+
npm --version # Should be v8+
git --version # Should be installedgit clone https://github.com/Aarya-Shinde/Workflow-Builder.git
cd Workflow-Builder# Navigate to backend directory
cd backend
# Install dependencies
npm install# Navigate to frontend directory (from root)
cd frontend
# Install dependencies
npm installCreate a .env file in the backend/ directory:
# MongoDB Connection String
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/workflow-builder?retryWrites=true&w=majority
# Google Gemini API Key
GEMINI_API_KEY=your_gemini_api_key_here
# Server Port (optional, defaults to 5000)
PORT=5000Create a .env.local file in the frontend/ directory:
# Backend API URL
VITE_API_URL=http://localhost:5000For production, set VITE_API_URL to your deployed backend URL (e.g., https://your-render-app.onrender.com).
-
Start Backend:
cd backend npm startBackend will run at
http://localhost:5000 -
Start Frontend (in a new terminal):
cd frontend npm run devFrontend will run at
http://localhost:5173 -
Access the Application: Open your browser and navigate to
http://localhost:5173
-
Build Frontend:
cd frontend npm run build -
Start Backend:
cd backend npm start
GET /api/workflows- List all workflowsPOST /api/workflows- Create a new workflowDELETE /api/workflows/:id- Delete a workflow
GET /api/runs- List all runs (history)POST /api/runs/execute- Execute a workflow
GET /health- Backend health checkGET /api/diagnostic- Test Gemini API connection
- Create Workflows: Enter a name and select up to 4 processing steps from:
- Clean Text: Removes extra whitespace, fixes grammar, and improves readability
- Summarize: Condenses the text into key points
- Extract Key Points: Converts content into bullet-point format
- Tag Category: Automatically categorizes into one of 5 categories (Technology, Business, Health, Education, Entertainment)
- Validation: Requires at least 2 steps and a non-empty name
- Manage Workflows: View existing workflows and delete them
- Select Workflow: Choose from saved workflows
- Input Text: Enter the text to process
- Execute: Run the workflow and see step-by-step outputs
- Results Display: Shows original input, each step's transformation, and final output
- View Past Runs: List of all executed workflows with timestamps
- Details: Click to see full input, steps, and outputs for each run
- Backend Status: Check if the server is running
- Database Connection: Verify MongoDB connectivity
- API Status: Test Gemini AI API availability
- Connect your GitHub repo to Render
- Set build command:
npm install - Set start command:
npm start - Add environment variables in Render dashboard
- Deploy
- Connect your GitHub repo to Vercel
- Set build command:
npm run build - Set output directory:
dist - Add
VITE_API_URLenvironment variable pointing to Render backend - Deploy
- Create a free cluster
- Get connection string
- Whitelist IP addresses or use 0.0.0.0/0 for testing
- Add to backend environment variables
Backend won't start:
- Check if port 5000 is available
- Verify MongoDB URI is correct
- Ensure all dependencies are installed
Frontend can't connect to backend:
- Check if backend is running
- Verify
VITE_API_URLin.env.local - Check CORS settings
Gemini API errors:
- Verify API key is valid
- Check API quota limits
- Ensure internet connection
Database connection fails:
- Check MongoDB Atlas credentials
- Verify network access
- Check firewall settings
- Backend logs appear in terminal/console
- Check browser developer tools for frontend errors
- Use
/healthendpoint for backend diagnostics
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Test thoroughly
- Commit:
git commit -m 'Add feature' - Push:
git push origin feature-name - Create a Pull Request
For more information or support, please open an issue on GitHub.