Clinical Note-Taking Web App POC

Job ID: 39508751

Budget: $1,500 – $3,000 AUD

Proof of Concept for Clinical Note-Taking Web Application
Project Overview
We are seeking an experienced web developer to build a minimal viable proof-of-concept (POC) for a clinical note-taking web application. The goal is to test the core functionality of transforming voice input into high-quality, customized clinical notes for a single-user practice. The POC will focus on the essential "golden path" of creating a note, deferring commercial and advanced features for later development. This is a short-term project with a tight timeline, requiring a developer skilled in rapid prototyping and backend/frontend integration.

Project Scope
The POC will include only the minimum essential features outlined below, as described in the provided specification. The application will be a web-based solution with a simple, user-friendly interface and robust backend logic.

Core Application Flow (User-Facing)
Simplified User Registration & Login:
A basic form to create a single user account (email/password).
A simple login screen. No multi-step email/mobile verification required.
Basic Workplace Creation:
A form to create one workplace (practice name and email). No editing, deletion, or multi-workplace management needed.
Patient Creation & Management:
A "Find or Add Patient" flow to associate notes with patients (basic patient details: name, ID, etc.).
Core Note-Taking:
A "Free-Flow" note-taking interface (supporting voice-to-text input, preferably using Google Speech-to-Text API or similar).
A "Note Review & Edit" screen for reviewing and editing the transcribed note.
A "Save & Finalise Note" action to save the note and trigger backend processing.
Core Backend Logic & Setup
Database Setup:
Set up a relational database (e.g., PostgreSQL or MySQL) with the following tables: users, workplaces, patients, notes, note_templates, products, and workplace_product_mappings.
Ensure secure and efficient schema design.
Minimal Template & Product Engine:
Manually insert a few standard note templates and product mappings into the database (no UI for template/product management required).
Ensure templates are applied to notes for quality and accuracy.
PDF Generation & Emailing:
Generate a PDF of the finalized note using a library like pdfkit or similar.
Email the PDF to the practice’s registered email address (using an email service like SendGrid or SMTP).
Defer patient email functionality.
Exclusions
To keep the POC lean, the following features are explicitly excluded:

Stripe billing integration or payment processing.
Advanced security (e.g., OTP, biometric authentication).
User account management (e.g., profile updates, password changes).
Public-facing pages (e.g., Help, Support, Legal).
Admin dashboards for managing users, vocabulary, or analytics.
Complex deletion workflows or data archiving.
Technical Requirements
Frontend:
Build a simple, responsive UI using HTML, CSS, and JavaScript.
Prefer a lightweight framework like React (using CDN-hosted libraries, e.g., via cdn.jsdelivr.net) or vanilla JavaScript for rapid development.
Use Tailwind CSS for styling.
Ensure compatibility with modern browsers (Chrome, Firefox, Safari).
Backend:
Use a Python-based framework like Flask or FastAPI for the backend.
Implement RESTful APIs for all user-facing flows (registration, login, workplace creation, patient management, note-taking).
Integrate a speech-to-text API (e.g., Google Speech-to-Text) for the "Free-Flow" note-taking interface.
Use a relational database (PostgreSQL or MySQL) with secure schema design.
Implement PDF generation and email delivery as specified.
Error Handling:
Apply a try...except...raise APIError pattern for all external API calls (e.g., speech-to-text, email service).
Use global error handlers to return clean JSON responses with appropriate HTTP status codes.
Validation:
Create and apply validation schemas (using flask-marshmallow and marshmallow) for all API endpoints accepting user input (e.g., registration, workplace creation, note creation).
Return 400 Bad Request with detailed error messages for invalid data.
Authorization:
Implement a @workplace_access_required decorator (or equivalent manual check) for all endpoints accessing/modifying workplace-specific data (e.g., notes, patients).
Ensure the logged-in user is linked to the workplace via a user_workplaces table check, returning 403 Forbidden if unauthorized.
Deployment:
Provide instructions for running the application locally on a development machine.
Include a .env file template for configuration (e.g., database URL, API keys for speech-to-text and email services).
Optional: Deploy the POC to a cloud platform (e.g., Heroku, Render) for testing.
Deliverables
Fully functional POC web application meeting the specified requirements.
Source code hosted in a private Git repository (e.g., GitHub, GitLab) with clear documentation.
A README.md file with:
Setup instructions (e.g., installing dependencies, configuring .env, running the app).
API documentation (endpoint descriptions, request/response formats).
Notes on any assumptions or limitations.
A brief demo video or screenshots showcasing the core flows (registration, login, workplace creation, patient management, note-taking, PDF generation, and emailing).
Timeline
Duration: 2-3 weeks from project start.
Milestones:
Week 1: Database setup, backend APIs for registration/login/workplace creation, and basic frontend forms.
Week 2: Patient management, note-taking interface (with speech-to-text), PDF generation, email delivery, and validation/error handling.
Week 3 (if needed): Authorization implementation, testing, documentation, and optional cloud deployment.
Budget
Competitive hourly rate or fixed price based on experience and estimated hours (please provide an estimate in your proposal).
Budget range: $1,000–$2,500 USD (negotiable based on scope and expertise).
Required Skills
Proficiency in Python (Flask or FastAPI) and JavaScript (React or vanilla JS).
Experience with relational databases (PostgreSQL or MySQL) and schema design.
Familiarity with speech-to-text APIs (e.g., Google Speech-to-Text) and email delivery services (e.g., SendGrid).
Strong understanding of RESTful API design, error handling, and input validation.
Experience with rapid prototyping and building MVPs.
Knowledge of Tailwind CSS and responsive web design.
(Optional) Experience with cloud deployment (Heroku, Render, or similar).
How to Apply
Please submit your proposal with the following:

A brief overview of your experience with similar projects (e.g., web apps, APIs, speech-to-text integration).
Your estimated timeline and cost (hourly rate or fixed price).
Links to previous work or GitHub repositories showcasing relevant skills.
Any questions or clarifications about the project scope.

Note: The selected developer will sign an NDA due to the sensitive nature of clinical data handling. All code and deliverables will remain the property of the client.