That makes perfect sense. Since Phase A is a full two-week sprint (August 10th to August 24th), today (August 14th) marks the exact midpoint.
Framing this as a midway check-in adds a lot of professionalism. It shows you aren't just scrambling week-to-week, but executing a well-planned, two-week architecture. Week 1 was about safely catching the data; Week 2 is about aggressively processing it.
Here is the updated blog post reflecting the two-week Phase A narrative.
MedReach-AI: Phase A (Mid-Sprint) Progress & Milestone 2.1 Update
Welcome back to the MedReach-AI development log. I’m Scott Shoemaker, alongside my co-developer Collin. As we push through our software engineering capstone, we are excited to share our progress for the 2.1 Project Milestone.
We are currently executing Phase A: Data Management, which is scoped as a comprehensive two-week sprint running from August 10th to August 24th. Today marks the midpoint of this sprint. For Week 1, our engineering focus was establishing the core file upload architecture on both the frontend interface and the backend API.
Here is a breakdown of what we accomplished in the first half of Phase A, the roadblocks we cleared, and our roadmap for Week 2.
Week 1 Backend: Securing the Data Pipeline
On the backend, my primary responsibility for this first week was ensuring our FastAPI server could safely catch and store incoming data streams before we begin processing them. I completed two major tickets:
MA-17: Firebase Storage Upload Endpoint (Completed): I engineered a tenant-scoped file upload endpoint. When a file is uploaded, the API successfully routes it to our local Firebase Storage emulator. It returns a 201 Created status with a generated UUID and the definitive storage path, guaranteeing strict data isolation between clinics.
MA-22: Malformed Data & Schema Error Wrapper (Completed): To ensure bad data doesn't crash the server during Week 2's heavy processing, I implemented a validation wrapper using Python's csv module. If a clinic uploads a corrupted file, the server intercepts the unparseable delimiters or decoding errors and returns a structured 400 Bad Request. This payload identifies the exact line number of the error, keeping the application stable.
Week 1 Frontend: Building the Interface
On the frontend, Collin spent this week translating our Phase A wireframes into functional, interactive React components:
MA-16: UI Drag-and-Drop File Upload Component (Completed): Users now have a clean, intuitive dropzone to pull their CSV files into the application.
MA-20: UI Column Mapping Confirmation & Override Table (Completed): Collin built out the data table where users can visually review their uploaded data and manually override data types before final submission. The state management is wired up locally and prepped for backend integration.
MA-15: UI Export Screen & File Download Controls (In Progress): The core layout for the data export screen is established. Finishing the button states and download triggers will carry over into early next week.
Roadblocks & Technical Challenges
No sprint is without its hurdles. On the backend, setting up the storage emulator for MA-17 resulted in a massive port conflict. Localhost ports 8080 and 8000 were clashing with background processes, crashing our startup sequences. I resolved this by remapping the Firestore emulator to port 8081 and updating our configurations, successfully clearing the network blockage.
On the frontend, ensuring the local React state perfectly matches the expected backend JSON payloads took some extra coordination. Because of this, MA-15 required a bit more time and will bridge the gap into Week 2 to ensure the data formatting is perfectly aligned.
The Roadmap: Week 2 of Phase A
With the file ingestion infrastructure stabilized in Week 1, the second half of this sprint is entirely dedicated to active data processing and endpoint integration.
Scott's Backend Tasks (Week 2):
MA-21: Pandas Chunked CSV Ingestion Engine: Standard of Completion: The engine must successfully process a 100,000-row CSV file without exceeding 512 megabytes of server RAM. I will utilize the Pandas chunksize parameter and tracemalloc to strictly monitor and prove our memory footprint.
MA-19: Heuristic Column Type Detection: Standard of Completion: The backend must automatically evaluate the sample data and infer column types (like emails and phone numbers) using regex, returning a mapped schema dictionary.
MA-18: Clean CRM-Compatible CSV Export Pipeline: Standard of Completion: The API successfully returns a sanitized dataset formatted for standard CRM ingestion.
Collin's Frontend Tasks (Week 2):
Complete MA-15: Standard of Completion: A fully functional download interface that triggers the browser's native file save dialog with the scrubbed data.
Endpoint Integration: Wiring the completed Phase A frontend React components directly to the active FastAPI endpoints to establish end-to-end functionality.
We are in a great position at the midway point of Phase A. Our repositories are stable, our data validation is bulletproof, and our interface is coming to life. Check back at the end of the sprint as we fire up the data-scrubbing engine!
Top comments (0)