Overview
The application uses Next.js 13+ App Router with internationalization support. All pages are organized under the[locale] dynamic segment for multi-language support.
Page Routes
Home Page
Route:/[locale]/
File: app/[locale]/page.js
Purpose: Landing page with compression information, before/after examples, FAQ section, and call-to-action.
Component: Inicio
Features:
- Hero section with compression statistics
- How compression works explanation
- Before/after compression examples
- FAQ accordion
- Call-to-action buttons
Upload Page
Route:/[locale]/upload
File: app/[locale]/upload/page.js
Purpose: World file upload interface with drag-and-drop support and chunked upload.
Component: HomePage (client component)
Features:
- File drag-and-drop area
- File type validation (.zip, .tar, .tar.gz)
- File size limit (4GB max)
- Chunked upload (50MB chunks)
- Upload progress tracking
- Queue status display
- Redirect to status page on success
Status Page
Route:/[locale]/status/[id]
File: app/[locale]/status/[id]/page.js
Purpose: Real-time compression status tracking with queue position.
Component: StatusPage (client component)
Features:
- Real-time status polling (every 5 seconds)
- Queue position tracking
- Progress indicators
- Error handling with user-friendly messages
- Auto-redirect to download page when ready
- Contact information for support
pendiente- In queue waitingprocesando- Currently being processedlisto- Ready for downloadexpirado- Link expirederror_*- Various error states
Download Page
Route:/[locale]/download/[id]
File: app/[locale]/download/[id]/page.js
Purpose: Download compressed world with compression statistics.
Component: DownloadPage (client component)
Features:
- Download link generation
- Compression statistics display
- File size comparison
- Expiration date countdown
- File structure preview
API Routes
Queue Status API
Route:GET /api/cola
File: app/api/cola/route.js
Purpose: Fetch current queue length from backend.
Response:
Status Proxy API
Route:GET /api/proxy/estado/[id]
File: app/api/proxy/estado/[id]/route.js
Purpose: Proxy status requests to backend API.
Parameters:
id- Job/server ID for the compression task
Download Proxy API
Route:GET /api/proxy/descargar/[id]
File: app/api/proxy/descargar/[id]/route.js
Purpose: Proxy file downloads from backend storage.
Parameters:
id- Job/server ID for the compression task
