Overview#

NexusLIMS-CDCS is a customized deployment of the NIST Materials Data Curation System (MDCS) designed for managing and sharing microscopy and materials characterization data. It provides a web-based platform for capturing, organizing, searching, and visualizing experimental data using structured XML schemas.

What is CDCS?#

CDCS (Configurable Data Curation System) is an open-source web application developed by NIST for curating scientific data. NexusLIMS-CDCS extends this base system with:

  • Custom XML schemas for microscopy experiment records

  • XSLT stylesheets for rich HTML rendering of records

  • Pre-configured deployment with Docker Compose

  • Integration with the NexusLIMS backend for automated record generation

  • File server for instrument data and preview images

Key Capabilities#

Structured Data Capture#

NexusLIMS-CDCS uses XML schemas to define the structure of experimental records:

  • Templates define what data can be stored (based on nexus-experiment.xsd)

  • Web forms guide users through data entry with validation

  • API endpoints allow programmatic record submission

Data Visualization#

XSLT stylesheets transform raw XML into human-readable HTML:

  • Detail view shows complete record with all metadata

  • List view provides summary cards for search results

  • Preview images display inline from the file server

  • Links to raw data for downloading original instrument files

RESTful API#

Full programmatic access to CDCS functionality:

  • Create, read, update, delete records

  • Upload templates and stylesheets

  • Manage users and permissions

  • Export data in multiple formats

System Requirements#

Development#

  • Docker Desktop or Docker Engine with Compose

  • 4GB RAM minimum

  • 10GB disk space

Production#

  • CPU: 4+ cores (8 recommended)

  • RAM: 8GB minimum (16GB recommended)

  • Disk: 50GB+ SSD (excluding data files)

  • Network: Ports 80 and 443 accessible

  • OS: Ubuntu 22.04 LTS or RHEL 8+ recommended

See the Production Deployment guide for detailed requirements.

Repository Structure#

The NexusLIMS-CDCS repository is organized as follows:

NexusLIMS-CDCS/
├── deployment/                    # Docker deployment configuration
│   ├── docker-compose.base.yml   # Shared service definitions
│   ├── docker-compose.dev.yml    # Development overrides
│   ├── docker-compose.prod.yml   # Production overrides
│   ├── Dockerfile                # Application image
│   ├── .env.dev                  # Development defaults
│   ├── .env.prod.example         # Production template
│   ├── caddy/                    # Reverse proxy configuration
│   └── scripts/                  # Initialization and admin scripts
│
├── config/                       # Django settings
│   └── settings/
│       ├── dev_settings.py      # Development settings
│       └── prod_settings.py     # Production settings
│
├── xslt/                         # XSLT stylesheets
│   ├── detail_stylesheet.xsl    # Full record view
│   └── list_stylesheet.xsl      # Search result cards
│
├── static/                       # Static assets (CSS, images)
├── templates/                    # Custom Django templates
└── nexuslims_overrides/          # NexusLIMS-specific customizations

Next Steps#