React Native Patient Image Upload
Budget / Salary$30–250
TypeFreelance project
LocationRemote
Posted1 hour ago
I’m enhancing my existing React Native mobile app, which is backed by a Python / Flask API, with a simple but critical feature: patients (or staff on their behalf) must be able to pick a photo from the device or camera, send it to the server, and later open the app to view that same image when they search or select the patient’s name.
Key flow
1. On the phone: a clean “Add Image” button that opens the OS image picker or camera, accepts all common formats (JPEG, PNG, TIFF, BMP, etc.), shows a basic progress indicator, and confirms when the upload completes. No editing or annotation tools are required—upload and view only.
2. API layer: new Flask endpoints for secure upload and retrieval, tied to the existing patient model. I already have user authentication in place; you can extend the current token logic so each file is saved with patient_id + filename and returned only to authorized users.
3. Storage & naming: I’m happy with a simple local folder for dev, but in production we’ll switch to S3 (or another bucket you recommend). Within the bucket the images should be grouped by patient name so that the mobile UI can fetch them alphabetically.
4. Viewing: inside the app a lightweight gallery that lists thumbnails by patient name, tapping opens the full-size image, and long-press lets me delete (server call already exists for other records—just reuse the pattern).
Deliverables
• Updated React Native screens, components, and navigation hooks
• New Flask routes, validation, and unit tests
• Documentation on any environment variables or bucket policies added
• A brief video or screenshots proving the end-to-end flow on Android and iOS simulators
Acceptance criteria
• Any common image format uploads without error, displays correctly, and is retrievable by patient name.
• Upload timeouts, auth errors, or invalid files return clear messages at both UI and API levels.
If you’ve wired React Native image pickers and Flask uploads before, this should be straightforward. Let me know your estimated timeline and the libraries you’d choose so we can lock the approach and get started.
Key flow
1. On the phone: a clean “Add Image” button that opens the OS image picker or camera, accepts all common formats (JPEG, PNG, TIFF, BMP, etc.), shows a basic progress indicator, and confirms when the upload completes. No editing or annotation tools are required—upload and view only.
2. API layer: new Flask endpoints for secure upload and retrieval, tied to the existing patient model. I already have user authentication in place; you can extend the current token logic so each file is saved with patient_id + filename and returned only to authorized users.
3. Storage & naming: I’m happy with a simple local folder for dev, but in production we’ll switch to S3 (or another bucket you recommend). Within the bucket the images should be grouped by patient name so that the mobile UI can fetch them alphabetically.
4. Viewing: inside the app a lightweight gallery that lists thumbnails by patient name, tapping opens the full-size image, and long-press lets me delete (server call already exists for other records—just reuse the pattern).
Deliverables
• Updated React Native screens, components, and navigation hooks
• New Flask routes, validation, and unit tests
• Documentation on any environment variables or bucket policies added
• A brief video or screenshots proving the end-to-end flow on Android and iOS simulators
Acceptance criteria
• Any common image format uploads without error, displays correctly, and is retrievable by patient name.
• Upload timeouts, auth errors, or invalid files return clear messages at both UI and API levels.
If you’ve wired React Native image pickers and Flask uploads before, this should be straightforward. Let me know your estimated timeline and the libraries you’d choose so we can lock the approach and get started.
Apply on Freelancer →
Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.