A comprehensive healthcare management system with separate interfaces for doctors and patients.
Clinix Sphere is a complete healthcare management solution that enables:
- Patients to book appointments and view digital prescriptions via mobile app
- Doctors to manage appointments and create digital prescriptions via web dashboard
- Digital prescriptions with symptoms, diagnosis, and medicine details
- Role-based authentication with JWT security
clinix-sphere/
βββ backend/ # Node.js/Express API server
β βββ models/ # MongoDB schemas
β βββ routes/ # API routes
β βββ middleware/ # Authentication middleware
β βββ server.js # Main server file
βββ doctor-dashboard/ # React web app for doctors
β βββ src/
β β βββ components/ # React components
β β βββ context/ # Auth context
β β βββ services/ # API services
β βββ public/
βββ patient-mobile/ # React Native app for patients
β βββ src/
β β βββ screens/ # Mobile screens
β β βββ navigation/ # Navigation setup
β β βββ context/ # Auth context
β β βββ services/ # API services
β βββ App.js
βββ README.md
- JWT-based authentication for doctors and patients
- Role-based access control
- Secure password hashing with bcrypt
- Patients: View doctors, book appointments, track status
- Doctors: View assigned appointments, mark as completed
- Real-time appointment status updates
- Create prescriptions after completing appointments
- Include symptoms, diagnosis, medicines with dosage/duration
- Patients can view all their prescriptions
- Medicine management with detailed instructions
- Doctor Dashboard: React web app with appointment and prescription management
- Patient Mobile App: React Native app with intuitive booking and viewing
- Backend: Node.js, Express.js, MongoDB, Mongoose, JWT, bcryptjs
- Doctor Dashboard: React.js, React Router, Axios
- Patient App: React Native, Expo, React Navigation
- Database: MongoDB with Mongoose ODM
- Authentication: JWT tokens with role-based access
- Node.js (v14 or higher)
- MongoDB (local or cloud)
- Expo CLI (
npm install -g expo-cli) - Git
git clone <repository-url>
cd clinix-spherecd backend
npm install
npm run devThe backend will start on http://localhost:5000
cd doctor-dashboard
npm install
npm startThe dashboard will start on http://localhost:3000
cd patient-mobile
npm install
expo startScan the QR code with Expo Go app on your mobile device.
- Email: sarah.johnson@clinix.com
- Password: password123
- Register as a new patient through the mobile app
- Or use any email/password combination
POST /api/auth/register- Register new user (doctor/patient)POST /api/auth/login- Login userGET /api/auth/me- Get current user profile
GET /api/appointments- Get appointments (filtered by role)POST /api/appointments- Book new appointmentPUT /api/appointments/:id- Update appointment statusGET /api/appointments/doctors/list- Get available doctors
POST /api/prescriptions- Create prescriptionGET /api/prescriptions- Get prescriptions (filtered by role)GET /api/prescriptions/:id- Get single prescriptionGET /api/prescriptions/appointment/:appointmentId- Get prescription by appointment
{
name: String,
email: String (unique),
password: String (hashed),
role: 'doctor' | 'patient',
specialization: String (for doctors),
phone: String,
address: String,
isActive: Boolean
}{
patient: ObjectId (User),
doctor: ObjectId (User),
appointmentDate: Date,
appointmentTime: String,
status: 'scheduled' | 'completed' | 'cancelled',
reason: String,
notes: String,
prescription: ObjectId (Prescription)
}{
appointment: ObjectId (Appointment),
patient: ObjectId (User),
doctor: ObjectId (User),
symptoms: String,
diagnosis: String,
medicines: [{
name: String,
dosage: String,
duration: String,
instructions: String
}],
additionalNotes: String,
prescriptionDate: Date
}- Register/Login via mobile app
- Browse Doctors by specialization
- Book Appointment with preferred doctor and time
- Track Appointment status
- View Prescriptions after appointment completion
- Login via web dashboard
- View Appointments assigned to them
- Mark Appointments as completed
- Create Prescriptions with symptoms, diagnosis, and medicines
- Manage Prescriptions and view patient history
Update backend/config.js for:
- MongoDB connection string
- JWT secret key
- Server port
Update patient-mobile/src/services/api.js for:
- Backend API URL (default: http://localhost:5000/api)
- Backend: Test API endpoints using Postman or curl
- Doctor Dashboard: Login and manage appointments
- Mobile App: Register patient and book appointments
- End-to-End: Complete appointment booking to prescription creation
- User registration and login
- Appointment booking and status updates
- Prescription creation and viewing
- Role-based access control
- Set up MongoDB Atlas or local MongoDB
- Configure environment variables
- Deploy to Heroku, AWS, or similar platform
- Doctor Dashboard: Deploy to Netlify, Vercel, or similar
- Mobile App: Build with Expo and publish to app stores
- Project structure setup
- Backend API implementation
- Database models and schemas
- Authentication system
- Doctor dashboard (React)
- Patient mobile app (React Native)
- Appointment management
- Digital prescription system
- Documentation
- Testing and validation
- Deployment setup
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For issues and questions:
- Check the documentation
- Review the API endpoints
- Test with provided demo credentials
- Create an issue in the repository
Clinix Sphere - Your Health, Our Priority π₯