A modern and user-friendly clinic/hospital management system. A comprehensive web application built with React, Tailwind CSS, and Supabase.
- 📊 Real-time dashboard and statistics
- 👥 Patient management (CRUD operations)
- 👨⚕️ Staff management
- 📅 Appointment system
- 🏥 Department management
- 📱 Responsive design
- 🔍 Advanced search and filtering
- 📈 Department-based statistics
-
Frontend:
- React 18
- Tailwind CSS
- React Query
- React Router
- HeadlessUI
- React Hot Toast
- Date-fns
-
Backend:
- Supabase (PostgreSQL)
- Node.js
- Express
- Clone the repository:
git clone https://github.com/mustafakbaser/ClinicManager-App.git
cd ClinicManager-App
- Install dependencies:
npm install
- Copy
.env.example
to.env
and add your Supabase credentials:
cp .env.example .env
- Configure your
.env
file:
VITE_SUPABASE_PROJECT_URL=your_supabase_project_url
VITE_SUPABASE_API_KEY=your_supabase_api_key
-
Set up the database schema:
- Log in to your Supabase project
- Open the SQL editor
- Execute the SQL commands from
database.sql
-
Start the development server:
npm run dev
src/
├── components/ # UI components
│ ├── appointments/ # Appointment-related components
│ ├── dashboard/ # Dashboard components
│ ├── patients/ # Patient management components
│ ├── staff/ # Staff management components
│ ├── form/ # Form components
│ └── ui/ # General UI components
├── services/ # API services
├── models/ # Data models
├── utils/ # Utility functions
├── hooks/ # Custom React hooks
├── lib/ # Third-party library configurations
└── pages/ # Page components
- Total patient, doctor, and appointment counts
- Recent appointments list
- Department-based appointment statistics
- Daily appointment tracking
- Create and edit patient records
- National ID validation
- View patient history
- Appointment history
- Create new appointments
- Update appointment status
- Date and time selection
- Department and doctor selection
- Create staff records
- Department assignment
- Contact information management
-
Dashboard: View general statistics and recent appointments on the main page.
-
Patient Operations:
- Create new patient records
- Edit existing patients
- View patient history
-
Appointment Operations:
- Create new appointments
- Filter and search appointments
- Update appointment status
-
Staff Operations:
- Add new staff members
- Edit staff information
- Assign departments
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Follow React best practices
- Use functional components and hooks
- Implement proper error handling
- Write clean and maintainable code
- Follow the established project structure
- Write unit tests for utilities
- Test components using React Testing Library
- Ensure proper error handling
- Test edge cases and validation
- Implement proper caching strategies
- Use React Query for data fetching
- Optimize component rendering
- Follow React performance best practices
- Implement proper authentication
- Validate all user inputs
- Secure API endpoints
- Follow security best practices
- Regular security updates
This project is licensed under the MIT License - see the LICENSE file for details.