π Documentation Issue β Create Comprehensive SEPIA Technical & User Documentation (ReadTheDocs Format)
π― Goal
Establish a centralized, well-structured SEPIA documentation system that can be published via ReadTheDocs. This documentation should cover both:
- Technical Documentation (architecture, API, models, deployment, developer guide)
- Supportive/User Documentation (usage guides, workflows, examples, screenshots)
The result will serve as the single authoritative reference for all SEPIA components β frontend, backend, and data workflows.
π§© Implementation Details
1. Documentation Platform
- Use Sphinx with the ReadTheDocs theme.
- Structure repository to be compatible with ReadTheDocs build system (
docs/folder). - Integrate with
readthedocs.iofor auto-builds from themainbranch.
Directory structure example:
docs/
βββ conf.py
βββ index.rst
βββ installation/
β βββ backend_setup.rst
β βββ frontend_setup.rst
β βββ environment_variables.rst
βββ api/
β βββ openapi_overview.rst
β βββ endpoints/
β β βββ sample.rst
β β βββ user.rst
β β βββ keyword.rst
β β βββ etc...
βββ development/
β βββ architecture_overview.rst
β βββ database_models.rst
β βββ coding_standards.rst
β βββ deployment_guide.rst
βββ user/
β βββ intro_to_sepia.rst
β βββ creating_samples.rst
β βββ search_samples.rst
β βββ minting_igsn.rst
β βββ managing_sample_types.rst
β βββ faq.rst
2. Documentation Content
π§± Technical Documentation
-
Architecture Overview
- Frontend / Backend separation
- Database schema & key models (Sample, SampleType, SampleUser, etc.)
-
API Reference
- Auto-generated from OpenAPI specification
- Each endpoint described with examples and parameters
-
Data Flow
- How data moves between frontend, backend, ICAT, and DataCite
-
Deployment & Configuration
- Installation prerequisites (Python, Node, Postgres, etc.)
- Environment variable definitions
- Docker or Compose setup if applicable
-
Development Standards
- Coding style, contribution guide, testing strategy
π User / Support Documentation
-
Overview of SEPIA
- What SEPIA does, high-level features
-
Creating and Managing Samples
- Form walkthrough, file upload options (XML, JSON, CSVβ¦)
- Dynamic fields based on Sample Type schema
-
IGSN Minting
- How to mint an IGSN and view its landing page
-
Searching Samples
- Filters, keywords, advanced search, etc.
-
Managing Users
- ORCID lookup, ICAT linkage
-
FAQ and Troubleshooting
- Common errors, API responses, and how to resolve them
3. Technical Setup
-
Initialize with
sphinx-quickstart -
Add Sphinx extensions:
sphinx_rtd_themesphinx.ext.autodoc-
sphinx.ext.napoleon(for Google/NumPy docstrings) sphinx.ext.autosectionlabel-
sphinx-jsonschema(for documenting JSON schemas)
-
Integrate automatic OpenAPI documentation generation (via
sphinxcontrib-openapiorrecommonmarkfor Markdown support). -
Configure
conf.pyto render.rstand.mdfiles.
4. Versioning
-
Use ReadTheDocs versioning to document:
-
latest(main branch) -
stable(last release)
-
-
Ensure that backend and frontend version numbers are cross-referenced in documentation headers.
5. Deliverables
-
Sphinx project initialized and builds locally ( make html) -
Hosted on ReadTheDocs with CI build badge -
Covers both technical and user documentation -
Links to API schema and GitLab repos -
Consistent branding (logo, footer, navigation structure)
π§ͺ Testing
-
Builds successfully on ReadTheDocs -
Internal links and cross-references resolve correctly -
Example code snippets render properly -
Auto-generated OpenAPI docs integrated -
User guide sections easy to navigate
π·οΈ Labels
documentation readthedocs feature technical-docs user-docs priority::high