A comprehensive mobile app testing and review platform that provides extensive feedback on Android APK files. Upload an APK and receive detailed analysis covering security, performance, accessibility, UI/UX, permissions, and code quality.
- Security Analysis - Detects debug mode, backup vulnerabilities, cleartext traffic, dangerous permissions, code obfuscation status, and exported components
- Performance Analysis - APK size assessment, multi-DEX analysis, resource optimization scoring, cold start time estimation, memory footprint prediction, native library architecture coverage
- UI/UX Analysis - Screen density coverage, adaptive icon detection, Material Design compliance scoring, dark theme support, landscape/tablet layout detection, navigation pattern identification
- Accessibility Analysis - Content description coverage, touch target compliance, color contrast assessment, screen reader optimization, WCAG compliance level estimation, font scaling support
- Permissions Analysis - Dangerous permission audit with risk levels, permission combination analysis, unnecessary permission detection, permission group mapping, privacy risk assessment
- Code Quality Analysis - SDK version assessment, architecture pattern detection, third-party library identification, component count analysis, code complexity estimation
- Weighted overall score (0-100) with letter grade (A+ to F)
- Per-module scoring with individual letter grades
- Detailed findings with severity levels (Critical, High, Medium, Low, Info)
- Actionable recommendations prioritized by effort and impact
- Cross-cutting analysis identifying compound risks
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: SQLite (via better-sqlite3)
- APK Parsing: adm-zip, xml2js
- Runtime: Node.js 18+
- Node.js 18 or later
- npm or yarn
# Clone the repository
git clone <repository-url>
cd Reviewing-App
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:3000.
npm run build
npm startsrc/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ │ ├── submit/ # POST /api/submit - Upload APK
│ │ └── reviews/ # GET /api/reviews - List & detail
│ ├── reviews/ # Review list & detail pages
│ ├── submit/ # Submit app page
│ ├── layout.tsx # Root layout
│ └── page.tsx # Dashboard page
├── components/ # React components
│ ├── Header.tsx # Navigation header
│ ├── Footer.tsx # Page footer
│ ├── ScoreGauge.tsx # Circular score visualization
│ ├── ReviewCard.tsx # Review summary card
│ ├── AnalysisSection.tsx # Expandable analysis section
│ ├── SubmitForm.tsx # APK upload form
│ └── ReportView.tsx # Full report display
├── engine/ # Analysis engine
│ ├── index.ts # Main analysis orchestrator
│ ├── manifest-analyzer.ts # APK manifest parsing
│ ├── security-analyzer.ts # Security assessment
│ ├── performance-analyzer.ts # Performance assessment
│ ├── ui-ux-analyzer.ts # UI/UX assessment
│ ├── accessibility-analyzer.ts # Accessibility assessment
│ ├── permissions-analyzer.ts # Permissions assessment
│ ├── code-quality-analyzer.ts # Code quality assessment
│ └── report-generator.ts # Report compilation
└── lib/ # Shared utilities
├── db.ts # SQLite database operations
├── types.ts # TypeScript type definitions
└── utils.ts # Helper functions
Upload an APK file for analysis.
Request: multipart/form-data
apk(File) - The APK fileappName(string, optional) - Display name for the app
Response:
{
"id": "uuid",
"status": "completed",
"overallScore": 72,
"summary": "Overall Grade: B (72/100)...",
"redirectUrl": "/reviews/uuid"
}List all completed reviews.
Get detailed analysis for a specific submission.
| Grade | Score Range |
|---|---|
| A+ | 97-100 |
| A | 90-96 |
| B+ | 85-89 |
| B | 78-84 |
| C+ | 70-77 |
| C | 60-69 |
| D | 50-59 |
| F | 0-49 |
| Category | Weight |
|---|---|
| Security | 25% |
| Performance | 20% |
| UI/UX | 15% |
| Accessibility | 15% |
| Permissions | 15% |
| Code Quality | 10% |
MIT