# Developer Documentation

The PASS Developer Documentation encompasses all aspects of PASS required to understand and contribute to the PASS\
development. The main areas of PASS Development are PASS Core, PASS UI, Data Loaders, Deposit Services,\
Notification Services, and Acceptance Tests. All of these components work together to bring together a comprehensive\
system to disseminate research to their proper repositories. Each of these modules has a distinct role, such as managing\
data ingestion, handling user interactions, automating data transformations, and making deposits to their intended\
downstream repository. In all, these components interact to create an efficient workflow that supports research\
dissemination in various institutional and federal compliance scenarios.

The Data Loaders handle data ingestion from external systems like PubMed Central, NIH, FIBI\
(JHU Grant Management System), transforming grant, journal, and manuscript submission data into a standardized format\
within PASS. Deposit Services then manage the packaging and transfer of these submissions to downstream repositories\
such as Pubmed Central and institutional repositories. Notification Services provide alerts and updates to relevant\
stakeholders based on submission workflows and events. This modular structure, built primarily using Java and Spring\
Boot, allows for flexibility and extensibility in accommodating different institutional requirements and third-party\
integrations.

The developer documentation also details the technical setup, configuration, and deployment of each PASS component,\
including environment-specific configurations, database setup, authentication management, and integration with cloud\
services provided by AWS. PASS utilizes RESTful APIs for data access and manipulation, while its microservices\
communicate asynchronously using message queues to support scalable and distributed deployments. By following a modular\
and loosely-coupled architecture, PASS is able to evolve rapidly, incorporating new compliance requirements and\
enhancing repository deposit capabilities across academic and research institutions.

**Table of Contents:**

1. [Use cases](/developer-documentation/use-cases.md)
2. [PASS Core](/developer-documentation/pass-core.md)
3. [PASS UI](/developer-documentation/pass-ui.md)
4. [Metadata Schema](https://github.com/eclipse-pass/pass-documentation/blob/main/developer-documentation/metadata-schema.md)
5. [Data Loaders](/developer-documentation/data-loaders.md)
6. [Deposit Services](/developer-documentation/deposit-service.md)
7. [Notification Services](/developer-documentation/notification-service.md)
8. [Pass Acceptance Testing](/developer-documentation/pass-acceptance-testing.md)
9. [PASS Docker](/developer-documentation/pass-docker.md)
10. [Release](/developer-documentation/release.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eclipse-pass.org/developer-documentation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
