Empowering communities with free access to medical information for healthier lives!
Get Started »
View Live Demo
·
API Documentation
·
Report Bug
·
Request Feature
Click to expand
Open-Care is a comprehensive medical information platform designed to democratize access to healthcare resources. In a world where medical knowledge should be accessible to all, our platform serves as a bridge between healthcare professionals and the communities they serve.
The healthcare landscape is rapidly evolving with new research, treatments, and medical guidelines emerging constantly. Open-Care addresses the critical need for a centralized, reliable source of medical information that empowers both healthcare providers and patients with accurate, evidence-based resources.
To create an inclusive healthcare ecosystem where accurate medical information, qualified healthcare providers, and trusted medical facilities are accessible to everyone, regardless of their geographical or economic constraints.
- Comprehensive Database: Access detailed profiles of healthcare professionals
- Advanced Search: Find doctors by specialty, location, experience, and ratings
- Verified Credentials: All medical professionals are verified for authenticity
- Contact Integration: Direct contact information and appointment booking capabilities
- Patient Reviews: Community-driven feedback system for quality assurance
- Facility Information: Detailed hospital profiles with services, facilities, and specializations
- Location-Based Search: Find nearby hospitals using geolocation
- Service Mapping: Search hospitals by specific medical services and treatments
- Quality Ratings: Community and professional ratings for informed decisions
- Real-time Updates: Current availability, emergency services, and contact information
- Medical Knowledge Base: Curated collection of medical articles, research papers, and guidelines
- Smart Search Engine: AI-powered search with medical terminology recognition
- Evidence-Based Content: All information sourced from peer-reviewed medical literature
- Regular Updates: Content continuously updated with latest medical research
- Multi-language Support: Accessible content in multiple languages (planned)
- Web Application: Responsive design for desktop and mobile browsers
- Mobile App: Native mobile application for iOS and Android
- Offline Support: Critical information available offline for emergency situations
- Accessibility Features: Designed with accessibility standards for inclusive usage
This project is organized into separate repositories for better maintainability and deployment:
| Repository | Description | Technologies | Status |
|---|---|---|---|
| Frontend Repository | Next.js web application with modern UI/UX | Next.js, React, TailwindCSS, TypeScript | ✅ Active |
| Backend Repository | RESTful API server with comprehensive medical data management | Java, Spring Boot, PostgreSQL, Swagger | ✅ Active |
| Prescription Service | Temporary standalone e-prescription service — will be replaced by native prescription feature in the main backend/frontend | Java, Spring Boot, PostgreSQL | |
| Mobile Repository | Cross-platform mobile application — not yet started; planned for a future phase | React Native, TypeScript, Expo | 🔮 Future |
| Service | URL | Description |
|---|---|---|
| Live Application | https://opencarebd.com/ | Full-featured web application |
| API Documentation | https://api.opencarebd.com/swagger-ui/index.html | Interactive API documentation |
Note: Demo servers are for testing purposes and may have limited uptime. For production use, please deploy your own instance.
- Framework: Next.js - React framework for production
- Styling: TailwindCSS - Utility-first CSS framework
- UI Components: Custom components with accessibility focus
- State Management: TanStack React Query for server state
- Forms & Validation: React Hook Form with Zod schema validation
- HTTP Client: Fetch API via TanStack Query
- Type Safety: TypeScript for enhanced development experience
- Framework: React Native - planned for cross-platform mobile development
- Development Platform: Expo - planned development and deployment platform
- Runtime: Java 21 - Enterprise-grade runtime environment
- Framework: Spring Boot - Production-ready application framework
- Database: PostgreSQL - Advanced open-source relational database
- API Documentation: Swagger/OpenAPI - Interactive API documentation
- Security: Spring Security for authentication and authorization
- Testing: JUnit 5, Mockito for comprehensive testing
- Authentication: Keycloak - Open-source identity and access management
- File Storage: MinIO - High-performance object storage
- Session Management: JWT tokens with Keycloak integration
- Role-Based Access: Fine-grained permissions and user roles
- Deployment: Docker containers for consistent deployment
- Database Migration: Liquibase for version-controlled database changes
- Monitoring: Application health checks and logging
- CI/CD: GitHub Actions for automated testing and deployment
Our database is designed with scalability and data integrity in mind:
- Users & Authentication: Keycloak integration for secure user management
- Medical Professionals: Comprehensive doctor profiles with specializations
- Healthcare Facilities: Detailed hospital and clinic information
- Medical Content: Curated medical information with proper categorization
- Reviews & Ratings: Community feedback system with moderation
- File Management: MinIO integration for secure file storage and retrieval
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend API │ │ Database │
│ (Next.js) │◄──►│ (Spring Boot) │◄──►│ (PostgreSQL) │
│ Port: 5175 │ │ Port: 6700 │ │ Port: 5432 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Keycloak │ │ MinIO │
│ (Auth Server) │ │ (File Storage)│
│ Port: 8080 │ │ Port: 9000 │
└─────────────────┘ └─────────────────┘
Note on prescription management: A temporary standalone service (
open-care-prescription-management, port 6701) exists for early use. It will be retired once prescription features are built natively into the main backend and frontend.
Note on architecture evolution: The platform is intentionally a monolith at this stage. Migration to microservices is planned for a future phase when user growth and revenue justify the operational overhead.
Before you begin, ensure you have the following installed on your system:
- Node.js (v18.0.0 or higher)
- Java Development Kit (JDK 21 or higher)
- PostgreSQL (v14.0 or higher)
- Docker and Docker Compose
- Git for version control
The easiest way to get started is using Docker Compose:
# Clone the main repository
git clone https://github.com/Cipher-Text/opencare.git
cd open-care
# Start all services
docker-compose up -d
# The application will be available at:
# - Frontend: http://localhost:5175
# - Backend API: http://localhost:6700
# - Keycloak: http://localhost:8080
# - MinIO Console: http://localhost:9001Each repository has its own detailed setup instructions:
- Frontend Setup: Visit open-care-frontend for detailed Next.js setup
- Backend Setup: Visit open-care-backend for detailed Spring Boot setup
- Environment Variables: See docs/ENVIRONMENT_VARIABLES.md for all configurable env vars across services
- Registration: Create a professional account with credential verification through Keycloak
- Profile Management: Maintain updated professional information and specializations
- Content Contribution: Contribute to the medical knowledge base
- Patient Interaction: Respond to queries and provide professional guidance
- File Management: Upload and manage medical documents through MinIO integration
- Doctor Search: Find qualified healthcare professionals in your area
- Hospital Lookup: Locate nearby medical facilities and services
- Medical Information: Access reliable, evidence-based medical content
- Cross-Platform Access: Use the web application (mobile app planned for a future phase)
- Document Storage: Securely store and access medical documents
# API Usage Example
curl -X GET "http://localhost:6700/api/doctors?specialty=cardiology&location=dhaka" \
-H "Accept: application/json" \
-H "Authorization: Bearer <keycloak_token>"
# Response
{
"success": true,
"data": [
{
"id": 1,
"name": "Dr. John Doe",
"specialty": "Cardiology",
"location": "Dhaka",
"rating": 4.8,
"experience": 15
}
]
}http://localhost:6700/api
The API uses Keycloak for authentication. Include the JWT token in the Authorization header:
Authorization: Bearer <keycloak_jwt_token>| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET |
/api/doctors |
Get list of doctors | No |
GET |
/api/doctors/{id} |
Get doctor details | No |
POST |
/api/doctors |
Create doctor profile | Yes |
GET |
/api/hospitals |
Get list of hospitals | No |
GET |
/api/hospitals/{id} |
Get hospital details | No |
GET |
/api/institutions |
Get list of institutions | No |
GET |
/api/social-organizations |
Get list of social organizations | No |
GET |
/api/ambulances |
Get list of ambulances | No |
GET |
/api/blood-donations |
Blood donation records | Yes |
GET |
/api/blood-requisitions |
Blood requisition requests | Yes |
GET |
/api/health-vitals |
User health vitals | Yes |
GET |
/api/search |
Search across doctors, hospitals, institutions | No |
GET |
/api/locations |
Location hierarchy (divisions, districts, upazilas) | No |
POST |
/api/auth/login |
User authentication (Keycloak) | No |
GET |
/api/files/{id} |
Download file from MinIO | Yes |
POST |
/api/files/upload |
Upload file to MinIO | Yes |
For complete API documentation, visit: API Documentation
- Doctor directory with search functionality
- Hospital database with location-based search
- Blood donation & requisition management
- Ambulance services directory
- Social organization management
- Keycloak authentication & role-based access control
- MinIO file storage integration
- Elasticsearch-powered hospital search
- Responsive web interface
- Health vitals tracking (backend CRUD built; open security issues block patient use — see CODE_REVIEW.md)
- Mobile application (React Native) — planned
- Appointment booking system (DB schema complete; entity/API layer pending)
- Doctor verification workflow (boolean flag exists; full workflow pending)
- Ratings & reviews (DB schema exists; write API pending)
- Prescription management (temporary standalone service exists; will be rebuilt natively in main backend/frontend)
- Patient health records (encounter, condition, medication history)
- Push notifications (SMS, email, in-app)
- Telemedicine / video consultations
- Payment integration (SSLCommerz, Stripe)
- Multi-language support (Bengali + English, others later)
- Real-time chat with healthcare professionals
- AI-powered symptom checker
- Integration with wearable health devices
- Mobile application (React Native + Expo) — starts here
- Microservices migration (when user growth and revenue justify the operational overhead)
- International healthcare provider network
- Medical insurance integration
- Pharmaceutical information database
- Medical research collaboration platform
- Community health analytics
We welcome contributions from the community! Whether you're a developer, healthcare professional, or simply passionate about improving healthcare accessibility, there are many ways to contribute.
Please read our CONTRIBUTION.md file for detailed guidelines on how to contribute to the project.
For comprehensive project management guidelines including GitHub workflow, issue management, and estimation practices, please refer to our PROJECT_GUIDE.md.
- Choose a Repository: Frontend or Backend
- Read Guidelines: Check the specific contribution guidelines for your chosen repository
- Set Up Development Environment: Follow the setup instructions in the respective repository
- Pick an Issue: Look for "good first issue" labels on our GitHub issues
- Submit a Pull Request: Follow our PR template and guidelines
💡 Pro Tip: For detailed project management guidelines, GitHub workflow, and issue management best practices, check out our PROJECT_GUIDE.md.
- Frontend Development: Next.js components and features
- Backend Development: Spring Boot APIs and services
- Database: Schema improvements and optimization
- Documentation: Technical and user documentation
- Testing: Unit tests, integration tests, and end-to-end tests
- UI/UX: Design improvements and accessibility features
- Medical Content: Curated medical information and resources
Our project follows a structured approach to task management, issue tracking, and development workflow. We use GitHub Projects, comprehensive labeling systems, and standardized processes to ensure efficient collaboration.
- GitHub Projects Setup: Board configuration and workflow columns
- Issue Management: Comprehensive labeling system and templates
- Time Estimation: Story points and planning guidelines
- Workflow Process: Step-by-step development lifecycle
- Milestone Management: Release planning and tracking
- Best Practices: Commit conventions and branch naming
For complete project management guidelines, visit our comprehensive PROJECT_GUIDE.md documentation.
This guide covers everything you need to know about:
- Creating and managing issues effectively
- Using our labeling system for categorization
- Estimating task complexity and time requirements
- Following our development workflow
- Contributing to project planning and releases
We are grateful for the contributions of our community members. Check out the CONTRIBUTORS.md file for a complete list of contributors and their contributions.
Distributed under the MIT License. See LICENSE for more information.
Sadman Sobhan
- LinkedIn: @sadmansobhan
- Email: imran110219@gmail.com
- GitHub: @Cipher-Text
Project Links:
- Frontend Repository: https://github.com/Cipher-Text/open-care-frontend
- Backend Repository: https://github.com/Cipher-Text/open-care-backend
- Mobile Repository: https://github.com/Cipher-Text/open-care-mobile
- Live Demo: https://opencarebd.com/
We extend our gratitude to the following resources and communities that made this project possible:
- World Health Organization (WHO) - Global health guidelines and standards
- PubMed - Medical literature database
- Mayo Clinic - Trusted medical information
- WebMD - Medical information platform
- Spring Boot Documentation - Comprehensive framework guide
- React Documentation - Frontend library documentation
- Next.js Documentation - React framework documentation
- React Native Documentation - Mobile development guide
- PostgreSQL Documentation - Database documentation
- Keycloak Documentation - Authentication server guide
- MinIO Documentation - Object storage documentation
- GitHub - Version control and collaboration
- Docker - Containerization platform
- Swagger - API documentation tools
- Expo - Mobile development platform
- Postman - API development and testing
- Open-source contributors and maintainers
- Healthcare professionals providing domain expertise
- Beta testers and early adopters
- The global developer community
Made with ❤️ for better healthcare accessibility

