I Я Project Manager has many perspectives and they will all make your wildest dreams come true. For a (slightly older) write-up about the underlying ideas + plans, check out [this blog post](https://westergaard.eu/2020/11/gitlab-for-project-managers/).
-[Installation](installation/index)
-[Version history](version-history)
### Planning ###
\ No newline at end of file
Panning perspectives allows planning upcoming or ongoing projects. Planning can work at the global level.
#### Global ####
Global planning allows viewing, creating and managing milestones in projects. Milestones can be colored and grouped using the selection boxes at the top and managed using the Gantt chart itself.
##### Coloring and Grouping #####
The global view supports 3 kinds of colorings: by project, by status, or by load. Each of these supports grouping tasks by tickets or assignee.
Coloring by task looks like this. This is in particular useful to get a very high-level overview of many ongoing projects to to see who is working on what.
Coloring by status is the default and looks like this. This is in particular useful for assessing the status of individual projects. Closed, Active and Future should be self-evident. Past due means a milestone's end-date has passed without the milestone being closed, and Behind schedule that actual progress does not match up with estimated progress. This mode is of less use when grouping by assignee.
Coloring by load counts how many concurrent projects are running per group or per assignee. This allows finding hot spots in projects or when resources might be over-committed.
Milestones can be manipulated directly in the chart. Not all milestones can be manipulated (only active milestones) and not in all modes (currently, milestones cannot be manipulated in load coloring or in assignee grouping).
Milestones can be added using the blue plus icon or by dragging in an appropriate swimlane. The plus appears in the project overview on the left for projects only (i.e., not on groups and not on milestone rows).
Time is measured in working hours with 8 hours per working days with 5 working days a week (Mon-Fri).
Milestones can be manipulated by double clicking on them or by dragging them in the swimlane. When dragged, the duration/period is just changed accordingly. When double clicked, the same dialog shown when creating a milestone is shown allowing either altering the milestone or deleting it entirely.
### Overall navigation ###
#### Different modes ####
It is possible to switch between Project Manager and Developer views using the icons on the top left. This has little utility presently, but developers only see projects with actual milestones.
The application needs to perform a large amount of web-service calls to display the information. To make this even remotely performant, it uses [very aggressive caching](https://westergaard.eu/2020/12/cacheregistry-improved-near-real-time-caching-of-complex-object-graphs/). The caching can be a bit wonky, so currently, users can manually refresh the cache. This is a temporary workaround and needed if tickets are changed in Gitlab directly or caching for some reason buggers up.
You can be as createive as your rcreativety allows for the application name, and you can switch off Trusted if you prefer (it will mean users have to approve the application gains access to their Gitlab resources).
Make sure to use the proper base URL instead of `http://localhost:8080/` for all the URLs; you need to whitelist all the URLs (though only the first two are in use right now). Here the URLs are in a copy-paste friendly format:
Execute the below command in a terminal. If you don't have a terminal or don't know how to use a terminal, you'll probably wait until a later version of the application that does not require a terminal.
`ENDPOINT` is the location of your Gitlab installation. You'll probably not fare well with the cl;oud version right now. The Gitlab where this is hosted is `https://gitlab.westergaard.eu`
`SECRET` is the application id you get when setting up the application in Gitlab. It's not super secret but you should probably also not just hand it out everywhere. The one from the screenshot above is `5fbd9da7b7c6d4b2fe3f89f2e253eb71dfba07ee1de342d5531cdb4a486cd8b4` (though in keeping with the last part that's no longer the case).
`VERSION` is the version of the application to run. See [here](https://gitlab.westergaard.eu/brinformatics/service-desk/container_registry/2) for a list of available versions.
#### Access application ####
- In a browser, navigate to [localhost:8080](http://localhost:8080/)(or click the link)
#### Server installation ####
You can also run the application in a central installation allowing access for multiple people. For that, you'll realistically want to put it behind an encrypting HTTPS proxy. The application may get repackaged to handle that automatically, but for now you're on your own or suggested to use the Kubernetes installation with an ingress below.
### Run on Kubernetes ###
## Version history ##
See [Releases](https://gitlab.westergaard.eu/brinformatics/service-desk/-/releases) for previous releases.
See [Milestones](https://gitlab.westergaard.eu/brinformatics/service-desk/-/milestones) for upcoming releases.
You can also view the planning on this demo instance. TODO