f7ddc7260415f76bb87e6bc5a9a475ba6f6248f5
wiki/howto/development/management-console.md
| ... | ... | @@ -0,0 +1,129 @@ |
| 1 | +# Management Console |
|
| 2 | +## Branch |
|
| 3 | + |
|
| 4 | +The branch for development of the management console is "management-console" |
|
| 5 | +Parts of it are already on master. Most of the development is on the branch |
|
| 6 | + |
|
| 7 | +As of February 2023, the management console entry points are disabled by default. Hence it is not reachable by default in production. |
|
| 8 | + |
|
| 9 | +## Design Calls |
|
| 10 | + |
|
| 11 | +Multiple design calls where held to discuss and plan the implementation of the management console. |
|
| 12 | + |
|
| 13 | +See https://static.sapsailing.com/management-console/ |
|
| 14 | +to access these folders, you might require ssh access. |
|
| 15 | +Any link directly pointing to a file should be publically available. |
|
| 16 | + |
|
| 17 | +These include discussions of the overall design philosophy, aswell as more operational decisions regarding specific features of the management-console. |
|
| 18 | + |
|
| 19 | +## Design References |
|
| 20 | + |
|
| 21 | +To ensure a seemless user experience design documents where created in advance, aswell as in parallel, to development. |
|
| 22 | +Not all functions the current admin console is capable of where able to be covered due to budget constraints. |
|
| 23 | +The design documents do however provide a foundation for overall UX, layouting and style of the new management console and were used as such in early development. |
|
| 24 | + |
|
| 25 | +### Login |
|
| 26 | + |
|
| 27 | +Displays designs displaying the login pages for the management-console. |
|
| 28 | +The View is already implemented. Overall Authorization and related event propagation is missing. |
|
| 29 | + |
|
| 30 | + |
|
| 31 | +See https://static.sapsailing.com/management-console/login for a full list of designs. |
|
| 32 | + |
|
| 33 | +### Event |
|
| 34 | + |
|
| 35 | +Displays various designs regarding to displaying an event, creating an event and altering an event. |
|
| 36 | +Most of these designs have already been implemented on branch management-console. |
|
| 37 | + |
|
| 38 | + |
|
| 39 | +See https://static.sapsailing.com/management-console/event for a full list of designs. |
|
| 40 | + |
|
| 41 | +### Regatta |
|
| 42 | + |
|
| 43 | +Displays a Wizard leading through the creation of a Regatta. |
|
| 44 | + |
|
| 45 | +There are no Designs specific to displaying a Regatta. |
|
| 46 | +Implementation should be based on the respective designs for Events. |
|
| 47 | + |
|
| 48 | + |
|
| 49 | +See https://static.sapsailing.com/management-console/regatta for a full list of designs. |
|
| 50 | + |
|
| 51 | +### Audio- / Video Upload |
|
| 52 | + |
|
| 53 | +Displays the process of uploading audio and video content to be attached to specific events. |
|
| 54 | + |
|
| 55 | + As reference, these features are currently available on live: |
|
| 56 | + - In AdminConsole under events->edit/"Images/Video" |
|
| 57 | + - In Home under events->event->media (example: https://dev.sapsailing.com/gwt/Home.html#/multiregatta/media/:eventId=bf84c3c0-2235-4c28-b6a2-ec15a87c7111)) |
|
| 58 | + - In RaceBoard under Manage Media |
|
| 59 | + |
|
| 60 | + |
|
| 61 | +See https://static.sapsailing.com/management-console/audio-video_upload for a full list of designs. |
|
| 62 | + |
|
| 63 | +## State of development |
|
| 64 | + |
|
| 65 | +Most of the code directly related to the management console is found in the package com.sap.sailing.gwt.managementconsole in the project com.sap.sailing.gwt.ui. |
|
| 66 | + |
|
| 67 | +### Overall UX idea |
|
| 68 | + |
|
| 69 | +The app is developed mobile first |
|
| 70 | +The "look and feel" of the application should be similar to any mobile app. |
|
| 71 | +Instead of the broad range of functionalities that one view in the AdminConsole provides, the ManagementConsole follows a "context-drill-down" approach. |
|
| 72 | + |
|
| 73 | +As an example, the user might start on the event overview. When he/she clicks on an event, he/she now is operating within the context of the event. If there is an edit button on the page, the user might expect to alter the metadata of this specific event, add or delete a regatta, etc. |
|
| 74 | +If the user klicks on a regatta in the event view, he/she is now withtin the context event->regatta. |
|
| 75 | + |
|
| 76 | +This approach yields a seemless mobile experience. too many dialogues and jumps out of context shold be avoided. |
|
| 77 | + |
|
| 78 | +### Overall design patterns |
|
| 79 | + |
|
| 80 | +The Management Console is implemented in a traditional, if somewhat GWT influenced, MVP pattern. |
|
| 81 | +GWT does dictate certain patterns, such as Activities, Places and Entrypoints. |
|
| 82 | +General design philosophy is mobile first. |
|
| 83 | + |
|
| 84 | +### Activities |
|
| 85 | + |
|
| 86 | +An Activity portrais a process or step in a process within the application. |
|
| 87 | + |
|
| 88 | +Any new Activity has to be registered in com.sap.sailing.gwt.managementconsole.app.ManagementConsoleActivityMapper.getActivity(Place) |
|
| 89 | + |
|
| 90 | +As an example see com.sap.sailing.gwt.managementconsole.places.event.create. |
|
| 91 | +First CreateEventActivity.java implements the Presenter and creates a View. |
|
| 92 | +It also has access to the ClientFactory and the EventBus, which both together comprise full access to all cross Activity/Place functionalities of the application. |
|
| 93 | + |
|
| 94 | +The Place CreateEventPlace.java is mainly used for the GWT tokenizer to more easily navigate through the application. The @Prefix annotation implicates the path under which the Place may be reached. |
|
| 95 | + |
|
| 96 | +### Entrypoint |
|
| 97 | + |
|
| 98 | +/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/managementconsole/app/ManagementConsoleEntryPoint.java is the respective entrypoint for the management console and has to be started and registered to make it accessible. |
|
| 99 | + |
|
| 100 | +at the time of writing it is enabled on the management-console branch and is included in the gwt launch configs. |
|
| 101 | + |
|
| 102 | +After launching, the console may be reached under http://127.0.0.1:8888/gwt/ManagementConsole.html. |
|
| 103 | + |
|
| 104 | +### Services |
|
| 105 | + |
|
| 106 | +All services are and should be reachable in com.sap.sailing.gwt.managementconsole.app.ManagementConsoleClientFactory. |
|
| 107 | +It is initialized in com.sap.sailing.gwt.managementconsole.app.ManagementConsoleEntryPoint.doOnModuleLoad() and subsequently handed down to any Activity started by the application. |
|
| 108 | + |
|
| 109 | +There are two already implemented services: |
|
| 110 | + - Handling Events: /com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/managementconsole/services/EventService.java |
|
| 111 | + - Handling Regattas: /com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/managementconsole/services/RegattaService.java |
|
| 112 | + |
|
| 113 | +Currently these only cover simple CRUD operations. |
|
| 114 | + |
|
| 115 | +### Styles |
|
| 116 | + |
|
| 117 | +gss styles and ressources are defined in com.sap.sailing.gwt.managementconsole.resources and should be iterated on centrally, to ensure the overall style is compliant. |
|
| 118 | + |
|
| 119 | +### EventBus |
|
| 120 | + |
|
| 121 | +The EventBus is a GWT construct and uses com.google.gwt.event.shared.GwtEvent<H> to trigger behaviour in the application. |
|
| 122 | +All Activities have access to the EventBus. For example events see com.sap.sailing.gwt.managementconsole.events. |
|
| 123 | +It is mainly used for async requests in the services, but can also be used to distribute events between different activities. |
|
| 124 | + |
|
| 125 | +For a usage example see com.sap.sailing.gwt.managementconsole.places.event.overview.EventOverviewActivity.start(AcceptsOneWidget, EventBus). |
|
| 126 | +Here first the activity registers a handler, to react to any events of type EventListResponseEvent. |
|
| 127 | +Then whenever needed, the Eventservice.java is instructed to retrieve an EventList, which will fire an Event whenever the service has a response |
|
| 128 | + |
|
| 129 | +See com.sap.sailing.gwt.managementconsole.services.EventService.requestList(). |
|
| ... | ... | \ No newline at end of file |