Skip to content

Introduction

Dharini is a comprehensive, mobile-first digital platform designed for end-to-end environmental field sampling workflows and One Health surveillance. It replaces traditional paper-based processes with a guided digital system that ensures accuracy, traceability, and accountability across the entire sample lifecycle—from field collection to laboratory analysis and reporting.

Dharini is a full-stack application that connects field operations, laboratory workflows, and administrative oversight into one unified system. The platform is built to support public health surveillance, environmental monitoring, and disease tracking programs that require rigorous sample management and geospatial data collection.

  • Field Data Collection: Mobile-first interface for collectors to record samples, site information, and metadata in the field
  • Offline-First Architecture: Works seamlessly in low or no network areas with automatic synchronization
  • Sample Tracking: Complete traceability from collection through laboratory testing to final reporting
  • Laboratory Management: Streamlined workflows for sample intake, quality control, testing, and reporting
  • Geospatial Integration: Built-in GPS tracking and PostGIS integration for location-based analytics
  • Real-Time Monitoring: Live dashboards for project administrators to oversee operations
  • Quality Assurance: Enforced mandatory fields, duplicate prevention, and audit trails

Dharini is built as a modern monorepo containing:

  • Backend API (NestJS): REST API with TypeORM, PostgreSQL, and Redis
  • Web Frontend (Next.js): Responsive web dashboard for administrators and lab technicians
  • Mobile App (Flutter): Cross-platform mobile application for field collectors
  • APK Distribution Server: Manages mobile app versioning and distribution
  • Database (PostgreSQL with PostGIS): Spatial database with geospatial extensions
  • Infrastructure: Docker-based orchestration for development and production

Dharini is designed for three primary user roles:

Use the mobile application to:

  • Collect samples at assigned or new sites
  • Capture GPS coordinates and timestamps automatically
  • Scan QR codes on sample containers
  • Take photos of sites and samples
  • Work offline and sync when connectivity is restored

Learn more about Field Collector workflows →

Use the web dashboard to:

  • Receive and accession samples from the field
  • Accept or reject samples based on quality standards
  • Record extraction and testing information
  • Generate and upload test reports
  • Track sample status through the laboratory pipeline

Learn more about Lab Technician workflows →

Use the management portal to:

  • Create and manage projects
  • Assign teams, sites, and collection schedules
  • Monitor sample progress and KPIs in real time
  • Manage users and roles
  • Generate reports and analytics

Learn more about Project Admin workflows →

Ensures traceability of all samples from collection to lab testing through:

  • Mandatory metadata fields (GPS, timestamp, collector ID)
  • Barcode/QR code-based sample identification
  • Complete audit trails for all changes
  • Automated validation and error prevention

Reduces sample processing time compared to manual methods by:

  • Eliminating paper-based data entry and transcription errors
  • Streamlining handoffs between field and laboratory
  • Automating status updates and notifications
  • Providing real-time visibility into sample pipelines

Admins can monitor:

  • Live field activity and active collectors
  • Sample status across all stages
  • Site coverage and visit compliance
  • Quality metrics and exceptions
  • Project progress and performance indicators

Field collectors can work in low or no network areas:

  • All data collection features work offline
  • Data is securely stored locally on the device
  • Automatic synchronization when network is available
  • Clear sync status indicators
  • Framework: NestJS (Node.js)
  • Database: PostgreSQL 16 with PostGIS 3.4
  • ORM: TypeORM
  • Cache/Sessions: Redis
  • Storage: AWS S3 (configurable)
  • Email: SMTP server (configurable)
  • Authentication: JWT-based
  • Framework: Next.js (React)
  • Styling: Tailwind CSS
  • State Management: React Context/hooks
  • API Communication: REST
  • Framework: Flutter (Dart)
  • Platforms: Android (iOS coming soon)
  • Offline Storage: Local database with sync
  • QR Scanning: Integrated barcode/QR support
  • Containerization: Docker and Docker Compose
  • Reverse Proxy: Nginx
  • Deployment: AWS EC2, RDS, S3 (configurable)
  • SSL: Certbot (Let’s Encrypt)

Dharini is designed for:

  • Public Health Surveillance: Disease monitoring and outbreak detection
  • Environmental Sampling: Water quality, soil testing, air monitoring
  • Vector Surveillance: Mosquito and vector-borne disease tracking
  • One Health Programs: Integrated human, animal, and environmental health monitoring
  • Field Research: Academic and research projects requiring sample management
  • Quality Assurance: Programs requiring rigorous traceability and compliance

If you’re a field collector, lab technician, or project administrator:

  1. Review the User Guide for an overview of the platform
  2. Read the guide specific to your role:
  3. Check the Troubleshooting Guide if you encounter issues

If you’re setting up or managing a Dharini deployment:

  1. Review the Software Requirements & Specifications
  2. Follow the Production Setup Guide
  3. Configure Environment Variables
  4. Set up the Database
  5. Configure Nginx
  6. Refer to Troubleshooting for common issues

Dharini is actively developed and maintained by the Data Science Innovation Hub (DSIH) team at ARTPARK, Bengaluru, India.

  • Repository: github.com/dsih-artpark/dharini (The repository is currently private, but will be made public soon)
  • License: To be specified, the platform is in an alpha stage of development, and thus we are not releasing the license yet, we intend to release it in the near future under the AGPL-3.0 license
  • India Instance (Flagship): https://in.dharini.artpark.ai/

For questions, issues, or contributions:

  • Review the documentation in this site
  • Check the GitHub repository
  • Contact your project administrator or technical support team