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
Powerful Search#
Find records across your entire dataset:
Full-text search across all record content
Date range filtering for temporal searches
User and instrument filters for attribution queries
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#
Development Setup - Set up a local development environment
Production Deployment - Deploy to production
Configuration - Configure environment variables