amiready-ai
No description available
Ask AI about amiready-ai
Powered by Claude Β· Grounded in docs
I know everything about amiready-ai. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
AI-Ready API Checker
A comprehensive tool for analyzing OpenAPI specifications to assess their AI readiness and provide actionable suggestions for improvement.
Features
- OpenAPI Specification Analysis: Supports both URL and file upload
- AI Readiness Scoring: Custom heuristics to evaluate API endpoints
- Spectral Linting: Full integration with Spectral for OpenAPI validation
- OpenAI-Powered Suggestions: AI-generated recommendations (optional)
- Real-time Progress Tracking: Live updates during analysis
- Modern UI: Clean, responsive interface with dark mode support
Quick Start
-
Clone the repository
git clone <repository-url> cd amiready-ai -
Install dependencies
npm install -
Start the development server
npm run dev -
Open your browser Navigate to
http://localhost:3000
Usage
Basic Analysis (Without OpenAI)
- Enter an OpenAPI specification URL or upload a file
- Click "Analyze Specification"
- View AI readiness scores and suggestions
Enhanced Analysis (With OpenAI)
- Enter an OpenAPI specification URL or upload a file
- Provide your OpenAI API key (optional)
- Click "Analyze Specification"
- View AI readiness scores, custom suggestions, and AI-generated recommendations
Testing
The project includes a comprehensive test suite to ensure reliability and maintainability.
Running Tests
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
Test Coverage
The test suite covers:
Frontend Tests
- Components: InputSection, ProgressSection, ResultsView
- Hooks: useAnalysis hook with state management
- Integration: Main page workflow
Backend Tests
- Services: Analysis service, AI readiness analyzer
- API Endpoints: POST and GET routes
- Business Logic: OpenAPI parsing, scoring algorithms
Test Scenarios
- β Analysis without API key
- β Analysis with API key
- β File upload functionality
- β Progress tracking and UI updates
- β Error handling and edge cases
- β Component rendering and interactions
- β State management and data flow
Test Structure
src/
βββ components/__tests__/
β βββ InputSection.test.tsx # Form input and submission tests
β βββ ProgressSection.test.tsx # Progress tracking UI tests
β βββ ResultsView.test.tsx # Results display tests
βββ hooks/__tests__/
β βββ useAnalysis.test.ts # State management tests
βββ lib/__tests__/
β βββ analysisService.test.ts # Core analysis logic tests
β βββ aiReadinessAnalyzer.test.ts # Scoring algorithm tests
βββ app/__tests__/
βββ page.test.tsx # Integration tests
Continuous Integration
Tests run automatically on:
- Push to main/develop branches
- Pull requests
- Multiple Node.js versions (18.x, 20.x)
Technical Architecture
Frontend
- Next.js 15: React framework with App Router
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Lucide React: Modern icon library
Backend
- Next.js API Routes: Server-side API endpoints
- Server-Sent Events (SSE): Real-time progress updates
- OpenAI API: AI-powered suggestions
- Spectral: OpenAPI specification validation
Key Components
Analysis Pipeline
- Input Processing: URL fetching or file parsing
- OpenAPI Validation: Version checking and structure validation
- Spectral Linting: Automated rule checking
- AI Readiness Scoring: Custom heuristics evaluation
- OpenAI Suggestions: AI-generated recommendations (optional)
- Results Compilation: Structured output generation
AI Readiness Heuristics
- Documentation Quality: Summary, description, examples
- Error Handling: 4xx/5xx response documentation
- Pagination Support: Limit, page, offset parameters
- Parameter Documentation: Complete parameter descriptions
- Naming Consistency: Uniform naming conventions
API Endpoints
POST /api/analyze
Analyzes an OpenAPI specification.
Request:
url(string, optional): OpenAPI specification URLfile(File, optional): OpenAPI specification fileapiKey(string, optional): OpenAI API key
Response:
{
"id": "uuid",
"spectralResults": {
"errors": [...],
"warnings": [...],
"info": [...]
},
"aiReadinessScores": [
{
"path": "/endpoint",
"method": "GET",
"score": 85,
"summary": "Endpoint description",
"suggestions": ["Suggestion 1", "Suggestion 2"]
}
],
"suggestions": ["AI suggestion 1", "AI suggestion 2"],
"timestamp": "2024-01-01T00:00:00.000Z"
}
GET /api/analyze?id=<result-id>
Retrieves a previously stored analysis result.
Streaming Technology
The application uses Server-Sent Events (SSE) for real-time progress updates:
- Real-time Updates: Progress percentage and current step
- Step-by-step Feedback: Detailed status for each analysis phase
- Error Handling: Graceful error reporting
- Connection Management: Automatic reconnection and cleanup
SSE Event Types
progress: Current analysis progress (percentage, step, stepKey)complete: Final results with full analysis data
Current Implementation Status
β Implemented Features
- OpenAPI Specification Parsing: JSON and YAML support
- AI Readiness Scoring: Custom heuristics with detailed suggestions
- Spectral Linting: Full OpenAPI validation with automated rule checking
- OpenAI Integration: AI-powered suggestions with timeout handling
- Real-time Progress Tracking: SSE-based streaming updates
- File Upload Support: Direct file upload functionality
- URL Fetching: Remote OpenAPI specification fetching
- Comprehensive Testing: Full test coverage with 38 tests
- Modern UI: Responsive design with dark mode
π Planned Features
- Enhanced Error Handling: More detailed error categorization
- Custom Rulesets: Configurable linting rules
- Export Functionality: PDF/JSON report generation
Service Layer Architecture
analysisService.ts: Main orchestration logicaiReadinessAnalyzer.ts: Custom scoring algorithmsopenaiService.ts: AI integration with timeout handlingopenapiParser.ts: Specification parsing and validationresultsStore.ts: In-memory data managementstreamUtils.ts: SSE utilities and encoding
Type Safety
- Centralized Types: All interfaces in
src/types/ - Strict Typing: Full TypeScript coverage
- Import Aliases: Clean
@/imports throughout
Dependencies
Core Dependencies
- Next.js 15.4.4: React framework
- React 19.1.0: UI library
- TypeScript 5: Type safety
- Tailwind CSS 4: Styling
- Lucide React: Icons
Analysis Dependencies
- @stoplight/spectral: OpenAPI linting and validation
- js-yaml: YAML parsing
- uuid: Unique ID generation
Testing Dependencies
- Jest: Test framework
- @testing-library/react: React testing utilities
- @testing-library/jest-dom: DOM testing utilities
Troubleshooting
Build Issues
If you encounter webpack module errors:
# Clear Next.js cache
rm -rf .next
# Clear node_modules cache
rm -rf node_modules/.cache
# Reinstall dependencies
npm install
Test Issues
If tests fail with module resolution errors:
# Clear Jest cache
npm test -- --clearCache
# Run tests with verbose output
npm test -- --verbose
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
This project is licensed under the MIT License.
