The Clinic Appointment System is a web-based application designed to manage doctor appointments efficiently. Built using Vite with React and TypeScript, the system provides an intuitive UI for patients to book appointments, doctors to manage their schedules, and administrators to create clinic operations.
- Patients can book appointments.
- Doctors can view, accept, or complete appointments.
- Admins can manage all doctors and patients registrations.
- Secure login and authentication for different user roles.
- Role-based access control (Doctors, Admins, Patients).
- Protected routes for authenticated users.
- Doctor dashboard with an overview of schedules and appointments.
- Charts (Bar, Pie) for visual representation of appointment statistics.
- Report for clinic activities.
- Modular, reusable components for UI consistency.
- Custom navbar, form elements, charts, and alerts.
- Error handling using boundary components.
- Public and private routes.
- Custom higher-order components (HOCs) for route protection.
📂 gsg-next-js-training-clinic-appointment-system
├── 📜 README.md # Project documentation
├── 📜 package.json # Project dependencies
├── 📜 tsconfig.json # TypeScript configuration
├── 📜 vite.config.ts # Vite configuration
├── 📂 public/ # Static assets
├── 📂 src/
│ ├── 📂 component/ # Reusable UI components
│ ├── 📂 context/ # Global state management
│ ├── 📂 hooks/ # Custom hooks
│ ├── 📂 pages/ # App pages (Login, Booking, Dashboard, etc.)
│ ├── 📂 reducers/ # Reducer-like state management
│ ├── 📂 routes/ # Routing & Guards
│ ├── 📂 types/ # Type definitions
│ ├── 📂 utils/ # Utility functions
│ ├── 📜 App.tsx # Main application entry point
│ ├── 📜 main.tsx # ReactDOM rendering
│ ├── 📜 index.css # Global styles
│ └── 📜 constant.ts # Global constants
- Framework: React with Vite
- Language: TypeScript
- State Management: Context API, Reducers
- Styling: CSS Modules
- Routing: React Router
- Charts & Visuals: Recharts
git clone https://github.com/GSG-Next-JS-Training/Clinic-Appointment-System.git
cd gsg-next-js-training-clinic-appointment-system
yarn install # or npm install
yarn dev # or npm run dev
yarn build # or npm run build
- Login/Register as a Doctor, Admin, or Patient.
- Book Appointments (Patients) or Manage Appointments (Doctors/Admins).
- View Reports & Statistics on the Dashboard.
- Admin Privileges include user management.
Contributions are welcome! Follow these steps:
- Fork the repo.
- Create a new branch (
feature-branch
). - Commit your changes.
- Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or suggestions, feel free to reach out at larasamara2002@gmail.com.