React & FastAPI File Uploader

Job ID: 40241901

Budget: $10 – $30 USD

I need a small, self-contained web application that couples a React front end with a FastAPI back end. The sole purpose of the site is to let a user choose a file (max 1 MB), press Upload, and immediately receive a unique receipt number once the transfer succeeds.

Back-end details
• FastAPI should expose a single POST endpoint that accepts the file stream, enforces the 1 MB size cap, stores the file in a configurable server directory, and responds with the generated receipt number in JSON.
• For each upload, write a line to an uploads.csv log containing the receipt number and the original filename. No route for listing, downloading, or otherwise exposing stored files should exist.

Front-end details
A minimal React page with nothing more than an upload field, a submit button, and a receipt confirmation area will do. Because the app will sit behind an nginx reverse proxy, please avoid hard-coded ports, respect the host headers, and make the base path easily adjustable. Feel free to pick any lightweight styling solution or vanilla CSS; I have no strict preference.

Acceptance criteria
1. Any file above 1 MB is rejected client- or server-side with a clear error message.
2. Successful uploads return a UUID-like receipt number.
3. nginx proxying works out of the box after the base path is set in one place.
4. uploads.csv is appended correctly on every successful request.

Deliverables
• Complete source code for both React and FastAPI components
• A brief README describing local setup, environment variables (upload directory, base path), and a sample nginx snippet

That’s all—clean, simple, and reliable.