Fullstack application for asynchronous URL availability checking.
- Backend: Node.js, TypeScript, NestJS
- Frontend: React, TypeScript, Vite, Zustand, Tailwind CSS
- DevOps: Docker, Docker Compose
.
├── backend/ # NestJS REST API
├── frontend/ # React SPA
├── docker-compose.yml
└── README.md
docker-compose up --buildAfter the build:
- Frontend: http://localhost
- Backend API: http://localhost:3000
Backend:
cd backend
npm install
npm run start:devThe server will start at http://localhost:3000.
Frontend:
cd frontend
npm install
npm run devThe application will open at http://localhost:5173.
| Method | Path | Description |
|---|---|---|
| POST | /api/jobs |
Create a job to check a list of URLs |
| GET | /api/jobs |
List of jobs |
| GET | /api/jobs/:id |
Detailed job information |
| DELETE | /api/jobs/:id |
Cancel a job |
- Asynchronous URL processing in the background immediately after a job is created.
- No more than 5 concurrent HEAD requests per job.
- Artificial random delay of 0 to 10 seconds before saving a result.
- In-memory data storage.
- Periodic polling of the active job status on the frontend.
- Proper polling shutdown when the active job changes.
MIT
