How amalitech-training-academy/doclift works
Doclift is a PDF upload and conversion experience: users select a document, follow a session’s progress, and view conversion results. The backend exposes an upload endpoint whose service is documented to validate and store the PDF and create a job; the sampled extraction implementation extracts page text spans and images and detects candidate table regions. The web context persists draft files and session state locally. The README is empty, and sampled source does not establish how web screens connect to the backend or how extraction feeds a completed result, so those links are omitted.
Main entry points: ConversionContext.tsx Conversion context · UploadController.java Upload endpoint · PdfExtractionService.java PDF extraction · UploadScreen.tsx Upload screen
Components 16
Web experience
- Upload screen
apps/web/src/components/upload/UploadScreen.tsx - Progress screen
apps/web/src/components/progress/ProgressScreen.tsx - Results screen
apps/web/src/components/results/ResultsScreen.tsx - Conversion context
apps/web/src/context/ConversionContext.tsx - Draft file store
apps/web/src/lib/fileStorage.ts - Session persistence
apps/web/src/lib/conversionSession.ts
Backend upload
- Upload endpoint
apps/backend/src/main/java/com/amalitech/backend/controller/UploadController.java - Upload service
apps/backend/src/main/java/com/amalitech/backend/service/UploadService.java - PDF validation
apps/backend/src/main/java/com/amalitech/backend/service/PdfValidationService.java - File storage
apps/backend/src/main/java/com/amalitech/backend/service/FileStorageService.java
PDF analysis
- PDF extraction
apps/backend/src/main/java/com/amalitech/backend/service/PdfExtractionService.java - Page extraction data
apps/backend/src/main/java/com/amalitech/backend/service/PdfExtractionResult.java
Job state
- Job service
apps/backend/src/main/java/com/amalitech/backend/service/JobService.java - Job repository
apps/backend/src/main/java/com/amalitech/backend/repository/JobRepository.java - Job file repository
apps/backend/src/main/java/com/amalitech/backend/repository/JobFileRepository.java
Other components
- Document user
Connections 5
- Document user → Upload screen: selects PDF
- Conversion context → Draft file store: saves and restores
- Conversion context → Session persistence: persists session
- Upload endpoint → Upload service: handles upload
- PDF extraction → Page extraction data: produces