Code Monkey home page Code Monkey logo

seed's People

Contributors

adrian-lara avatar anchapin avatar anyaelena avatar aviveiros11 avatar axelstudios avatar dangunter avatar danielbressan avatar danielmcquillen avatar dependabot[bot] avatar ebeers-png avatar fablet avatar haneslinger avatar juliecov avatar kflemin avatar lainsworth8801 avatar laurenliz22 avatar macintoshpie avatar maronnax avatar meghasandesh avatar mmclark avatar myoldmopar avatar nicholasserra avatar nllong avatar nmerket avatar perryr16 avatar philngo avatar rebrownlbnl avatar rgm avatar rhorsey avatar stephenczarnecki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seed's Issues

MATCHING: Add ability to sort by all columns including CONFIDENCE

Sorting columns in Matching

When in the Matching screen, user should be able to sort on any of the columns, including the CONFIDENCE column, so that it is possible to see the lowest confidence matches together, which would make it easier to unmatch records by hand (by unchecking them)
image

Incorrect report of matched records (sometimes)

Sometimes the program reports the number of matched records incorrectly in the popup windows that appears after matching. But the actual matches that were made are correct. Doesn’t always happen. May be hard to reproduce.

Database Design / JSON Blob Structure

Right now only a few fields (the 30+ non-BEDES “hardcoded fields”) are the only fields in the building database record. The rest are stored in a JSON blob. Is this the right approach? Should those fields actually be put into the database? There are currently issues with filtering on the JSON blob fields, but that may be possible to solve with the current structure.

Set field order in mapping based on imported data

Field order of imported data in Mapping

The default order of the fields in the Mapping Screen should be the order of the fields in the original dataset. Right now it is not clear what order the fields are in -- it is not the order of the original data file, and it is not in alphabetical.

Ability to change mapping after it has been saved

Add ability to edit mapping after it has been saved.

Once you have mapped your data, you can’t go back and change a mapped field if you made a mistake. You have to delete the data, reimport it, and remap it. Need to be able to change the mapping -- this will have cascading effects on all the child/associated data.

Clear Type ahead history and restart with clean default list

Allow user to clear type ahead list in Mapping
Need a way to clear out the mapping field list (possibly an admin function). The program (from the initial source code) create the initial field mapping list from the BEDES list (bedes.py) + hardcoded fields from (seed_mappings.py) . Then as users create their own fields (user defined fields), those get added to the field list. And on a field by field basis, the program should allow those user defined fields to be mapped to another field name, either existing or new, or deleted.
(LBNL Ticket # 274)

Document matching across datasets

Understand how matching works with a dataset and across datasets. It is slightly different, some matching seems to only happen within datasets.

Migrate existing issues to GitHub issue tracker

There are a number of existing issues that were identified by LBNL during acceptance testing of the SEED software. These need to be screened, cleaned up, and entered as new issues in the GitHub tracker. The plan is for this issue tracker to be the one place for the SEED community to log and track issues with the SEED software.

Simplify customization during installation

Have a central place to enter an organization name, main contact, and logo that will be used throughout a SEED installation, e.g., in the page footer of the GUI, in the email subject line of account invitation emails, etc. This can initially just be done through a text config file and maybe a directory to put static content.

User control over where export file is saved

User should be able to control where the export files are saved, i.e., a browse option to select the folder. Right now the files are always saved in the Downloads folder. Should also allow overwriting of existing file, with the standard warning.

Admin Function for Deleting Parent and Sub-Orgs

Need an admin function (for Superusers) to delete Parent and Sub orgs. And possibly that same functionality for the owner of a Parent Org to delete Sub-Orgs. Right now it is not possible to delete either, even as a superuser. This needs some thought, because you don't want orphaned building records, so probably the records associated with those orgs would be deleted. Or possibly they could be move to another org before deleting their own org. Needs design before implementing.

Admin function to change % confidence setting

Allow user to change % confidence threshold in Matching
Add an admin function that allows tweaking of the % confidence setting which determines whether or not a record matches. This helps reduce the number of false positive matches.

MAPPING: GUI Cleanup:

  • Data Mapping screen -- highlight 4 (harcoded) matching fields
    (until we have feature allowing user to select fields to match)
  • Data Mapping screen -- better description of valid, semivalid and invalid indicators

Redundant emails in Account setup

It is confusing that every time an email address is added to a new org, the user receives a new invitation each time, even if that email address already has a log-in. It should be that SEED recognizes when an email address is already associated with an account, there is no need to create a new password.

MAPPING: Need to differentiate BEDES fields from User Defined fields

Use needs to be able to see quickly which fields are from the official BEDES list and which are new user defined fields. This applies to many parts of the program -- the type ahead list in mapping, the building Detail view, etc.

For example, in the "type ahead list" in the Mapping screen:
Currently, the type ahead list in the Mapping screen does not have any indication of which fields are BEDES and which are not. Add some sort of indicator (asterisk for example?) in the list to show which are BEDES and which are user defined.
image

Show source data file of unmatched records in Building Detail

When you have two data sets and some records match and some don't, if you look at the Building Detail view of a record without a match, you only see the master record, you don't see a 2nd column with the name of the file that master record data came from. Seems like you should.

Allow Parent to View Suborg Owners, Members and Viewers List

As a parent org, I can see all the sub orgs and their owners, but can’t see the members and viewers -- it would be nice to see those also; Also, add the # of buildings for each sub org and owner / member (which now shows up under organizations). So a complete view of all the parent/sub-org information in one place.

Program should also be able to generate a report (CSV file?) listing all this information.

Green Button Data -- Indication of association in Building Detail View

Currently, the program will import Green Button data, and allow the user to associate a master record with it through hand matching. However, there is no indication in the Building Detail view of that master record that the Green Button data is associated with it. It would be nice to actually see the interval data, but the first step is just to indicate that there is Green Button for that building record. The name of the Green Button data file would be a good start.

Allow user to specify what field the program should match records on.

Allow user to specify what fields the program should mach on.
Somewhere in the UI, between mapping and matching (before the matching algorithms are triggered), user should be able to specify which fields to match on between the two files being matched. Right now the program is matching on 4 fields (Tax Lot ID, PM Property ID, Custom ID and Address Line 1). Depending on the data, these may not be the right fields to match on, or the user may NOT want the program to match on some of the fields because it may result in False Positive matches. The user knows the data and should be able to specify which fields the program should match on.
(LBNL Ticket # 246 & # 18)

Multiple Data Files per Building Record

It is possible to have multiple data files associated with a canonical building record (such as multiple years of Portfolio Manager data or any other data where there are multiple data files). However, it is not possible to export that data; it is only possible to export the canonical building record, which only contains one instance of the Portfolio Manager or other multiple data (the first one that was loaded). Need a way to display, filter, sort, and export, the data in the multiple files associated with a record. This may involve significant database and GUI design/redesign.

MATCHING: Edit Columns list rework

Setting columns to view in Matching
In the View Matching screen, when you click on Edit Columns, you see a three column list of the fields that can be displayed, with the ones checked that are currently being displayed. This is quite cumbersome to uncheck unwanted fields and check desired fields.
image
It should be the same type of list that is shown in the Building List view, where the list is one column, alphabetized, with a "global" checkbox at the top that allows the user to toggle on and off the checkboxes for all the fields. This allows the user to "uncheck" all the fields, and then easily select only the fields that they want to display.
image

Packaging data for export and enable import

Data packaging feature that allows the user to export all their data (including extra data, projects, user accounts and permissions) in a packaged file format. This will allow users to move data between different SEED Platform instances. It may not be a trivial exercise, as the database structures may not be the same between the two instances.
(LBNL Ticket # 104)

Implement Error message system

Need to implement an error message class or something that allows for a standard set of error messages to be displayed under certain circumstances. Right now if there is an error, the program just displays "Error on page" and the user has no idea what caused the error.

[See LBL # 211 (error checking during Building Detail Editing), # 100 (Parent/Org error message)]

Hardcoded fields need to be BEDES compliant: Code review

Not all fields are BEDES compliant
There is a set of "hard coded" fields in SEED (found in seed/mappings/seed_mappings.py) that are not BEDES compliance. These need to be changed to be BEDES compliant and this will presumably mean a data migration from old datasets to new datasets will be required. This is not a trivial change but should be done relatively soon.

2nd data load background screen confusing

The background screen when loading a second data file shows the “save Mappings” screen from the previous file load/mapping/matching step. This can be a bit confusing

Remember settings

Program should keep the settings when you move between the List and Detail view of Buildings. For example when you set these values in the List view (such as filtering or sorting), then go to the Detail view for one of the records, and then come back to the List view, that the filtering, sorting, list settings and displayed buildings per page should be the same as they were before you went to the Detail view.

Currently, what does persist when you come back to the List View is:

  • Displayed buildings per page count
  • Custom Column View -- the List Settings persist

What does NOT persist when you come back to the List View is (and what would be nice to have persist):

  • Sort -- the list goes back to the default sort, which I am not sure what it is
  • Filter -- the list goes back to the default unfiltered view

(LBNL Ticket # 272)

Understand and improve matching algorithm

It seems that right now the program is matching by combining into one string IDs and Addresses, which results in false positives (and possibly false negatives). A better way would be to match IDs, then address, then whatever else. There could also be a match index for each matching, and the final result could be weighted by those. Related to Issue # 6.

Progress Bar between data load and mapping

Need a progress bar between data load and mapping

Depending on the data being imported, the program can take several seconds after loading the data and showing the data mapping screen. Either keep the data loading progress bar up during this time, or add a progress bar while the program is building the mapping display. Right now, the user doesn't quite know what is going on during this pause.

Indication of unmatched records in Building List

Users wants some indicator in Buildings List and Building Detail page for which data is still not matched to PM (or other) data. Should go the other way too. Automated assignment of labels indicating that PM records have not been matched.

Admin field setup functionality

Need a complete Admin function for setting up the fields in the program. There needs to be control of:

  • user defined fields (non-BEDES/SEED) including field type, so they aren’t defined at time of data import (could be an option to allow user defined fields at time of mapping:
  • what fields show up in mapping
  • what fields show up in the Edit Column and Building List views
  • order of fields in the Edit Column and Building List views
  • what fields show up in each of the Building Detail sections (Building Info, Contacts, Area, Energy, if these get added back into the program).
  • Field type settings for user defined fields

This admin function could also control what fields were actually stored in the database (? Not sure about this -- we want databases to be compatible across different orgs??).

Might also include the ability to clear out the user defined fields and start over with just the BEDES list (see Issue # 16)

API documentation missing project.py docstrings

The Sphinx generated Readthedocs is missing documentation for projects and label API endpoints. Looking at the code 'projects.py' has the docstrings for the missing API endpoints. Modify Sphinx to have the right pointers for API documentation.

Display error message for Data loading status / problems

Show Upload Errors
Program should display an error message when there is an uploading problem. For example, the server reports an error that a field has > 256 characters, and the upload process will hang. But the user does not know that there is a problem because the Progress Bar is still displayed and no error message is displayed.

Type ahead in Mapping sometimes doesn’t keep your choice

Example is when you want to use your own term "Property ID", the program automatically picks "PM Property ID" and doesn't let you use your own. This may be related to the hardcoded fields issue. Or if there is another field that has elements that you have typed in, the program will choose the field in the list rather than keeping the field that you typed in.

Use S3 bucket names in local_untracked correctly

In BE.settings.main, the APP_NAMESPACE (derived from the STACK_NAME) environment variable is used to set the default S3 variables AWS_STORAGE_BUCKETNAME and AWS_UPLOAD_BUCKET_NAME. The local_untracked module only defines AWS_BUCKET_NAME, which means that different S3 buckets end up being used for different purposes.

Also, since S3 names are global, basing bucket names off the stack name will mean that conflicts will occur when multiple SEED installations are deployed by different organizations.

MAPPING: Fix Slow Type ahead list

I have a Portfolio Manager data file with 192 fields in it, and during the mapping phase, the program is very slow to generate the list when I am typing ahead. To the point of waiting a few seconds for each letter to appear after I have typed it. Need to figure out a way that the program can handle this number of fields when generating the type ahead list.

Add filter capability for exact match or fields without data

FILTERING: Can’t specify exact match
When doing the filtering, can't specify an "exact match" -- so there is not a way to see only records that have Use Description set to "Multi-Family", not including "Multi-Family Condominium". Could specify exact matches as surrounded in "quotes" (?) or some other scheme. This might enable blank fields to be filtered by “”

(LBNL Ticket # 124)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.