A comprehensive, modern React-based web application that provides essential tools for QA engineers and testers. Built with React, Tailwind CSS, and integrated with Google's Gemini AI for intelligent automation.
- Features
- Quick Start
- Installation
- Usage Guide
- Architecture
- Tech Stack
- Project Structure
- API Integration
- Development
- Building for Production
- Browser Support
- Contributing
- Future Enhancements
- License
Leverage the power of Google's Gemini AI to automatically generate comprehensive test cases.
- Generate positive tests, negative tests, edge cases, and boundary tests
- Just describe your feature and let AI create detailed test scenarios
- Supports complex feature descriptions
- Instant results with copy-to-clipboard functionality
Requires: Gemini API key (free tier available)
Generate realistic test data instantly with local JavaScript processing.
- Full names - Random realistic names
- Email addresses - Valid email formats
- Phone numbers - Formatted phone numbers
- Random strings - Customizable length
- Random numbers - Configurable ranges
- Dates - Random date generation
- Physical addresses - Complete addresses
- Secure passwords - Strong password generation
Features:
- Customizable output count (1-100 items)
- Adjustable string length for random text
- All generation happens locally in your browser (no API needed)
- Copy all generated data instantly
Create CSS and XPath selectors with AI assistance or manual construction.
- Describe an element in natural language
- Get both CSS and XPath selectors instantly
- Perfect for complex element identification
- Construct selectors using:
- Tag name
- ID
- Class name
- Attributes (name, type, etc.)
- Real-time preview of both CSS and XPath
- Auto-updates as you type
Perfect for: Web automation, testing, scraping
Generate ready-to-use automation code for popular testing frameworks.
Supported Frameworks:
- Selenium (Python)
- Selenium (Java)
- Playwright (JavaScript)
- Playwright (Python)
- Cypress
- WebdriverIO
Supported Actions:
- Click element
- Type text
- Clear field
- Get text content
- Get attribute value
- Check visibility
- Check enabled state
Features:
- Real-time code preview
- Dynamic input fields based on action
- Syntax-aware code generation
- Framework-specific best practices
- Quick example templates
Comprehensive string transformation toolkit with 16+ utilities.
Encoding/Decoding:
- Base64 encode/decode
- URL encode/decode
- HTML escape/unescape
Case Transformations:
- UPPERCASE
- lowercase
- Title Case
- camelCase
- snake_case
- kebab-case
String Operations:
- Reverse string
- Trim whitespace
- Remove all spaces
- Character count
- Word count
Special Features:
- Swap input/output to chain transformations
- All processing happens locally (privacy-friendly)
- Instant results
Get up and running in under 2 minutes:
# Clone the repository
git clone https://github.com/lirany1/quality-automation-hub.git
# Navigate to project directory
cd quality-automation-hub
# Install dependencies
npm install
# Start development server
npm run devOpen your browser and navigate to http://localhost:5173
That's it! π The application is now running locally.
- Node.js (v14 or higher) - Download here
- npm or yarn - Comes with Node.js
-
Clone the repository:
git clone https://github.com/lirany1/quality-automation-hub.git cd quality-automation-hub -
Install dependencies:
npm install # or yarn install -
Start the development server:
npm run dev # or yarn dev -
Open in browser: Navigate to the URL shown in your terminal (typically
http://localhost:5173)
- Navigate to "Test Cases" in the sidebar
- Enter your Gemini API key (free tier available)
- Describe your feature in the text area
- Click "Generate Test Cases"
- Copy the results using the copy button
Example Input:
User login feature with username and password
- Go to "Test Data Gen" in the sidebar
- Set the number of items to generate (default: 10)
- Click any data type button (Name, Email, Phone, etc.)
- Generated data appears instantly
- Copy using the copy button
No API key needed - Works completely offline!
AI Mode:
- Enter your Gemini API key
- Describe the element (e.g., "Submit button with blue background")
- Get CSS and XPath selectors instantly
Manual Mode:
- Enter element details (tag, ID, class, attributes)
- Selectors generate automatically as you type
- Use for precise control over selector construction
- Select your testing framework (Selenium, Playwright, etc.)
- Enter a CSS selector
- Choose an action (click, type, etc.)
- Enter additional parameters if needed (e.g., text to type)
- Code generates automatically
- Copy and use in your tests
- Enter or paste your text
- Click any transformation button
- Result appears instantly
- Use "Swap" to chain transformations
- Copy the final result
Example Workflow:
- Paste text
- Click "lowercase"
- Click "Swap" to move result to input
- Click "snake_case"
- Copy final result
App.jsx (Root + Router)
βββ Sidebar.jsx (Fixed Navigation)
β βββ NavLink Components
β
βββ Routes (Main Content Area)
βββ Dashboard.jsx
β βββ ToolCard.jsx Γ 5
β
βββ AiTestCaseGenerator.jsx
β βββ Input Fields
β βββ OutputBox β CopyButton
β
βββ TestDataGenerator.jsx
β βββ Control Panel
β βββ Output + CopyButton
β
βββ SelectorGenerator.jsx
β βββ AI Section (with useGemini hook)
β β βββ OutputBox Γ 2 (CSS + XPath)
β βββ Manual Section
β βββ OutputBox Γ 2 (CSS + XPath)
β
βββ CodeSnippetGenerator.jsx
β βββ Framework Selector
β βββ Action Selector
β βββ Code Output + CopyButton
β
βββ StringUtilities.jsx
βββ Input Textarea
βββ Utility Buttons Γ 16
βββ Output + CopyButton
User Input β Component State β useGemini Hook β Gemini API
β
Component State β Parse Response β API Response ββββββ
β
OutputBox Component β CopyButton
User Input β Component State β useEffect / Button Handler
β
Local JS Function
β
setState(output)
β
Display + CopyButton
/ β Dashboard (Homepage)
/test-cases β AI Test Case Generator
/test-data β Test Data Generator
/selectors β Selector Generator (AI + Manual)
/code-snippets β Code Snippet Generator
/string-utils β String Utilities
| Technology | Version | Purpose |
|---|---|---|
| React | 18.x | UI framework with functional components and hooks |
| React Router | 6.x | Client-side routing and navigation |
| Tailwind CSS | 3.x | Utility-first CSS styling |
| Vite | 5.x | Fast build tool and development server |
| Gemini AI | 2.5-flash | AI-powered features |
{
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.2",
"tailwindcss": "^3.4.1",
"vite": "^5.4.2"
}- β Functional components with React Hooks
- β Component-based architecture
- β Clean separation of concerns
- β Reusable components and hooks
- β Modern ES6+ JavaScript
- β Utility-first CSS with Tailwind
quality-automation-hub/
βββ public/ # Static assets
β βββ vite.svg
β
βββ src/
β βββ components/ # Reusable UI components
β β βββ Sidebar.jsx # Fixed navigation sidebar
β β βββ ToolCard.jsx # Dashboard tool cards
β β βββ OutputBox.jsx # Consistent output display
β β βββ CopyButton.jsx # Smart copy-to-clipboard
β β βββ index.js # Component exports
β β
β βββ pages/ # Route components
β β βββ Dashboard.jsx # Homepage with tool overview
β β βββ AiTestCaseGenerator.jsx
β β βββ TestDataGenerator.jsx
β β βββ SelectorGenerator.jsx
β β βββ CodeSnippetGenerator.jsx
β β βββ StringUtilities.jsx
β β βββ index.js # Page exports
β β
β βββ hooks/ # Custom React hooks
β β βββ useGemini.js # Gemini API integration
β β
β βββ services/ # API and business logic
β β
β βββ App.jsx # Main app with router
β βββ main.jsx # React entry point
β βββ index.css # Global styles + Tailwind
β
βββ .gitignore # Git ignore rules
βββ package.json # Dependencies and scripts
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ postcss.config.js # PostCSS configuration
βββ eslint.config.js # ESLint configuration
βββ index.html # HTML template
β
βββ README.md # This file
βββ ARCHITECTURE.md # Detailed architecture docs
βββ PROJECT_SUMMARY.md # Project overview
βββ QUICKSTART.md # Quick start guide
βββ CHECKLIST.md # Implementation checklist
For AI-powered features (Test Case Generator and AI Selector Generator), you'll need a free Gemini API key.
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the generated key
- Navigate to any AI-powered tool
- Paste your API key in the "API Key" input field
- The key is stored only in memory for the current session
- Your key is never saved or logged - privacy guaranteed
Model Used: gemini-2.5-flash-preview-09-2025
Built-in Features:
- β Exponential backoff retry mechanism (3 retries)
- β Rate limit handling (429 errors)
- β Server error recovery (5xx errors)
- β Loading state indicators
- β Comprehensive error messages
Free Tier Limits:
- 60 requests per minute
- 1,500 requests per day
# Start development server with hot reload
npm run dev
# Build for production
npm run build
# Preview production build locally
npm run preview
# Run ESLint
npm run lint- Make changes to source files
- Hot Module Replacement automatically reloads
- Test in browser at
http://localhost:5173 - Build when ready with
npm run build - Preview production build with
npm run preview
All components follow these patterns:
Functional Components:
import { useState, useEffect } from 'react';
function MyComponent() {
const [state, setState] = useState('');
useEffect(() => {
// Side effects
}, [dependencies]);
return (
<div className="tailwind-classes">
{/* JSX */}
</div>
);
}
export default MyComponent;Custom Hooks:
import { useState } from 'react';
export function useCustomHook() {
const [data, setData] = useState(null);
const doSomething = async () => {
// Logic
};
return { data, doSomething };
}This project uses Tailwind CSS exclusively. No custom CSS classes.
Color Scheme:
- Background:
bg-gray-900,bg-gray-800 - Text:
text-gray-200,text-gray-400 - Primary:
bg-blue-600,hover:bg-blue-700 - Success:
text-green-500 - Error:
text-red-500
Common Patterns:
// Card
<div className="bg-gray-800 rounded-lg p-6">
// Button
<button className="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg">
// Input
<input className="w-full bg-gray-700 text-gray-200 p-3 rounded-lg" />npm run buildThis creates an optimized production build in the dist/ directory.
Build includes:
- β Minified JavaScript
- β Optimized CSS (Tailwind purged)
- β Asset optimization
- β Code splitting
- β Tree shaking
npm run previewTest the production build locally before deployment.
The dist/ folder can be deployed to any static hosting service:
- Vercel -
vercel deploy - Netlify - Drag and drop
dist/folder - GitHub Pages - Push
dist/togh-pagesbranch - Firebase Hosting -
firebase deploy - AWS S3 - Upload
dist/contents
For production, you may want to add environment variables:
# .env.production
VITE_APP_NAME=Quality Automation Hub
VITE_API_ENDPOINT=your-endpointAccess in code:
const appName = import.meta.env.VITE_APP_NAME;This application works on all modern browsers:
| Browser | Minimum Version |
|---|---|
| Chrome | 90+ |
| Edge | 90+ |
| Firefox | 88+ |
| Safari | 14+ |
| Opera | 76+ |
Recommended: Chrome or Edge for best performance
Features used:
- ES6+ JavaScript
- CSS Grid & Flexbox
- Fetch API
- Clipboard API (with fallback)
Contributions are welcome! Here's how you can help:
- Check if the issue already exists
- Create a new issue with:
- Clear title
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Create an issue labeled "enhancement"
- Describe the feature and use case
- Explain why it would be valuable
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes
- Test thoroughly
- Commit with clear messages (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Use functional components and hooks
- Follow existing code style
- Use Tailwind CSS for styling
- Add comments for complex logic
- Keep components focused and small
- Dark/Light Mode Toggle - User preference support
- API Response Validator - JSON/XML validation and formatting
- SQL Query Generator - AI-powered SQL generation
- Test Report Generator - Export test results
- Screenshot Comparison - Visual regression testing
- Performance Testing Utilities - Load time analysis
- Local Storage - Save API keys (optional)
- Export Functionality - Download test cases to file
- More Frameworks - Support for additional testing tools
- Code Syntax Highlighting - Enhanced code display
- User Preferences - Save tool settings
- Keyboard Shortcuts - Power user features
- Mobile Responsive - Enhanced mobile experience
- PWA Support - Install as app
- Multi-language Support - i18n integration
Have an idea? Create an issue and let's discuss!
This project is licensed under the MIT License - see the LICENSE file for details.
- β Free to use
- β Free to modify
- β Free to distribute
- β Commercial use allowed
- β No warranty provided
- React - A JavaScript library for building user interfaces
- Vite - Next generation frontend tooling
- Tailwind CSS - A utility-first CSS framework
- Google Gemini - AI-powered features
Built with β€οΈ for QA engineers and testers who want to automate repetitive tasks and focus on what matters most.
Thanks to all contributors who have helped improve this project!
- Issues: GitHub Issues
- Discussions: GitHub Discussions
If you find this project helpful, please consider:
- Starring the repository β
- Sharing with your team
- Contributing improvements
- Reporting bugs
- Suggesting features
- Buying me a coffee β
Built with β€οΈ for QA Engineers
Made with React, Tailwind CSS, and lots of β