System requirements
Node.js version
DoctorSoft+ requires Node.js 18 or higher. This ensures compatibility with all modern JavaScript features and dependencies.The deployment configuration specifically requires Node.js 18+. Using an older version may result in build errors or runtime issues.
Operating systems
DoctorSoft+ supports development on:- macOS (10.15 or later)
- Windows (10 or later)
- Linux (Ubuntu 20.04 or later, or equivalent)
Browser requirements
For the best experience, use a modern browser:- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
Installation steps
Install Node.js
Install dependencies
Run npm install to download all required packages:This will install approximately 60 packages, including:
- React ecosystem: react, react-dom, react-router-dom
- Supabase: @supabase/supabase-js for database and authentication
- State management: @tanstack/react-query for server state
- Form handling: react-hook-form with zod validation
- UI components: lucide-react for icons, chart.js for analytics
- Calendar: @fullcalendar for appointment scheduling
- Rich text: quill and react-quill for clinical notes
- Build tools: vite, typescript, tailwindcss
Core dependencies
Frontend framework
DoctorSoft+ is built with React 18.3+ and TypeScript for type safety:Build tool
Vite 7+ is used as the build tool for fast development and optimized production builds:Database and authentication
Supabase provides the backend infrastructure:UI and styling
Tailwind CSS is used for styling:Medical practice features
Specialized libraries for medical practice management:- @fullcalendar: Appointment scheduling and calendar views
- chart.js: Patient analytics and practice metrics
- react-quill: Rich text editor for clinical notes
- pdfjs-dist: PDF document viewing (lab results, reports)
- browser-image-compression: Image optimization for medical imaging
Development tools
Available scripts
The following npm scripts are available:Running scripts
Build configuration
DoctorSoft+ uses a custom Vite configuration for optimal performance:Code splitting strategy
The application uses intelligent code splitting to optimize load times:- vendor-react: Core React libraries
- vendor-supabase: Supabase client
- vendor-router: React Router
- vendor-forms: Form handling (react-hook-form, zod)
- vendor-editor: Rich text editor (lazy loaded)
- vendor-calendar: Calendar component (lazy loaded)
- vendor-charts: Analytics charts (lazy loaded)
Troubleshooting
npm install fails
Ifnpm install fails:
- Clear npm cache:
npm cache clean --force - Delete
node_modulesandpackage-lock.json - Run
npm installagain
TypeScript errors
If you see TypeScript errors:- Ensure you’re using TypeScript 5.2+:
npx tsc --version - Clear TypeScript cache: Delete the
.tsbuildinfofile - Restart your IDE
Vite port conflict
If port 5173 is in use, Vite will automatically use the next available port. Check the terminal output for the actual URL.Next steps
After installation:- Configure environment variables for Supabase
- Follow the quickstart guide to create your first user
- Learn about deployment options for production