Cipher-Text / opencare

Transforming Healthcare with Digital Medical Information System

Repository from Github https://github.comCipher-Text/opencareRepository from Github https://github.comCipher-Text/opencare

Logo

Empowering communities with free access to medical information for healthier lives!
Get Started »

View Live Demo · API Documentation · Report Bug · Request Feature

Contributors Forks Stargazers Issues MIT License LinkedIn

📖 Table of Contents

Click to expand
  1. About The Project
  2. Key Features
  3. Repositories
  4. Live Demo & API
  5. Tech Stack
  6. Architecture
  7. Getting Started
  8. Usage
  9. API Reference
  10. Roadmap
  11. Contributing
  12. Project Management
  13. Contributors
  14. License
  15. Contact
  16. Acknowledgments

🩺 About The Project

Product Screenshot

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.

🎯 Mission

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.

✨ Key Features

👨‍⚕️ Doctor Directory

  • 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

🏥 Hospital Database

  • 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

🔍 Advanced Information Search

  • 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)

📱 Cross-Platform Access

  • 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

📁 Repositories

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
Mobile Repository Cross-platform mobile application React Native, TypeScript, Expo ✅ Active

🌐 Live Demo & API

Service URL Description
Live Application https://opencarebd.com/ Full-featured web application
API Documentation http://46.102.157.211:6700/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.

🛠️ Tech Stack

Frontend (Web)

  • Framework: Next.js - React framework for production
  • Styling: TailwindCSS - Utility-first CSS framework
  • UI Components: Custom components with accessibility focus
  • State Management: React Context API / Redux Toolkit
  • HTTP Client: Axios for API communication
  • Type Safety: TypeScript for enhanced development experience

Mobile

  • Framework: React Native - Cross-platform mobile development
  • Development Platform: Expo - Development and deployment platform
  • Navigation: React Navigation for seamless app navigation
  • State Management: Redux Toolkit / React Context API
  • UI Components: Native Base / React Native Elements
  • Type Safety: TypeScript for enhanced development experience

Backend

  • Runtime: Java 17+ - 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 & Storage

  • 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

Infrastructure

  • Deployment: Docker containers for consistent deployment
  • Database Migration: Flyway for version-controlled database changes
  • Monitoring: Application health checks and logging
  • CI/CD: GitHub Actions for automated testing and deployment

🏗️ Architecture

Database Schema

Database Diagram

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

System Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Frontend      │    │   Backend API   │    │   Database      │
│   (Next.js)     │◄──►│   (Spring Boot) │◄──►│   (PostgreSQL)  │
│   Port: 3000    │    │   Port: 6700    │    │   Port: 5432    │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                       │                       │
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Mobile App    │    │   Keycloak      │    │   MinIO         │
│   (React Native)│    │   (Auth Server) │    │   (File Storage)│
│   Port: 19000   │    │   Port: 8080    │    │   Port: 9000    │
└─────────────────┘    └─────────────────┘    └─────────────────┘

🚀 Getting Started

Prerequisites

Before you begin, ensure you have the following installed on your system:

  • Node.js (v18.0.0 or higher)
  • Java Development Kit (JDK 17 or higher)
  • PostgreSQL (v14.0 or higher)
  • Docker and Docker Compose
  • Git for version control

Quick Start with Docker

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:3000
# - Backend API: http://localhost:6700
# - Keycloak: http://localhost:8080
# - MinIO Console: http://localhost:9001

Repository Setup

Each repository has its own detailed setup instructions:

  1. Frontend Setup: Visit open-care-frontend for detailed Next.js setup
  2. Backend Setup: Visit open-care-backend for detailed Spring Boot setup
  3. Mobile Setup: Visit open-care-mobile for detailed React Native setup

💻 Usage

For Healthcare Professionals

  1. Registration: Create a professional account with credential verification through Keycloak
  2. Profile Management: Maintain updated professional information and specializations
  3. Content Contribution: Contribute to the medical knowledge base
  4. Patient Interaction: Respond to queries and provide professional guidance
  5. File Management: Upload and manage medical documents through MinIO integration

For Patients and General Users

  1. Doctor Search: Find qualified healthcare professionals in your area
  2. Hospital Lookup: Locate nearby medical facilities and services
  3. Medical Information: Access reliable, evidence-based medical content
  4. Cross-Platform Access: Use the web application or mobile app
  5. Document Storage: Securely store and access medical documents

For Developers

# API Usage Example
curl -X GET "http://localhost:6700/api/v1/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
    }
  ]
}

📚 API Reference

Base URL

http://localhost:6700/api/v1

Authentication

The API uses Keycloak for authentication. Include the JWT token in the Authorization header:

Authorization: Bearer <keycloak_jwt_token>

Key Endpoints

Method Endpoint Description Auth Required
GET /doctors Get list of doctors No
GET /doctors/{id} Get doctor details No
POST /doctors Create doctor profile Yes
GET /hospitals Get list of hospitals No
GET /hospitals/{id} Get hospital details No
GET /search Search medical information No
POST /auth/login User authentication (Keycloak) No
POST /auth/register User registration No
GET /files/{id} Download file from MinIO Yes
POST /files/upload Upload file to MinIO Yes

For complete API documentation, visit: API Documentation

🗺️ Roadmap

Phase 1: Core Features ✅

  • Doctor directory with search functionality
  • Hospital database with location-based search
  • Basic medical information repository
  • Keycloak authentication system
  • MinIO file storage integration
  • Responsive web interface
  • Mobile application (React Native)

Phase 2: Enhanced Features 🚧

  • Advanced search with AI-powered recommendations
  • Telemedicine integration
  • Appointment booking system
  • Patient health records management
  • Push notifications for mobile app

Phase 3: Advanced Features 📋

  • Multi-language support (Bengali, Hindi, Spanish)
  • Real-time chat with healthcare professionals
  • AI-powered symptom checker
  • Integration with wearable health devices
  • Emergency services locator
  • Offline mode for mobile app

Phase 4: Expansion 🌍

  • International healthcare provider network
  • Medical insurance integration
  • Pharmaceutical information database
  • Medical research collaboration platform
  • Community health analytics

🤝 Contributing

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.

Quick Start for Contributors

  1. Choose a Repository: Frontend, Backend, or Mobile
  2. Read Guidelines: Check the specific contribution guidelines for your chosen repository
  3. Set Up Development Environment: Follow the setup instructions in the respective repository
  4. Pick an Issue: Look for "good first issue" labels on our GitHub issues
  5. 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.

Areas for Contribution

  • Frontend Development: Next.js components and features
  • Backend Development: Spring Boot APIs and services
  • Mobile Development: React Native features and improvements
  • 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

🏷️ Project Management

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.

📋 What's Included in Our Project Guide

  • 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

📖 Get Started with Project Management

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

👥 Contributors

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.

📝 License

Distributed under the MIT License. See LICENSE for more information.

📞 Contact

Sadman Sobhan

Project Links:

🙏 Acknowledgments

We extend our gratitude to the following resources and communities that made this project possible:

Medical Resources

Technical Resources

Development Tools

  • GitHub - Version control and collaboration
  • Docker - Containerization platform
  • Swagger - API documentation tools
  • Expo - Mobile development platform
  • Postman - API development and testing

Community

  • 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

Back to TopLive DemoAPI Docs

About

Transforming Healthcare with Digital Medical Information System

License:MIT License


Languages

Language:Python 100.0%