A React + TypeScript frontend for the Document Processing API.
Allows users to submit document analysis jobs, track job status in real time, and view analysis results.
- Submit document text for asynchronous analysis
- Browse all jobs ordered by submission time
- Look up any job by ID
- Real-time status polling for active jobs
- Analysis result display including word count, character count, line count, and summary
- Status badges with colour coding per job state
- Responsive two-column layout
- React 19
- TypeScript
- Vite
- Tailwind CSS
- Axios
- Document Processing API — ASP.NET Core backend with RabbitMQ worker and PostgreSQL persistence
- Node.js 20+ (via NVM recommended)
- Document Processing API running locally
1. Clone the repository
git clone https://github.com/juhagh/document-processing-ui.git
cd document-processing-ui2. Install dependencies
npm install3. Start the development server
npm run devThe UI will be available at http://localhost:5173.
The API is expected to be running at
http://localhost:8080. The Vite dev server proxies all/apirequests to the API automatically.
src/
api/ # Axios API client
components/ # React components
types/ # TypeScript type definitions
App.tsx # Root component and application state
main.tsx # Entry point
- SubmitJobForm — text input and submission handling with loading and error states
- GetJobById — look up a specific job by ID
- JobList — scrollable list of all jobs with selection highlighting
- JobDetail — full job detail view with analysis results and active job polling
- StatusBadge — colour coded status indicator reused across components
- User submits document text via the form
- UI posts to
POST /api/jobsand adds the new job to the list - If the job is in
QueuedorProcessingstate, the UI pollsGET /api/jobs/{id}every 3 seconds - Once the job reaches
CompletedorFailed, polling stops and results are displayed
- Pagination for job list
- Filter jobs by status
- Toast notifications for job completion
- Environment variable configuration for API base URL
MIT
