1
showcase
Shipped: A service with a job running behind it
What Was Built
A CSV Import Service — a REST API that accepts CSV file uploads, processes them in the background, and returns results asynchronously. The key pattern: the upload request returns instantly (HTTP 202), and a background worker handles the slow part.
Repository: https://github.com/techtuber9988/behind-the-service
Live URL: https://behind-the-service.onrender.com
How to Verify Each Criterion
1. Deployed and reachable with repository linked
- Visit https://behind-the-service.onrender.com/health — returns {"status":"ok"}
- Repository is public at the GitHub link above
2. Request returns without waiting
curl -X POST https://behind-the-service.onrender.com/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"reviewer@test.com","password":"testpass123"}'
# Copy the token, then:
curl -X POST https://behind-the-service.onrender.com/imports \
-H "Authorization: Bearer <token>" \
-F "file=@any.csv"
# Returns 202 instantly — processing happens after
3. Same outcome when run twice (idempotent)
# Use same Idempotency-Key header twice:
curl -X POST https://behind-the-service.onrender.com/imports \
-H "Authorization: Bearer <token>" \
-H "Idempotency-Key: test-key-123" \
-F "file=@any.csv"
# Second call returns existing job, not a duplicate
4. README documents worker death
Section titled "What Happens When the Worker Dies Mid-Job" with state diagram and 5 guarantees — data never lost, caller can detect stuck jobs, partial progress preserved.
5. 401 without credentials
curl -s -o /dev/null -w "%{http_code}" \
https://behind-the-service.onrender.com/imports/any-id
# Returns 401
6. No secrets committed
.env is in .gitignore. JWT_SECRET is only in Render's environment variables, never in the repository.
Repository: https://github.com/techtuber9988/behind-the-service
Built for the Verified Backend Internship · Final project
Add a comment
0/2000