A comprehensive healthcare application with three main components:
sistercheck/
βββ apps/
β βββ flutter/ # Flutter mobile application
β βββ api/ # Node.js REST API
β βββ python/ # Python ML backend
βββ package.json # Root package.json for monorepo
βββ docker-compose.yml # Production Docker Compose
βββ docker-compose.dev.yml # Development Docker Compose
βββ docker-scripts.sh # Docker management script
βββ nginx/ # Nginx configurations
βββ README.md # This file
- Docker and Docker Compose installed
- Git
-
Clone and navigate to the project:
git clone <repository-url> cd sistercheck
-
Build and start all services:
# Build all Docker images ./docker-scripts.sh build # Start production environment ./docker-scripts.sh start
-
Access the application:
- Web App: http://localhost:8080
- API: http://localhost:5000
- ML API: http://localhost:5001
# Start development environment with hot reloading
./docker-scripts.sh start-dev
# View development logs
./docker-scripts.sh logs-dev
# Stop all services
./docker-scripts.sh stop# Build all services
./docker-scripts.sh build
# Start production environment
./docker-scripts.sh start
# Start development environment
./docker-scripts.sh start-dev
# Stop all services
./docker-scripts.sh stop
# View logs
./docker-scripts.sh logs [service-name]
# View development logs
./docker-scripts.sh logs-dev [service-name]
# Check service status
./docker-scripts.sh status
# Restart a specific service
./docker-scripts.sh restart <service-name>
# Clean up Docker resources
./docker-scripts.sh cleanup
# Show help
./docker-scripts.sh help- Node.js 18+
- Python 3.8+
- Flutter 3.0+
- Git
-
Install root dependencies:
npm install
-
Install API dependencies:
cd apps/api && npm install
-
Install Python dependencies:
cd apps/python && pip install -r requirements.txt
-
Install Flutter dependencies:
cd apps/flutter && flutter pub get
Start all services:
npm run start:allStart individual services:
# API only
npm run dev:api
# Python backend only
npm run dev:python
# Flutter (in separate terminal)
cd apps/flutter && flutter run- Mobile application for patients
- Risk assessment features
- Care template management
- Audio lessons and educational content
- REST API for the Flutter app
- User authentication and management
- Risk assessment data processing
- Integration with external services
- Machine learning models
- Risk assessment algorithms
- Data processing and analytics
- DHIS2 integration
npm run dev:api- Start Node.js API in development modenpm run dev:python- Start Python ML backendnpm run build:api- Build Node.js APInpm run install:all- Install all dependenciesnpm run test:api- Run API testsnpm run start:all- Start both API and Python backend
- API: Node.js REST API (Port 5000)
- Python ML: Machine Learning backend (Port 5001)
- Flutter Web: Web application (Port 80)
- MongoDB: Database (Port 27017)
- Redis: Cache (Port 6379)
- Nginx: Reverse proxy (Port 443/8080)
- API Dev: Node.js API with hot reloading
- Python ML Dev: Python backend with debug mode
- Flutter Web Dev: Flutter web with hot reloading
- MongoDB Dev: Development database
- Redis Dev: Development cache
- Nginx Dev: Development reverse proxy
- Risk Assessment: AI-powered health risk evaluation
- Care Templates: Personalized care plans
- Educational Content: Audio lessons and health information
- Clinic Finder: Locate nearby healthcare facilities
- Crystal AI: Advanced AI chat assistance
- Analytics: Comprehensive health data analysis
- HTTPS: SSL/TLS encryption in production
- Rate Limiting: API request rate limiting
- Security Headers: Comprehensive security headers
- Non-root Users: Containers run as non-root users
- Health Checks: Automated health monitoring
- CORS: Proper CORS configuration
# Build and start production environment
./docker-scripts.sh build
./docker-scripts.sh start
# View logs
./docker-scripts.sh logs
# Monitor services
./docker-scripts.sh statusCreate .env files in each app directory with appropriate configuration:
API (.env):
NODE_ENV=production
PORT=5000
MONGODB_URI=mongodb://admin:sistercheck123@mongodb:27017/sistercheck
JWT_SECRET=your-jwt-secret
Python (.env):
FLASK_ENV=production
PORT=5001
MONGODB_URI=mongodb://admin:sistercheck123@mongodb:27017/sistercheck
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - see LICENSE file for details