FastAPI Backend Production Upgrade
Budget: ₹2,000 – ₹3,000 INR
PinShare already lets users drop a file, grab a six-digit PIN and pull that file down on another device, but the current code is still very much a proof of concept. My immediate priority is turning the whole backend into production-ready software.
Here is what needs to happen:
• Harden the API with proper rate limiting, secure file validation and background cleanup jobs.
• Migrate transient metadata to PostgreSQL through SQLAlchemy, add Redis for quick look-ups and throttling, and push the actual files to an S3 bucket.
• Wrap the whole stack in Docker (docker-compose for local dev, single Dockerfile for CI/CD) so it can be shipped to any container host.
• Deliver a clean test suite (pytest) that covers the main paths and edge cases, plus linters and type checks.
You will receive a detailed, Markdown-formatted tech brief outlining current structure, endpoints and desired improvements. I’m looking for concise, idiomatic Python, clear commit history and documentation that lets another engineer spin the service up with a single command. Once we agree on the approach I’ll open the repo and we can iterate in short, reviewable PRs until the upgrade is complete and deploys cleanly.
Here is what needs to happen:
• Harden the API with proper rate limiting, secure file validation and background cleanup jobs.
• Migrate transient metadata to PostgreSQL through SQLAlchemy, add Redis for quick look-ups and throttling, and push the actual files to an S3 bucket.
• Wrap the whole stack in Docker (docker-compose for local dev, single Dockerfile for CI/CD) so it can be shipped to any container host.
• Deliver a clean test suite (pytest) that covers the main paths and edge cases, plus linters and type checks.
You will receive a detailed, Markdown-formatted tech brief outlining current structure, endpoints and desired improvements. I’m looking for concise, idiomatic Python, clear commit history and documentation that lets another engineer spin the service up with a single command. Once we agree on the approach I’ll open the repo and we can iterate in short, reviewable PRs until the upgrade is complete and deploys cleanly.