A modern React web application that generates patient-friendly and clinician-focused medical summaries from Q&A text input.
- Dual Summary Generation: Create both patient-friendly and technical clinician summaries
- File Upload Support: Upload TXT, DOC, DOCX, and PDF files
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Modern UI/UX: Clean, medical-themed interface with smooth animations
- Summary History: Track and review previously generated summaries
- Real-time Processing: Instant AI-powered summary generation
- Frontend: React 18 with Hooks
- Build Tool: Vite
- Routing: React Router DOM
- Styling: Custom CSS with CSS Variables
- Font: Inter (Google Fonts)
- Responsive: Mobile-first design approach
- Home - Landing page with hero section and feature cards
- Summarize - Input form for Q&A text and file upload
- Results - Display generated summaries with provenance accordion
- History - View previously generated summaries
- About - Project information and team credits
- Medical Theme: Professional blue and green color scheme
- Interactive Elements: Hover effects, smooth transitions, and animations
- Accessibility: ARIA labels, semantic HTML, and keyboard navigation
- Responsive Layout: Adaptive grid systems and mobile-optimized navigation
-
Clone the repository
git clone <your-repo-url> cd medical-summarizer
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173(or the port shown in terminal)
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
src/
├── components/ # Reusable UI components
│ ├── Navbar.jsx # Navigation component
│ ├── Footer.jsx # Footer component
│ └── *.css # Component-specific styles
├── pages/ # Page components
│ ├── Home.jsx # Landing page
│ ├── Summarize.jsx # Summary generation form
│ ├── Results.jsx # Results display
│ ├── History.jsx # Summary history
│ ├── About.jsx # About page
│ └── *.css # Page-specific styles
├── App.jsx # Main application component
├── main.jsx # Application entry point
├── index.css # Global styles and CSS variables
└── App.css # App-specific styles
- Responsive navigation with mobile hamburger menu
- Active page highlighting
- Smooth mobile menu animations
- Textarea for Q&A input
- File upload with drag & drop support
- Radio button selection for summary types
- Form validation and error handling
- Patient-friendly summaries (green theme)
- Clinician-focused summaries (blue theme)
- Expandable accordion for original Q&A text
- Grid layout for summary history
- Date formatting and metadata display
- Quick access to previous summaries
- Desktop: Full-featured layout with side-by-side cards
- Tablet: Adaptive grid layouts
- Mobile: Stacked layouts with mobile-optimized navigation
- Breakpoints: 480px, 768px, and 1200px
- CSS Variables: Consistent color scheme and spacing
- Utility Classes: Reusable button, card, and form styles
- Component Styles: Scoped styles for specific components
- Media Queries: Responsive design breakpoints
Modify CSS variables in src/index.css:
:root {
--medical-blue-600: #0284c7;
--health-green-600: #16a34a;
/* ... other colors */
}- Update component-specific styles in individual CSS files
- Modify global styles in
src/index.css - Adjust responsive breakpoints as needed
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
-
Build the project
npm run build
-
Deploy the
distfolder to your hosting service:- Netlify
- Vercel
- GitHub Pages
- AWS S3
- Any static hosting service
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Important: Medical Summarizer is an educational tool and should not replace professional medical advice, diagnosis, or treatment. Always consult with qualified healthcare professionals for medical decisions.
The summaries generated are for informational purposes only and may not be comprehensive or up-to-date with the latest medical research.
For questions or support, please open an issue in the GitHub repository.
Built with ❤️ using React and modern web technologies