A modern web application for managing OpenProject tickets with AI-powered test case generation capabilities.
This application provides a streamlined interface for viewing and managing OpenProject work packages (tickets) with enhanced features including:
- Browse projects and their associated tickets
- View detailed ticket information
- AI-powered test case generation for quality assurance
- Responsive design with dark/light mode support
- Node.js 18+ and npm installed (install with nvm)
- An OpenProject instance (cloud or self-hosted)
- OpenProject API token
-
Clone the repository
git clone <YOUR_GIT_URL> cd <YOUR_PROJECT_NAME>
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Configure OpenProject connection
- Navigate to Settings in the app
- Enter your OpenProject API URL (e.g.,
https://openproject.example.com) - Enter your OpenProject email
- Enter your OpenProject API token
- Click Save
- Log in to your OpenProject instance
- Go to My Account β Access tokens
- Click "Generate" to create a new API token
- Copy the token and paste it in the Settings page
- React 18 - UI library for building interactive interfaces
- TypeScript - Type-safe JavaScript for better developer experience
- Vite - Fast build tool and development server
- Tailwind CSS - Utility-first CSS framework for rapid styling
- shadcn/ui - High-quality, accessible component library
- React Router - Client-side routing
- TanStack Query - Powerful data fetching and caching
- Lovable Cloud (Supabase) - Backend-as-a-Service platform
- Edge Functions - Serverless functions for API proxying and AI integration
Purpose: Fetch projects, work packages, and ticket details from your OpenProject instance
Why we use it:
- Provides comprehensive project management data
- RESTful API with extensive documentation
- Supports filtering, sorting, and pagination
- Industry-standard work package tracking
Endpoints used:
/api/v3/projects- List all projects/api/v3/projects/:id- Get project details/api/v3/projects/:id/work_packages- List tickets for a project/api/v3/work_packages/:id- Get detailed ticket information
Purpose: Securely proxy requests to OpenProject API
Why we use it:
- Security: Keeps API credentials server-side
- CORS: Bypasses browser cross-origin restrictions
- Centralization: Single point for API request handling
- Error handling: Consistent error responses
Location: supabase/functions/openproject-proxy/index.ts
Purpose: Generate test cases for tickets using AI models
Why we use it:
- No API key management: Pre-configured in Lovable Cloud
- Multiple models: Access to Google Gemini and OpenAI GPT models
- Cost-effective: Optimized pricing with free tier included
- Fast integration: No complex setup required
Models available:
google/gemini-2.5-flash(default) - Fast and efficientgoogle/gemini-2.5-pro- Advanced reasoningopenai/gpt-5- Powerful general-purpose model
Location: supabase/functions/generate-test-cases/index.ts
βββ src/
β βββ components/ # Reusable UI components
β β βββ ui/ # shadcn/ui components
β β βββ Layout.tsx # Main layout wrapper
β β βββ AppSidebar.tsx # Navigation sidebar
β βββ pages/ # Route pages
β β βββ Projects.tsx # Project list view
β β βββ Tickets.tsx # Ticket list view
β β βββ TicketDetail.tsx # Detailed ticket view
β β βββ Settings.tsx # Configuration page
β βββ integrations/ # External service integrations
β β βββ supabase/ # Supabase client and types
β βββ App.tsx # Root component with routing
βββ supabase/
β βββ functions/ # Edge functions
β βββ openproject-proxy/ # OpenProject API proxy
β βββ generate-test-cases/ # AI test case generator
βββ README.md
- View all accessible OpenProject projects
- Search and filter projects by name or identifier
- Navigate to project-specific ticket views
- List all work packages for a project
- Filter tickets by status (Open, Closed, All)
- Search tickets by subject
- View detailed ticket information including:
- Subject and description
- Status and priority
- Assignee information
- Creation date
- Generate comprehensive test scenarios with one click
- AI analyzes ticket details to create relevant test cases
- Structured test cases with:
- Test case titles
- Preconditions
- Test steps
- Expected results
- API credentials stored locally in browser storage
- All API requests proxied through secure edge functions
- No credentials exposed in client-side code
- CORS-enabled edge functions for secure cross-origin requests
Deploy via Lovable platform:
- Open Lovable Project
- Click Share β Publish
- Your app will be live at
<your-app>.lovable.app
To connect a custom domain:
- Navigate to Project β Settings β Domains
- Click "Connect Domain"
- Follow the DNS configuration steps
Learn more about custom domains
- Make changes locally or via Lovable Editor
- Test in development mode (
npm run dev) - Commit and push changes
- Changes auto-deploy via Lovable
- TypeScript for type safety
- Tailwind CSS for styling (use design tokens from
index.css) - Component-based architecture
- Functional React components with hooks
This project is created with Lovable. Visit the Lovable Project Page for more information.