diff --git a/documentation/docs/assets/images/ELI_logo.png b/documentation/docs/assets/images/ELI_logo.png new file mode 100644 index 0000000000..45d5d63399 Binary files /dev/null and b/documentation/docs/assets/images/ELI_logo.png differ diff --git a/documentation/docs/developer-guide/achitecture.md b/documentation/docs/developer-guide/achitecture.md index 4423ef4ad4..5f7b011936 100644 --- a/documentation/docs/developer-guide/achitecture.md +++ b/documentation/docs/developer-guide/achitecture.md @@ -34,4 +34,4 @@ The User Office application leverages a modular architecture with several interc **SciCat, NICOS, and Asset Management Systems** -- These external systems interface with the User Office application to ensure efficient asset management and integration with external resources, enhancing the overall functionality and data management capabilities. \ No newline at end of file +- These external systems interface with the User Office application to ensure efficient asset management and integration with external resources, enhancing the overall functionality and data management capabilities. diff --git a/documentation/docs/developer-guide/configuration.md b/documentation/docs/developer-guide/configuration.md index b0231f0c9e..a44eeb0a44 100644 --- a/documentation/docs/developer-guide/configuration.md +++ b/documentation/docs/developer-guide/configuration.md @@ -1,8 +1,12 @@ -This page provides detailed instructions for configuring your environment. Proper configuration is essential for ensuring the project functions correctly. The configuration is managed through a `.env` file, which contains environment variables for various services and settings required by the application. The default configuration values are provided, but you can override these by setting the appropriate environment variables in your `.env` file. +This page provides detailed instructions for configuring your environment. Proper configuration is essential for ensuring the project functions correctly. + +The configuration is managed through a `.env` file, which contains environment variables for various services and settings required by the application. The default configuration values are provided, but you can override these by setting the appropriate environment variables in your `.env` file. > **_NOTE:_** The `DEPENDENCY_CONFIG` variable is crucial for the User Office application. It enables, disables, or modifies various features based on the specified configuration. You can find the different configuration files in the `apps/backend/src/config` directory. -The `.env` file format is supported by the dotenv library, which loads these variables into the environment when the application starts. If a specific dependency configuration is not provided, the default configuration will be used. For more detailed information, refer to the [dotenv documentation](https://www.npmjs.com/package/dotenv). +The `.env` file format is supported by the dotenv library, which loads these variables into the environment when the application starts. If a specific dependency configuration is not provided, the default configuration will be used. + +For more detailed information, refer to the [dotenv documentation](https://www.npmjs.com/package/dotenv). ## Environment Variables @@ -24,7 +28,7 @@ To enable local logging via Graylog, uncomment and configure the following varia - **GRAYLOG_PORT**: The port for the Graylog server. ### ORCID Configuration -The ORCID section is used for integrating with the ORCID API for user identification and authentication. +The ORCID section can be used for integrating with the ORCID API for user identification and authentication. - **ORCID_TOKEN_URL**: The URL for obtaining ORCID tokens. - **ORCID_API_URL**: The ORCID API URL. @@ -57,7 +61,6 @@ These settings cover the general configuration of the application environment. - **NODE_ENV**: Specifies the environment (e.g., development, production). - **DEPENDENCY_CONFIG**: Indicates which dependency configuration to use (`e2e`, `ess`, `stfc`, `test`). Defaults to the standard configuration if not provided. -- **PING_PUBLIC_CRT**: Public certificate for ping operations. - **DATABASE_URL**: The URL for the database connection. - **BASE_URL**: The base URL for the application. - **JWT_TOKEN_LIFE**: The lifetime of JWT tokens. @@ -90,4 +93,4 @@ The scheduler endpoint is used for managing scheduled tasks: ### Email Configuration The email configuration includes a sink email address for testing purposes: -- **SINK_EMAIL**: The email address to receive sink emails. \ No newline at end of file +- **SINK_EMAIL**: The email address to receive sink emails. diff --git a/documentation/docs/developer-guide/documentation_changes.md b/documentation/docs/developer-guide/documentation_changes.md index 423986683e..2c7db0e70a 100644 --- a/documentation/docs/developer-guide/documentation_changes.md +++ b/documentation/docs/developer-guide/documentation_changes.md @@ -36,4 +36,4 @@ If you add a new page, make sure to update the mkdocs.yml file: 1. Open `mkdocs.yml`. 2. Locate the `nav` section. -3. Add your new page under the appropriate section to ensure it appears in the site navigation. \ No newline at end of file +3. Add your new page under the appropriate section to ensure it appears in the site navigation. diff --git a/documentation/docs/developer-guide/rabbitmq.md b/documentation/docs/developer-guide/rabbitmq.md new file mode 100644 index 0000000000..5af37d1852 --- /dev/null +++ b/documentation/docs/developer-guide/rabbitmq.md @@ -0,0 +1,87 @@ +RabbitMQ is an open-source message broker that enables applications to communicate with each other asynchronously by sending and receiving messages. It is used within User Office to handle communication between different components of the system, particularly for routing messages related to proposal status actions. + +This page provides an overview of how RabbitMQ is integrated into the project, including details on configuration, message handling, and frontend display. + +## RabbitMQ in User Office Core + +When the status of a proposal changes, a message is sent to specific RabbitMQ exchanges, which then route the message to the appropriate services or components for further processing. + +Enable it in the [configuration](configuration.md). + +## Configuration of RabbitMQ Exchanges + +The RabbitMQ exchanges are configured using the `RabbitMQActionConfig` class. This class defines the exchanges to which messages will be sent when the status of a proposal changes. + + @ObjectType() + export class RabbitMQActionConfig extends ProposalStatusActionConfigBase { + @Field(() => [String], { nullable: true }) + exchanges?: string[] | null; + } + +**Exchanges:** The exchanges property is an array of strings, each representing the name of a RabbitMQ exchange. These exchanges are where messages related to proposal status changes are sent. + +## Backend Message Handling + +The `rabbitMQActionHandler` function in the backend is responsible for sending messages to RabbitMQ exchanges based on the configuration defined in `RabbitMQActionConfig`. + + export const rabbitMQActionHandler = async ( + proposalStatusAction: ConnectionHasStatusAction, + proposals: WorkflowEngineProposalType[] + ) => { + const config = proposalStatusAction.config as RabbitMQActionConfig; + if (!config.exchanges?.length) { + return; + } + + const messageDescription = + 'Proposal event successfully sent to the message broker'; + + return await Promise.all( + config.exchanges.map((exchange) => + publishMessageToTheEventBus(proposals, messageDescription, exchange) + ) + ); + }; + +**Message Publishing:** This function takes in a `proposalStatusAction` and an array of proposals. It then publishes messages to each configured exchange by calling `publishMessageToTheEventBus`. + +If no exchanges are configured, the function exits early without performing any actions. + +## Frontend Display of RabbitMQ Exchanges + +On the frontend, the `RabbitMQActionConfig` component is responsible for displaying the RabbitMQ exchanges where messages are sent. This provides users with information of how and where proposal data is routed. + + type RabbitMQActionConfigProps = { + exchanges: RabbitMqActionConfigType['exchanges']; + }; + + const RabbitMQActionConfig = ({ exchanges }: RabbitMQActionConfigProps) => { + return ( + + Messages with proposal data are sent to the following RabbitMQ exchanges:{' '} + + + ); + }; + + export default RabbitMQActionConfig; + +The component renders a list of RabbitMQ exchanges, showing which exchanges are being used to route messages related to proposal data. + +## GraphQL Integration + +The `RabbitMQActionConfig` class is integrated into the project’s GraphQL API, allowing for dynamic configuration and querying of RabbitMQ settings. + +You can retrieve the RabbitMQ configuration using a GraphQL query: + + query { + proposalStatusActionConfig { + exchanges + } + } diff --git a/documentation/docs/developer-guide/running_locally.md b/documentation/docs/developer-guide/running_locally.md index 65df8fd140..9b36aafd56 100644 --- a/documentation/docs/developer-guide/running_locally.md +++ b/documentation/docs/developer-guide/running_locally.md @@ -68,4 +68,4 @@ Lints typescript code and log if there are any errors. If you want to fix all auto-fixable errors and warnings use: - npm run lint:fix \ No newline at end of file + npm run lint: diff --git a/documentation/docs/developer-guide/step-by-step.md b/documentation/docs/developer-guide/step-by-step.md index fbd5b4de31..9a4cd30629 100644 --- a/documentation/docs/developer-guide/step-by-step.md +++ b/documentation/docs/developer-guide/step-by-step.md @@ -13,11 +13,11 @@ Start by adding a new column `is_locked` to the database by creating a new file DO $$ BEGIN - IF register_patch('AlterUserAddIsLocked.sql', 'your_username', 'Add is_locked to the users table', '2024-08-08') THEN + IF register_patch('AlterUserAddIsLocked.sql', 'your_username', 'Add is_locked to the users table', '2024-08-08') THEN BEGIN ALTER TABLE users ADD COLUMN is_locked BOOL DEFAULT FALSE; END; - END IF; + END IF; END; $$ LANGUAGE plpgsql; diff --git a/documentation/docs/faq.md b/documentation/docs/faq.md index 12e1122f3c..56f5b8e352 100644 --- a/documentation/docs/faq.md +++ b/documentation/docs/faq.md @@ -1,186 +1,174 @@ -### Purpose - -Answers to frequently asked questions - -### Contents - -List of questions and their answers. - - ### User Officer FAQs ??? info "**Calls**" ### **Calls** - * #### [What are calls?](creating_call.md) - * #### [How do I create a call?](creating_call.md) - * #### [How do I edit active calls?](editing_call.md) - * #### [How do I manage calls?](placeholder.md) + * #### [What are calls?](user-guide/user-officer/creating_call.md) + * #### [How do I create a call?](user-guide/user-officer/creating_call.md) + * #### [How do I edit active calls?](user-guide/user-officer/editing_call.md) + * #### [How do I manage calls?](user-guide/user-officer/placeholder.md) ??? info "**Managing proposals**" ### **Managing proposals** - * #### [What are proposals?](proposal.md) - * #### [How do I impersonate users?](roles.md) - * #### [How do I manage proposals?](proposal.md) - * #### [How do I edit a users' proposal?](proposal.md) - * #### [How do I clone proposals to a call?](proposal.md) - * #### [How do I allocate experiment time to a proposal?](proposal.md) - * #### [How do I change a proposals' status?](proposal.md) - * #### [How do I revert submitted proposals back to draft status?](proposal.md) - * #### [How do I download proposals?](proposal.md) - * #### [How do I export proposals to excel?](proposal.md) - * #### [How do I assign proposals to a FAP?](proposal.md) - * #### [How do I assign and remove instruments from a proposal?](proposal.md) - * #### [How do I notify users of a proposals' final result?](proposal.md) + * #### [What are proposals?](user-guide/user-officer/proposal.md) + * #### [How do I impersonate users?](user-guide/user-officer/roles.md) + * #### [How do I manage proposals?](user-guide/user-officer/proposal.md) + * #### [How do I edit a users' proposal?](user-guide/user-officer/proposal.md) + * #### [How do I clone proposals to a call?](user-guide/user-officer/proposal.md) + * #### [How do I allocate experiment time to a proposal?](user-guide/user-officer/proposal.md) + * #### [How do I change a proposals' status?](user-guide/user-officer/proposal.md) + * #### [How do I revert submitted proposals back to draft status?](user-guide/user-officer/proposal.md) + * #### [How do I download proposals?](user-guide/user-officer/proposal.md) + * #### [How do I export proposals to excel?](user-guide/user-officer/proposal.md) + * #### [How do I assign proposals to a FAP?](user-guide/user-officer/proposal.md) + * #### [How do I assign and remove instruments from a proposal?](user-guide/user-officer/proposal.md) + * #### [How do I notify users of a proposals' final result?](user-guide/user-officer/proposal.md) ??? info "**Templates**" ### **Templates** - * #### [What are templates?](templates.md) - * #### [How do I use templates within a call?](templates.md) + * #### [What are templates?](user-guide/user-officer/templates/templates.md) + * #### [How do I use templates within a call?](user-guide/user-officer/templates/templates.md) ??? info "**PDF Templates**" ### **PDF templates** - * #### [What are PDF templates?](pdf_templates.md) - * #### [How do I link a PDF template to a call?](pdf_templates.md) - * #### [How do I create PDF templates?](pdf_templates.md) - * #### [How do I edit PDF templates?](pdf_templates.md) - * #### [How do I clone PDF templates?](pdf_templates.md) - * #### [How do I archive and unarchive PDF templates?](pdf_templates.md) - * #### [How do I import and export PDF templates?](pdf_templates.md) - * #### [What does # calls mean on PDF templates?](pdf_templates.md) + * #### [What are PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I link a PDF template to a call?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I create PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I edit PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I clone PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I archive and unarchive PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [How do I import and export PDF templates?](user-guide/user-officer/templates/pdf_template.md) + * #### [What does # calls mean on PDF templates?](user-guide/user-officer/templates/pdf_template.md) ??? info "**Proposal Templates**" ### **Proposal templates** - * #### [What are proposal templates?](proposal_template.md) - * #### [How do I link proposal templates to a call?](proposal_template.md) - * #### [How do I create proposal templates?](proposal_template.md) - * #### [How do I edit proposal templates?](proposal_template.md) - * #### [How do I clone proposal templates?](proposal_template.md) - * #### [How do I archive and unarchive proposal templates?](proposal_template.md) - * #### [How do I import and export proposal templates?](proposal_template.md) - * #### [What does # proposals mean on proposal templates?](proposal_template.md) - * #### [What does # calls mean on proposal templates?](proposal_template.md) + * #### [What are proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I link proposal templates to a call?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I create proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I edit proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I clone proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I archive and unarchive proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [How do I import and export proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [What does # proposals mean on proposal templates?](user-guide/user-officer/templates/proposal_template.md) + * #### [What does # calls mean on proposal templates?](user-guide/user-officer/templates/proposal_template.md) ??? info "**Sample declaration templates**" ### **Sample declaration templates** - * #### [What are sample declaration templates?](sampledec_template.md) - * #### [How do I link sample declaration templates to a call?](sampledec_template.md) - * #### [How do I link sample declaration templates to proposal templates?](sampledec_template.md) - * #### [How do I create sample declaration templates?](sampledec_template.md) - * #### [How do I edit sample declaration templates?](sampledec_template.md) - * #### [How do I clone sample declaration templates?](sampledec_template.md) - * #### [How do I archive and unarchive sample declaration templates?](sampledec_template.md) - * #### [How do I import and export sample declaration templates?](sampledec_template.md) - * #### [What does # samples mean on sample declaration templates?](sampledec_template.md) + * #### [What are sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I link sample declaration templates to a call?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I link sample declaration templates to proposal templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I create sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I edit sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I clone sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I archive and unarchive sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [How do I import and export sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) + * #### [What does # samples mean on sample declaration templates?](user-guide/user-officer/templates/sampledec_template.md) ??? info "**Sub templates**" ### **Sub templates** - * #### [What are sub templates?](sub_template.md) - * #### [How do I link sub templates to other templates?](sub_template.md) - * #### [How do I create sub templates?](sub_template.md) - * #### [How do I edit sub templates?](sub_template.md) - * #### [How do I clone sub templates?](sub_template.md) - * #### [How do I archive and unarchive sub templates?](sub_template.md) - * #### [How do I import and export sub templates?](sub_template.md) - * #### [What does # templates mean on sub templates?](sub_template.md) + * #### [What are sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I link sub templates to other templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I create sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I edit sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I clone sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I archive and unarchive sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [How do I import and export sub templates?](user-guide/user-officer/templates/sub_template.md) + * #### [What does # templates mean on sub templates?](user-guide/user-officer/templates/sub_template.md) ??? info "**Shipment declaration templates**" ### **Shipment declaration templates** - * #### [What are shipment declaration templates?](shipment_template.md) - * #### [How do I mark a shipment declaration template as active?](shipment_template.md) - * #### [How do I create shipment declaration templates?](shipment_template.md) - * #### [How do I edit shipment declaration templates?](shipment_template.md) - * #### [How do I import and export shipment declaration templates?](shipment_template.md) - * #### [How do I clone shipment declaration templates?](shipment_template.md) - * #### [What does # shipments mean on shipment declaration templates?](shipment_template.md) + * #### [What are shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) + * #### [How do I mark a shipment declaration template as active?](user-guide/user-officer/templates/shipment_template.md) + * #### [How do I create shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) + * #### [How do I edit shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) + * #### [How do I import and export shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) + * #### [How do I clone shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) + * #### [What does # shipments mean on shipment declaration templates?](user-guide/user-officer/templates/shipment_template.md) ??? info "**Visit registration templates**" ### **Visit registration templates** - * #### [What are visit registration templates?](visit_template.md) - * #### [How do I mark a visit registration template as active?](visit_template.md) - * #### [How do I create a visit registration template?](visit_template.md) - * #### [How do I edit a visit registration template?](visit_template.md) - * #### [How do I import and export visit registration templates?](visit_template.md) - * #### [How do I clone visit registration template?](visit_template.md) - * #### [What does # visits mean on visit registration templates?](visit_template.md) + * #### [What are visit registration templates?](user-guide/user-officer/templates/visit_template.md) + * #### [How do I mark a visit registration template as active?](user-guide/user-officer/templates/visit_template.md) + * #### [How do I create a visit registration template?](user-guide/user-officer/templates/visit_template.md) + * #### [How do I edit a visit registration template?](user-guide/user-officer/templates/visit_template.md) + * #### [How do I import and export visit registration templates?](user-guide/user-officer/templates/visit_template.md) + * #### [How do I clone visit registration template?](user-guide/user-officer/templates/visit_template.md) + * #### [What does # visits mean on visit registration templates?](user-guide/user-officer/templates/visit_template.md) ??? info "**Proposal Experiment Safety Input (ESI) templates**" ### **Proposal ESI templates** - * #### [What are proposal ESI templates](proposalESI_template.md) - * #### [How do I link proposal ESI templates to ----------](proposalESI_template.md) - * #### [How do I link proposal ESI templates to a proposal -------](proposalESI_template.md) - * #### [How do I create proposal ESI templates?](proposalESI_template.md) - * #### [How do I edit proposal ESI templates?](proposalESI_template.md) - * #### [How do import and export proposal ESI templates?](proposalESI_template.md) - * #### [How do I clone proposal ESI templates?](proposalESI_template.md) - * #### [What does # Proposal safety reviews mean on Proposal ESI templates?](proposalESI_template.md) + * #### [What are proposal ESI templates](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do I link proposal ESI templates to ----------](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do I link proposal ESI templates to a proposal -------](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do I create proposal ESI templates?](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do I edit proposal ESI templates?](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do import and export proposal ESI templates?](user-guide/user-officer/templates/proposalESI_template.md) + * #### [How do I clone proposal ESI templates?](user-guide/user-officer/templates/proposalESI_template.md) + * #### [What does # Proposal safety reviews mean on Proposal ESI templates?](user-guide/user-officer/templates/proposalESI_template.md) ??? info "**Sample Experiment Safety Input (ESI) templates**" ### **Sample ESI templates** - * #### [What are sample ESI templates](sampleESI_template.md) - * #### [How do I link sample ESI templates to calls?](sampleESI_template.md) - * #### [How do I link sample ESI templates to sample declaration templates?](sampleESI_template.md) - * #### [How do I create sample ESI templates?](sampleESI_template.md) - * #### [How do I edit sample ESI templates?](sampleESI_template.md) - * #### [How do I import and export sample ESI templates?](sampleESI_template.md) - * #### [How do I clone sample ESI templates?](sampleESI_template.md) - * #### [What does # Sample ESIs mean on Sample ESI templates?](sampleESI_template.md) + * #### [What are sample ESI templates](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I link sample ESI templates to calls?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I link sample ESI templates to sample declaration templates?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I create sample ESI templates?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I edit sample ESI templates?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I import and export sample ESI templates?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [How do I clone sample ESI templates?](user-guide/user-officer/templates/sampleESI_template.md) + * #### [What does # Sample ESIs mean on Sample ESI templates?](user-guide/user-officer/templates/sampleESI_template.md) ??? info "**Feedback templates**" ### **Feedback templates** - * #### [What are feedback templates](feedback_template.md) - * #### [How do I mark a feedback template as active?](feedback_template.md) - * #### [How do I create feedback templates?](feedback_template.md) - * #### [How do I edit feedback templates?](feedback_template.md) - * #### [How do I import and export feedback templates?](feedback_template.md) - * #### [How do I clone feedback templates?](feedback_template.md) - * #### [What does # feedbacks mean on feedback templates?](feedback_template.md) + * #### [What are feedback templates](user-guide/user-officer/templates/feedback_template.md) + * #### [How do I mark a feedback template as active?](user-guide/user-officer/templates/feedback_template.md) + * #### [How do I create feedback templates?](user-guide/user-officer/templates/feedback_template.md) + * #### [How do I edit feedback templates?](user-guide/user-officer/templates/feedback_template.md) + * #### [How do I import and export feedback templates?](user-guide/user-officer/templates/feedback_template.md) + * #### [How do I clone feedback templates?](user-guide/user-officer/templates/feedback_template.md) + * #### [What does # feedbacks mean on feedback templates?](user-guide/user-officer/templates/feedback_template.md) ??? info "**Question templates**" #### **Question templates** - * #### [What are question templates](question_template.md) - * #### [How do I create a question template?](question_template.md) - * #### [How do I edit a question template?](question_template.md) - * #### [What does # Answers mean on quesrtion templates?](question_template.md) - * #### [What does # Templates mean on quesrtion templates?](question_template.md) + * #### [What are question templates](user-guide/user-officer/templates/question_template.md) + * #### [How do I create a question template?](user-guide/user-officer/templates/question_template.md) + * #### [How do I edit a question template?](user-guide/user-officer/templates/question_template.md) + * #### [What does # Answers mean on quesrtion templates?](user-guide/user-officer/templates/question_template.md) + * #### [What does # Templates mean on quesrtion templates?](user-guide/user-officer/templates/question_template.md) ??? info "**Feasibility review**" #### **Feasibility review** - * #### [How do I configure the system for feasibility review?](feasibility_review.md) + * #### [How do I configure the system for feasibility review?](user-guide/user-officer/feasibility_review.md) ??? info "**Proposal workflows**" #### **Proposal workflows** - * #### [What are proposal workflows?](proposal_workflow.md) - * #### [What are proposal statuses?](proposal_workflow.md) - * #### [What are status events?](proposal_workflow.md) - * #### [What are status actions?](proposal_workflow.md) - * #### [How do I create a proposal workflow?](proposal_workflow.md) - * #### [How do I edit a proposal workflow?](proposal_workflow.md) - * #### [How do I assign a proposal workflow to a call?](proposal_workflow.md) + * #### [What are proposal workflows?](user-guide/user-officer/proposal_workflow.md) + * #### [What are proposal statuses?](user-guide/user-officer/proposal_workflow.md) + * #### [What are status events?](user-guide/user-officer/proposal_workflow.md) + * #### [What are status actions?](user-guide/user-officer/proposal_workflow.md) + * #### [How do I create a proposal workflow?](user-guide/user-officer/proposal_workflow.md) + * #### [How do I edit a proposal workflow?](user-guide/user-officer/proposal_workflow.md) + * #### [How do I assign a proposal workflow to a call?](user-guide/user-officer/proposal_workflow.md) ??? info "**FAPs**" #### **FAPs** - * #### [How do I edit a FAP?](fap.md) - * #### [How do I create a FAP?](fap.md) - * #### [How do I configure the system for FAP review?](fap.md) + * #### [How do I edit a FAP?](user-guide/user-officer/fap.md) + * #### [How do I create a FAP?](user-guide/user-officer/fap.md) + * #### [How do I configure the system for FAP review?](user-guide/user-officer/fap.md) ??? info "**Pages**" #### **Pages** - * #### [What are pages?](page.md) - * #### [How do I edit pages?](page.md) + * #### [What are pages?](user-guide/user-officer/page.md) + * #### [How do I edit pages?](user-guide/user-officer/page.md) ??? info "**Configure User Office**" #### **Configure User Office** - * #### [How do I change the look of the UI?](placeholder.md) - * #### [How do I configure the features?](placeholder.md) + * #### [How do I change the look of the UI?](user-guide/user-officer/placeholder.md) + * #### [How do I configure the features?](user-guide/user-officer/placeholder.md) ### Developer FAQs ??? info "**Developer FAQs**" #### **Developer FAQs** - * #### [How do I use API access tokens?](placeholder.md) - * #### [How do I use features?](features.md) - * #### [How do I configure the App settings?](placeholder.md) - * #### [How do I edit a PDF template?](placeholder.md) - - - + * #### [How do I use API access tokens?](user-guide/user-officer/placeholder.md) + * #### [How do I use features?](user-guide/user-officer/features.md) + * #### [How do I configure the App settings?](user-guide/user-officer/placeholder.md) + * #### [How do I edit a PDF template?](user-guide/user-officer/placeholder.md) diff --git a/documentation/docs/glossary.md b/documentation/docs/glossary.md index 4dd9e72fa2..1d7d86a373 100644 --- a/documentation/docs/glossary.md +++ b/documentation/docs/glossary.md @@ -1,10 +1,3 @@ -### Purpose - -Definitions of terms used in the documentation. - -### Contents - -Alphabetical list of terms and their definitions. # Glossary Links @@ -13,50 +6,50 @@ Alphabetical list of terms and their definitions. ??? info "**A**" - * [Admin](placeholder.md) - * [API Access Tokens](placeholder.md) - * [App Settings](placeholder.md) - * [Archive](placeholder.md) + * [Admin](user-guide/user-officer/placeholder.md) + * [API Access Tokens](user-guide/user-officer/placeholder.md) + * [App Settings](user-guide/user-officer/placeholder.md) + * [Archive](user-guide/user-officer/placeholder.md) ??? info "**B**" * ??? info "**C**" - :material-book-open-variant-outline: [**Calls**](placeholder.md) - > Calls allow users’ proposals to be submitted within User Office. A call is a period of time during which users can submit proposals to a facility. Calls have a start and an end date and are linked to several different kinds of [**templates**](templates.md), [**FAPs (Facility Access Panels)**](fap.md) and a [**proposal workflow**](proposal_workflow.md). + :material-book-open-variant-outline: [**Calls**](user-guide/user-officer/placeholder.md) + > Calls allow users’ proposals to be submitted within User Office. A call is a period of time during which users can submit proposals to a facility. Calls have a start and an end date and are linked to several different kinds of [**templates**](user-guide/user-officer/templates/templates.md), [**FAPs (Facility Access Panels)**](user-guide/user-officer/fap.md) and a [**proposal workflow**](user-guide/user-officer/proposal_workflow.md). - :material-book-open-variant-outline: [**Clone**](placeholder.md) + :material-book-open-variant-outline: [**Clone**](user-guide/user-officer/placeholder.md) > Clone is an action within User Office which allows you to duplicate templates. ??? info "**D**" - * [Dashboard](placeholder.md) + * [Dashboard](user-guide/user-officer/placeholder.md) ??? info "**E**" - * [Events](placeholder.md) - * [Experiments](placeholder.md) - * [Export](placeholder.md) + * [Events](user-guide/user-officer/placeholder.md) + * [Experiments](user-guide/user-officer/placeholder.md) + * [Export](user-guide/user-officer/placeholder.md) ??? info "**F**" - * [FAP Chair](placeholder.md) - * [FAP Secretary](placeholder.md) - * [FAPs](placeholder.md) - * [Feasibility review](placeholder.md) - * [Features](placeholder.md) - * [Feedback templates](placeholder.md) - * [# faps](placeholder.md) - * [# feedbacks](placeholder.md) + * [FAP Chair](user-guide/user-officer/placeholder.md) + * [FAP Secretary](user-guide/user-officer/placeholder.md) + * [FAPs](user-guide/user-officer/placeholder.md) + * [Feasibility review](user-guide/user-officer/placeholder.md) + * [Features](user-guide/user-officer/placeholder.md) + * [Feedback templates](user-guide/user-officer/placeholder.md) + * [# faps](user-guide/user-officer/placeholder.md) + * [# feedbacks](user-guide/user-officer/placeholder.md) ??? info "**G**" - * [Grade guide](placeholder.md) + * [Grade guide](user-guide/user-officer/placeholder.md) ??? info "**H**" * ??? info "**I**" - * [Instruments](placeholder.md) - * [Institutions](placeholder.md) - * [Import](placeholder.md) - * [Impersonate](placeholder.md) + * [Instruments](user-guide/user-officer/placeholder.md) + * [Institutions](user-guide/user-officer/placeholder.md) + * [Import](user-guide/user-officer/placeholder.md) + * [Impersonate](user-guide/user-officer/placeholder.md) ??? info "**J**" * @@ -65,11 +58,11 @@ Alphabetical list of terms and their definitions. * ??? info "**L**" - * [Logs](placeholder.md) + * [Logs](user-guide/user-officer/placeholder.md) ??? info "**M**" - * [Mark as active](placeholder.md) - * [Mutations](placeholder.md) + * [Mark as active](user-guide/user-officer/placeholder.md) + * [Mutations](user-guide/user-officer/placeholder.md) ??? info "**N**" * @@ -78,42 +71,42 @@ Alphabetical list of terms and their definitions. * ??? info "**P**" - * [Pages](placeholder.md) - * [PDF templates](placeholder.md) - * [People](placeholder.md) - * [Proposal ESI templates](placeholder.md) - * [Proposal templates](placeholder.md) - * [Proposal workflows](placeholder.md) - * [# proposals](placeholder.md) + * [Pages](user-guide/user-officer/placeholder.md) + * [PDF templates](user-guide/user-officer/placeholder.md) + * [People](user-guide/user-officer/placeholder.md) + * [Proposal ESI templates](user-guide/user-officer/placeholder.md) + * [Proposal templates](user-guide/user-officer/placeholder.md) + * [Proposal workflows](user-guide/user-officer/placeholder.md) + * [# proposals](user-guide/user-officer/placeholder.md) ??? info "**Q**" - * [Question templates](placeholder.md) - * [Queries](placeholder.md) + * [Question templates](user-guide/user-officer/placeholder.md) + * [Queries](user-guide/user-officer/placeholder.md) ??? info "**R**" - * [Reference number](placeholder.md) - * [Roles](placeholder.md) - * [Ratings](placeholder.md) + * [Reference number](user-guide/user-officer/placeholder.md) + * [Roles](user-guide/user-officer/placeholder.md) + * [Ratings](user-guide/user-officer/placeholder.md) ??? info "**S**" - * [Sample declaration templates](placeholder.md) - * [Sample ESI templates](placeholder.md) - * [Shipment declaration templates](placeholder.md) - * [Statuses](placeholder.md) - * [Sub templates](placeholder.md) - * [Short code](placeholder.md) + * [Sample declaration templates](user-guide/user-officer/placeholder.md) + * [Sample ESI templates](user-guide/user-officer/placeholder.md) + * [Shipment declaration templates](user-guide/user-officer/placeholder.md) + * [Statuses](user-guide/user-officer/placeholder.md) + * [Sub templates](user-guide/user-officer/placeholder.md) + * [Short code](user-guide/user-officer/placeholder.md) ??? info "**T**" - * [Techniques](placeholder.md) + * [Techniques](user-guide/user-officer/placeholder.md) ??? info "**U**" - * [Units](placeholder.md) + * [Units](user-guide/user-officer/placeholder.md) ??? info "**V**" - * [Visit registration templates](placeholder.md) + * [Visit registration templates](user-guide/user-officer/placeholder.md) ??? info "**W**" - * [Workflows](placeholder.md) + * [Workflows](user-guide/user-officer/placeholder.md) ??? info "**X**" * diff --git a/documentation/docs/index.md b/documentation/docs/index.md index 0064377c86..b57a8bbf7b 100644 --- a/documentation/docs/index.md +++ b/documentation/docs/index.md @@ -11,9 +11,10 @@ We have built this software with flexibility in mind - allowing user officers an - **Proposal Submission:** Scientists can submit proposals based on questionnaires and calls defined by user officers. - **Workflow Definition:** User officers can define workflows to describe different facility access routes. - **Technical Reviews:** Facility science staff can submit technical reviews on each proposal. +- **Scheduler:** User officers can utilize the scheduler for efficient resource allocation, instrument management, and experiment scheduling. - **Science Evaluation Panels:** Science evaluation panels can be set up to review proposals. -## Who uses User Office? +## Used at #### European Spallation Source @@ -27,5 +28,12 @@ The European Spallation Source (ESS) started building this software in 2018 with The Science and Technology Facilities Council (STFC) joined the collaboration with the ESS in 2020. The software has been used to accept proposals for facilities at STFC since late 2021 and has been rolled out to the ISIS Neutron and Muon Source, and the Central Laser Facility. +#### Extreme Light Infrastructure + +![ELI Logo](assets/images/ELI_logo.png){ align=left, width="150" } + +The Extreme Light Infrastructure (ELI) is the world's largest and most advanced high-power laser infrastructure. They are a global technology and innovation leader in high-power, high-intensity, and short-pulsed laser systems. + + ## Quickstart -- [Get started here](quick_start.md) \ No newline at end of file +- [Get started here](quick_start.md) diff --git a/documentation/docs/quick_start.md b/documentation/docs/quick_start.md index 4fb07de16a..abc2d954db 100644 --- a/documentation/docs/quick_start.md +++ b/documentation/docs/quick_start.md @@ -1,12 +1,12 @@ -To try out User Office, go [here](https://staging.useroffice.ess.eu/). +For a demo or a temporary account, please contact [Fredrik Bolmsten](mailto:fredrik.bolmsten@ess.eu). Alternatively, you can run it locally by following [this guide](developer-guide/running_locally.md). -## Prerequisites +## For users -Prerequisites.. +You can find the user guides [here](user-guide/overview.md). -## Initial Configuration +## For developers -Initial configuration.. \ No newline at end of file +If you are considering contributing to the project, visit [this page](developer-guide/CONTRIBUTING.md). diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml index b7ee7c258f..0081c8c026 100644 --- a/documentation/mkdocs.yml +++ b/documentation/mkdocs.yml @@ -41,6 +41,7 @@ nav: - User Officer: - Tutorials: user-guide/user-officer/user-officer.md - Creating a call: user-guide/user-officer/creating_call.md + - Editing a call: user-guide/user-officer/editing_call.md - Proposal workflow: user-guide/user-officer/proposal_workflow.md - FAPs: user-guide/user-officer/fap.md - Feasibility review: user-guide/user-officer/feasibility_review.md @@ -67,6 +68,7 @@ nav: - Configuration: developer-guide/configuration.md - Step-by-Step Guide: developer-guide/step-by-step.md - Architecture: developer-guide/achitecture.md + - RabbitMQ: developer-guide/rabbitmq.md - API Documentation: developer-guide/api_documentation.md - Documentation Changes: developer-guide/documentation_changes.md - FAQ: faq.md