This page outlines improvements and technical debt that needs to happen to the OpenLMIS-UI. Tickets listed on this page are may not be ready for work, and can actively be picked up once placed on a backlog grooming page.
Table of Contents |
---|
Bootstrap Resources
When working on OpenLMIS design or user interface issues, please consult the following resources.
- OpenLMIS design documentation outlines OpenLMIS recommended workflows, form layout, and writing guidelines. Individual designs may break these rules, but the OpenLMIS community recommends against this.
- Wire-frame template library which should be used to start mocks-up and quickly work through content designs.
- OpenLMIS Reference-UI Styleguide which illustrates basic UI styles, layouts, and components - along with the working code to generate them. Use this resource if creating hi-fidelity mockups or working OpenLMIS-UI code.
- UI/UX WTF is a place to catalog inconsistencies that are not ready to become a JIRA ticket
UI Github Repositories
...
- Needs better docs/styleguide
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2583
...
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2573 Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2444
...
This fixes functionality, and doesn't change any contracts — patchJira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-1889
...
Backlog
Consistency
Problem | Solution | Tickets |
---|---|---|
It is too easy to click off the modal in the add screen of stock management and loose all the work the user has done | ||
Unit Tests
| ||
sticky-columns can't be "easily used" | ||
CSS restyling:
| ||
Performance
Problem | Solution | Tickets |
---|---|---|
As the application evolves, we need to make sure the OpenLMIS-UI continues to download and start quickly. |
| |
Extensibility
Problem | Solution | Tickets |
---|---|---|
Tooling
Problem | Solution | Tickets |
---|---|---|
There are large files that have too much functionality, which makes their classes difficult to extend or change. A large part of the problem is identifying the files that need to be changes and fixing them. | Add some tooling to identify these large files, and make secondary tickets to refactor the files to be smaller
| |
Jasmine 1.3 is outdated | Update to latest version of Jasmine (Overview of process here) | |
Scaffolding new modules or file types involves lots of boiler plate |
| |
Set up Javascript linter | ||
Set up Sass linter | ||
Malawi
Problem | Solution | Tickets | |||||||
---|---|---|---|---|---|---|---|---|---|
User Input In requisitions, losses and adjustments error messages don't clear until the page is refreshed In requisitions, product grid cells are not shrinking to their minimal size
|
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
SORTING
|
...
|
...
Features Backlog
...
Bug?
|
...
|
...
|
...
Notifications are wacko |
|
...
|
...
|
...
|
...
|
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
Jira Legacy | ||||||||
---|---|---|---|---|---|---|---|---|
|
Offline Offline is described to be super sensitive. The UI will show that it's in the offline state, when it really isn't.
|
|
...
|
...
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
It is too easy to click off the modal in the add screen of stock management and loose all the work the user has done
Design
...
| ||||||
Memory/runtime/wtf
|
|
...
|
...
|
...
| ||||||
Caching
|
|
...
|
...
|
...
Performance
...
| |||||||||
WTF
|
|
...
|
...
Offline Support
- App Cache update detect and notification
- OfflineService component to simplify offline development
- Less frequent offline status check (reduce UI bandwidth)
Extensibility
Important before 3rd party starts working with codebase
| |||||||||
Un-Forking |
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
Development Tools
Jira Legacy server JIRA (openlmis.atlassian.net) serverId 448ba138-230b-3f91-a83e-16e7db1deed1 key OLMIS-2030 - Set up Javascript linter
- Set up Sass linter
- Dgeni-example JSDoc and KSS toolset
- Cordova Android application compiler
Malawi Features to Merge
src/openlmis-login/login.service.js - Would be cool to pull in clearUserData work, and make currency source configurable
src/openlmis-table/openlmis-table-container-shortner.directive.js - Needs unit tests but could be merged back in
src/openlmis-table/sticky-table-header.directive.js - Would be great to add this and sticky-table-footer back to core
src/openlmis-order-view/ - There has got to be a better way to structure these view files.... ideally the link logic could be changed or decorated
All changes in reports seem like great additions back to core
requisition-approval.controller.spec.js – doesn't actually fork the existing file, so it could remove any overlapping tests
I wonder if requisition approval functionality could have been implemented in a non-overlapping manner — its different enough that the code doesn't have any value in being forked...
...
Unit Testing
http://docs.openlmis.org/en/latest/conventions/uiCodeConventions.html#unit-testing-guidelines
Examples | ||
---|---|---|
Brittle | Checks markup, not meaning | |
Set up view that is available in router? | https://github.com/OpenLMIS/openlmis-cce-ui/blob/master/src/cce-edit-inventory-item/edit-inventory-item.html.spec.js#L655-L672 | |
Testing utils bundled into applicaiton? | https://github.com/OpenLMIS/openlmis-cce-ui/blob/master/src/openlmis-testing-utils/openlmis-testing-utils.module.js |
Misc Notes
Todo list clearing
- Add HTML5 mode to nginx
https://gist.github.com/cjus/b46a243ba610661a7efb - Add postCSS - some styles are not getting poly-filled
- Documentation update for directives and cleaning scope
- Add documentation for layout patterns. Should be markdown eventually – but confluence is good for now
- extra-data component
2017-09-15 Alfred/Dercio/Nick
- Hide as many columns as possible
- In Stock Management Recieve - reason entry isn't needed as there is only one choice, the column should not even show
- There are blank areas from lot/vaccination groups → its weird
- Odoo allows users to define groups of data, remembering the order that a use clicked buttons to create the group
- This made complex data reporting and editing easier
- Make all editable fields in a table required
- Odoo allows users to add additional information to a row in a secondary view (modal-ish)
- Odoo allows devs to configure if the system should do 'live' validation or validate once a form is submitted
- Module development in Odoo, allows an implementer/user to see the packages that are installed – which makes talking and reasoning about the system possible