gerilife / wellbeing Goto Github PK
View Code? Open in Web Editor NEWWelbeing activity log and visualization tool.
Home Page: http://geri.life
License: GNU Affero General Public License v3.0
Welbeing activity log and visualization tool.
Home Page: http://geri.life
License: GNU Affero General Public License v3.0
Daily reports are currently hard coded to run at 23:59 in the server's local timezone. Add timezone support to the cron jobs, and possibly allow them to be configured via the settings UI.
A resident may be active multiple times on a given day, as represented in activity logs. The activity charts currently show only one activity record, and so do not represent the full activity log for a given day.
Add a histrogram showing activity types to the Home page. This can be seen currently on the Resident page.
As a failsafe, users may need to export their data. Add a feature in the Admin Settings allowing Admin users to export all data.
It takes multiple clicks to add each new resident on the New Activity form. Replace the current AutoForm multi-select with a streamlined multi-select widget, such as Bootstrap Select.
Residents have different needs regarding healthy activity level. Currently, our system has a global 'Active' level threshold of five (or more) activities over the past seven days.
Add a 'recommended activity level' field to resident records, and calculate activity levels based on individual recommendation.
The Add activity form has a Facilitator role field with a selection of options. Remove 'admin' from the options.
Replace the current yogiben:admin with a custom AdminLTE dashboard. Remove the yogiben:admin package.
It may be useful for users to delete/edit activities while viewing a single resident activity table. However, the following should be observed:
The seven day activity edit/delete feature is already active on the 'manageActivityButtons' template. The additional logic to only remove a single resident upon 'deletion' needs to be written.
Add the sAlert package and configure confirmation messages for the following forms:
The resident 'activity counts by type' chart, on the Home page, currently sorts alphabetically by resident. It would make it easier for people to read the chart, if it were to sort in ascending or descending order by total activity count. It would also be important to re-sort the table when filtering.
The following upstream support requests are opened:
As part of a recent Meteor update, the AdminLTE framework started giving errors. We discussed removing AdminLTE, since we are not using it very much. Go ahead and remove AdminLTE, and use the default layout for all settings views.
Consider how to re-design the project UI using Bootflat design patterns.
As a system administrator
I need to edit home details
so that I can manage system data
Possibly superseded by #542
Consider whether to replace the current calendar heatmap library with one that is:
Examples might include:
It is not currently possible to edit activities. Create an "Edit Activity" form. Only administrators should be able to edit activities.
Run an update to make sure project packages have latest possible versions. Manually update any dependencies as well. Consider removing any packages found that are not currently in use.
As a system administrator
I need to edit group details
so that I can manage system data
When adding a new activity, default the date to 'today'.
The date field on the 'Add Activity' form currently uses Bootstrap date widget. Ideally, the date input will render in an accessible manner for mobile, tablet, and large screens, possibly using native date input UI. Try to get the activityDate field to render a native UI widget on most platforms (Android, iOS, Firefox, and Chrome), or consider using a library such as pickadate.js
Toggling between 'resident activity counts by type' and 'activity table' tabs causes 'resident activity counts by type' chart to collapse in some circumstances on tablet device(s). Specifically, this has been observed on iPad.
Determine the source of the problem, and suggest a working solution.
The 'add activity' form does not work on iOS. Re-write the form, so that it works with evergreen browsers.
On the Home page, the legend for Activity summary by type overlaps the graphic on small screen. Render the legend in a separate div, and add Bootstrap markup for responsive reflow.
Administrators may want to see the history of changes to system activities. Determine how to keep revision history for edits, and decide whether it is high priority for this project.
In order to encourage timeliness of activity reports, only allow activities to be recorded within one week of the activity date.
When viewing a resident page, under the Trend tab, there is a large gap on the left side of the trend chart.
The data should fit between the left and rightmost tick marks, including a trend line spanning the entire data set.
This is related to the Mozilla Metrics Graphics charting library. An issue has been filed with the upstream developers.
On the individual Home page, the Activities section is currently hard-coded to 30 days. Add three or more toggle buttons allowing users to get a report for the last:
When selecting a query value, adjust the template subscription to the selected value.
Create a multi-line sparkline plot showing activity levels over time for residents at a given home. This will help nurses to understand how resident activity levels are trending over time.
As a nurse,
I want to see the activity trend for residents in my ward over time
so that I can tell if it is trending upwards, downwards, or stable
There is an open support request on MetricsGraphics, asking about a particular data structure for this visualizaiton.
The resident activity trend currently displays as a tab in the Activities seciton of the page. Move the trend chart above the Activities section.
Over the past few months, there have been several improvements and additions to our UI components. Create screenshots of these UI components and add them to the project documentation. This task includes populating the platform with temporary data, so that the screenshots demonstrate live data.
Look at the packages file and remove any unused packages. Specifically, determine which of the following are not used and remove them:
The individual resident page currently renders charts only once, via the Template.rendered
callback. As resident data may change dynamically while users are viewing the page, it may prove useful to allow reactive page updates. This pattern can be used throughout the application, including in the process of creating a reactive administrative dashboard.
Refactor all page elements on the individual resident page, so that they update reactively when server data is sent to the client. Specifically, the following page elements should refresh or re-render when model data changes:
The page elements are rendered via non-reactive charting libraries, so need event handling logic to refresh when the data changes. This can be achieved via an autorun()
block that triggers a refresh or re-render function on each template element when the model data changes.
After users have exported data, they may wish to import it into a different wellbeing instance. Add a feature to import data.
You can find the "export data" button in the "Settings" section, as an admin user. When clicking the button, you should get a data dump of JSON objects.
The Import Data will take these JSON objects and insert them into the correct collections, preserving IDs.
In order to quickly set up a demonstration of the platform, it would be useful to generate mock data. Add a mock data package to the project and set up some initial mock data scripts to populate project collections.
Replace the branding text in the main navigation menu with the text "GeriLife".
Add collection, schema, and UI elements for municipalities. This includes a page displaying all municipalities with aggregate resident activity metrics for each municipality.
As a staff member
I would like to see the number of resident activities by activity type
so that I can decide what resident I should choose for an activity of a certain type
On the homes screen, design a view to show the number of activities grouped by resident and type.
This display may take the shape of a table or stacked bar chart. In the table example, there would be a row for each resident and a column for each activity category with the number of corresponding activities in each table cell. In the stacked bar chart, the y-axis would be the number of activities, the x-axis would contain resident names and the bars would be stacked and categorized by activity type.
The server-side method should return an array of objects with the following structure:
In order to make it easy to manage system users, we can offer a feature that deactivates users who have been inactive over some period. There should be a configuration user interface, so the feature is not enabled by default.
When searching in the custom filters on the Activities page, the search filter seems to apply to all columns. E.g. searching the resident name column for a value in the activity type column will filter the results based on the activity type.
In order to save screen space, consider switching the resident activity calendar to condensed view. Make sure to test the display on mobile devices, before finalizing the decision.
In order to internationalize the user interface texts, we need to add i18n tags to the templates. Install the i18n package and internationalize all, or most, user interface texts.
In order to make the 'emotions' feature useful, we should display emotions on the resident profile page. Determine a good chart type and add the emotions chart to the resident profile template.
It may be easier to conceptualize Homes containing groups, rather than Groups containing Homes. Also, groups may be an optional addition to a home, e.g. for small homes with only a few residents. Consider how to refactor the system so that homes are a high level container with optional groupings of residents therein.
The project currently lags far behind the latest versions of almost every dependency. Upgrade all dependencies and fix any regressions.
When viewing paginated tables, such as on the Activities page, users of mobile devices have a difficult time navigating between pages. Determine how to improve the usability of the pagination buttons.
There is an upstream issue with related pull request.
As a system administrator
I need to edit resident details
so that I can manage system data
The resident 'activity counts by type' chart is built using dimple.js. As a result, the chart is not interactive, in terms of filtering. Replace the dimple.js chart with an NVD3 chart, so that users can filter the chart by interacting with the legend.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.