An internal tool for healthcare facilities to track when clinicians (doctors, nurses, etc.) visit patients. Think of it as a digital logbook for patient care.
Medflow is a full-stack web application that provides healthcare professionals with an intuitive platform to manage patient visits, track clinician information, and maintain organized medical records. Built with modern technologies, it offers a clean, responsive interface for efficient healthcare practice management.
- Patient Management: Create, view, and manage patient records with comprehensive information
- Clinician Management: Handle clinician profiles, specialties, and credentials
- Visit Tracking: Log and monitor patient visits with detailed notes and visit types
- User Authentication: Secure login and registration system for clinicians
- Dashboard Interface: Clean, intuitive navigation with real-time data display
- Data Pagination: Efficient handling of large datasets with server-side pagination
- RESTful API: Complete backend API with proper validation and error handling
- Database Management: SQLite database with Knex.js migrations and Objection.js ORM
- Security: Password hashing, input validation, and CORS protection
- Node.js with Express.js framework
- SQLite database with Knex.js query builder
- Objection.js ORM for data modeling
- bcryptjs for password hashing
- AJV for request validation
- CORS for cross-origin resource sharing
- React.js with modern hooks and context API
- Material-UI for component library and styling
- React Router for navigation and routing
- Styled Components for custom styling
- Node.js (v14 or higher)
- npm or yarn package manager
-
Install dependencies
npm install
-
Run database migrations
npm run migrate:up
-
Add dummy data (for patients, clients, visits, for better testing experience)
cd server/local/dummy sh run.dummydata.sh -
Start the development server
npm run dev
The server will start on
http://localhost:3001
-
Navigate to client directory
cd client -
Install dependencies
npm install
-
Start the development server
npm start
The client will start on
http://localhost:3000
Register a new user (clinician)
Using those creds login
You will be able access the dashboard
POST /api/v1/auth/login- Clinician loginPOST /api/v1/auth/register- Clinician registration (this creates a new Clinician)
GET /api/v1/patients- Get all patients (with pagination)GET /api/v1/patients/:id- Get patient by ID
GET /api/v1/clinicians- Get all clinicians (with pagination)
GET /api/v1/visits- Get all visits (with pagination)POST /api/v1/visits- Create new visit
id(Primary Key)name(Required)email(Required, Unique)profile_image(Optional)contact(Required)address(Optional)dob(Required)created_at,updated_at(Timestamps)
id(Primary Key)name(Required)password(Required, Hashed)specialty(Required)email(Required, Unique)profile_image(Optional)contact(Required)created_at,updated_at(Timestamps)
id(Primary Key)clinician_id(Foreign Key)patient_id(Foreign Key)patient_name(Required)visit_type(Optional, Default: "general")notes(Optional)created_at,updated_at(Timestamps)
npm start- Start production servernpm run dev- Start development server with nodemonnpm run migrate:up- Run all pending migrationsnpm run migrate:down- Rollback last migrationnpm run migrate:single- Run single migration
npm start- Start development servernpm run build- Build for productionnpm test- Run testsnpm run eject- Eject from Create React App
- Advanced Authentication: JWT tokens with refresh mechanism
- File Upload: Profile image upload functionality
- check In/Out: Check in/out capability for doctors visiting patients
- Advanced Search: Full-text search capabilities
- Admin login: Admin login for managing clinicians and patients
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
For support and questions, please open an issue on the GitHub repository.