8000 feat(scheduler): add init scheduler documentation by alexyvanot · Pull Request #998 · UserOfficeProject/user-office-core · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

feat(scheduler): add init scheduler documentation #998

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from

Conversation

alexyvanot
Copy link

Description

This PR introduces the first version of the documentation for the scheduler.
It includes a set of images and a detailed guide explaining the functionality of the scheduler.
The scheduler section is added to the mkdocs.yml to integrate it into the documentation menu.

Motivation and Context

This change is required to provide clear and comprehensive documentation for the scheduler feature, which is essential for users and developers working with the User Office Project. This is part of a collaboration between ESS (European Spallation Source) and Synchrotron SOLEIL, where I am currently completing an internship in computer engineering. The scheduler is an important tool for managing user experiments, and this documentation will help improve accessibility and understanding of the tool for everyone involved in the project.

How Has This Been Tested

I tested the changes by running mkdocs serve locally to preview the updated documentation and deployed it into the Synchrotron SOLEIL test environnement using docker. I checked the layout of the images and confirmed that the scheduler section appears correctly in the documentation menu.

Fixes

This PR addresses the lack of scheduler documentation and provides necessary visual aids.
It does not fix a specific issue but enhances the project's documentation overall.

Changes

  • Added new images to documentation/docs/assets/images/ folder.
  • Created a new scheduler.md file under documentation/docs/user-guide/.
  • Updated documentation/mkdocs.yml to include the scheduler section in the documentation menu.

Depends on

This PR does not depend on any other open PRs.

Tests included/Docs Updated?

  • I have added tests to cover my changes.
  • All relevant doc has been updated.

@alexyvanot alexyvanot requested a review from a team as a code owner March 17, 2025 09:15
@alexyvanot alexyvanot requested review from deepaksftc and removed request for a team March 17, 2025 09:15
Copy link
Contributor
@yoganandaness yoganandaness left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job and a much needed one. It has come up really well.

There are few things, that i felt could be improved. Kindly revert if you have any counter arguments.


### Linking Proposals
- Scheduling is tied to Calls for each proposal which must be correctly associated with planned time slots.
- Proposals in **SCHEDULING** status will appear in the calendar, and administrators can assign time slots accordingly.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be a good idea to attach a link that tells a bit about, how a Proposal could get into the SCHEDULING status.

There are two ways in theory - One through workflow and one through manual status change by the User Officer.

This link tells on settings up a workflow - user-guide/user-officer/creating_workflow/

![scheduler_menu](../assets/images/scheduler_menu.png)

### Calendar Page
The calendar interface is dedicated to **Instrument Scientists** and allows them to view planned time slots on a calendar. Scheduling is done with a minimum granularity of **1 hour**, unlike shifts (**8-hour time slots**) used for other types of scheduling.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although obvious, will it be good to emphasize the fact that Instrument Scientist will be able to do the Scheduling operation only for the Instruments, that they are assigned to.


![scheduler_wf_status](../assets/images/scheduler_wf_status.png)

3. Check the **RabbitMQ** box.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a good idea to mention that

RabbitMQ should be running and both User Office application and Scheduler application should be able to seamlessly communicate with it. I know that this falls on the Technical guide, but would still be a good idea to have it on User side as this operation includes some tech understanding.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the checkbox is visible within the application and is required to enable communication between the Scheduler and the core application, I thought it would be valuable to inform users about this aspect when creating their workflows.
This would ensures that the necessary configurations are set up for seamless communication between the two systems.


![scheduler_wf_rabbit](../assets/images/scheduler_wf_rabbit.png)

You can now put your proposal in **SCHEDULING** status and allocate time slots, so it will appear in the scheduler.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is also important to mention that the Proposal should be accepted as well as the status should be SCHEDULING.

Since the User office is based on configurations, if workflows are not configured properly, it is possible for a Proposal to be Accepted but the status does not go to SCHEDULING and hence does n't show up in the Scheduler app.

![scheduler_menu](../assets/images/scheduler_menu.png)

### Calendar Page
The calendar interface is dedicated to **Instrument Scientists** and allows them to view planned time slots on a calendar. Scheduling is done with a minimum granularity of **1 hour**, unlike shifts (**8-hour time slots**) used for other types of scheduling.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont completely understand the fact about the minimum granularity of 1 hour

Could you clarify this?

Based on my understanding, the system does not have any limitation on times. ex., the following are possible

10:32 - 11:47
14:32-14:50

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on my observations, while the system allows you to plan time with precision down to the minute, the allocation of time slots cannot be shorter than 1 hour. This is because the User Office Application provides a selection between Hour, Day, and Week options in the definition of a call, and when you choose the Hour option, time slots are allocated in 1-hour intervals.

So, you can plan time with minute-level precision, but the actual allocation of time slots will always be in 1-hour increments.

Just to clarify, for users accustomed to using Shifts, at the Synchrotron SOLEI, we currently allocate and plan time in blocs of 8-hour shifts so this is just to provide context.

I hope this clears up the misunderstanding!

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll delete this part wich could lead to misunderstanding


## Accessing the Scheduler Interface

The scheduling module is not accessible by default within the core part of the DUO ESS application. Instead, scheduling is managed through a separate interface. Users must navigate to the dedicated scheduling URL:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The scheduling module is not accessible by default within the core part of the DUO ESS application. Instead, scheduling is managed through a separate interface. Users must navigate to the dedicated scheduling URL:
The scheduling module is not accessible by default within the User Office Core application. Instead, scheduling is managed through a separate interface. Users must navigate to the dedicated scheduling URL:


The scheduling module is not accessible by default within the core part of the DUO ESS application. Instead, scheduling is managed through a separate interface. Users must navigate to the dedicated scheduling URL:
[test-sun-scheduler.example.com](test-sun-scheduler.example.com) (example link)
The core application remains accessible at `test-sun-duo.example.com`, and scheduling must be accessed separately.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example URLs are a bit confusing. Would it be sufficient to mention something like this?

Since it is dedicated Application, the User Office Scheduler comes with its own URL, which is usually different from that of User Office Core. However, It depends on how the Infrastructure is built.


### Essential Configuration
- The scheduling module must be deployed and activated to allow access.
- Users must have appropriate permissions as Instrument Scientists or administrators (useroffice) to access and modify scheduling data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Users must have appropriate permissions as Instrument Scientists or administrators (useroffice) to access and modify scheduling data.
- Users must have appropriate permissions as Instrument Scientists or administrators (User Officer) to access and modify scheduling data.

- Users must have appropriate permissions as Instrument Scientists or administrators (useroffice) to access and modify scheduling data.

### Linking Proposals
- Scheduling is tied to Calls for each proposal which must be correctly associated with planned time slots.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Scheduling is tied to Calls for each proposal which must be correctly associated with planned time slots.
- Scheduling is tied to Calls for each Proposal which must be correctly associated with planned time slots.

- The scheduling module must be deployed and activated to allow access.
- Users must have appropriate permissions as Instrument Scientists or administrators (useroffice) to access and modify scheduling data.

### Linking Proposals
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we mention explicitly that this should be done in the User Office Core application by the Admin(User Officer).

@yoganandaness
Copy link
Contributor

@alexyvanot By the way, are you also planning to include the technical documentation(Developer Guide) as well?

As you might be aware of, the User Office Scheduler needs a bit of configuration setup to get it up and seamlessly interact with User Office Core.

@alexyvanot
Copy link
Author

No, it's not currently planned to include the technical documentation at this time. However, this may change depending on further directives. I will check on this and get back to you with an update.

@jekabs-karklins jekabs-karklins removed their request for review April 16, 2025 08:09
@jekabs-karklins
Copy link
Contributor

Hi @alexyvanot, I removed myself from the PR as I see @yoganandaness had some very good points which overlapped with my observations, no additional comments from my side

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0