How cassperrr/url-checker works
URL Checker is a full-stack asynchronous URL-checking service. Users submit URL batches in the web app, monitor per-job and per-URL progress, inspect results, and cancel active jobs. The backend exposes job endpoints, runs checks asynchronously, and retains job state in memory. The README identifies HEAD requests and configurable concurrency/timeouts; processor internals were not sampled, so details beyond that documented behavior are omitted.
Main entry points: App.tsx App · jobs.controller.ts Jobs controller · jobs.store.ts Jobs store · jobs.service.ts Jobs service
Components 18
Web application
- App
apps/frontend/src/App.tsx - Create form
apps/frontend/src/components/job-create-form.tsx - Jobs list
apps/frontend/src/components/jobs-list.tsx - Job details
apps/frontend/src/components/job-details.tsx - Jobs store
apps/frontend/src/store/jobs.store.ts - Jobs API client
apps/frontend/src/api/jobs-api.ts
Job API
- Jobs controller
apps/backend/src/api/v1/jobs/jobs.controller.ts - Jobs service
apps/backend/src/api/v1/jobs/jobs.service.ts - Response mapper
apps/backend/src/api/v1/jobs/jobs.mapper.ts - In-memory jobs
apps/backend/src/api/v1/jobs/jobs.repository.ts - Jobs module
apps/backend/src/api/v1/jobs/jobs.module.ts
URL checking
- Job processor
apps/backend/src/api/v1/jobs/jobs.processor.ts
Contracts and config
- Job contracts
packages/contracts/src/jobs.ts - Backend config
apps/backend/src/config/config.module.ts - Swagger setup
apps/backend/src/docs/swagger-setup.ts
Other components
- User
- Browser fetch
- URL targets
Connections 21
- User → App: uses
- App → Create form: renders
- App → Jobs list: renders
- App → Job details: renders
- App → Jobs store: loads jobs
- Create form → Jobs store: creates jobs
- Jobs list → Jobs store: selects jobs
- Job details → Jobs store: loads, cancels
- Jobs store → Jobs API client: requests jobs
- Jobs API client → Browser fetch: fetches
- Browser fetch → Jobs controller: HTTP requests
- Jobs controller → Jobs service: dispatches
- Jobs service → In-memory jobs: reads, saves
- Jobs service → Job processor: runs, cancels
- Jobs service → Response mapper: maps responses
- Job processor → URL targets: HEAD checks
- Jobs controller → Job contracts: uses types
- Jobs API client → Job contracts: uses types
- Jobs module → Jobs controller: registers
- Backend config → Jobs module: configures
- Swagger setup → Jobs controller: documents API