Giter Site home page Giter Site logo

dodo-github-visualization's People

Contributors

dieserfelix avatar janniclas avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

dodo-github-visualization's Issues

Rework API endpoint /api/project/[pid]

  • Change name to /api/projects/[pid] to better fit with CRUD naming conventions
  • Move KPI list to paginated endpoint /api/projects/[pid]/kpis (see #9)
  • Remove selectedKPIs field from response

Visual Glitch Table

TableGlitch.mp4

After loading the table the first click on the next page button triggers a reload even tho there are no additional elements to load. every following click doesn't do that.

Add API endpoint for organization's ratings

In order to display the organization health, performance, etc. on the landing page as shown below, we need a new API endpoint that returns said indicator(s).
This endpoint should also return the name and rating of the KPIs used to calculate the indicator (in order to populate the rings).
image

Add new API endpoint /api/projects/[pid]/kpis/[kid]/data

Given that low level KPIs will use a lot of data, it may be a good idea to separate the data from the KpiDetail type. This would also allow us to solve the issue raised in the KpiDetailtype definition:

export type KpiDetail = Kpi & {
  description: string
  children: Kpi[]
  calculation: string
  // this is custom for each KPI, I guess we need to define a type for each KPI
  // and cast the KPI_Detail as needed
  data?: any
}

The new endpoint could return the data and additional information to the data's actual structure, for example:

type KpiData = {
  type: array,
  items: {
    type: number
  } // this is basically taken directly from OpenAPI :)
  data: any
}

This way, we wouldn't need to define types for each and every KPI and can store this information within a database. Leaving it up to the receiver to cast the data to its specified type.

For reference, the OpenAPI data types specification: https://swagger.io/docs/specification/data-models/data-types/

Add new API endpoint /api/projects/[pid]/kpis

List of calculated KPI instances can grow very large rather quickly for a given project. Introduce paginated endpoint /api/projects/[pid]/kpis to retrieve the KPI instances of a project in chunks.
See #8.

Expand KPI Hierarchy on click

Do not display the full KPI hierarchy. Instead, show only the root level and expand the next level if the user requests it (i.e. by double clicking).

Move KPI Table into separate component

The Project detail and KPI detail pages both implement the KPI list within the sidebar. Avoid this code duplication and move it into something like a KpiTable component.

Table component pagination

Table component should not perform pagination itself but pull the specific chunk of data from the server instead.

Variable Shadowing

My IDE keeps complaining about variable name shadowing, since we often have code like `const project = projects.find(project => ...)

I can obviously add an ignore statement for this rule, but do we actually want this? Either way I suggest a common style how to handle this since this comes up repeatatly and I think it would be good for code readability if we handle it the same way.

Display KPI hierarchy in detail page's sidebar

4b448f56-ef71-4a04-937a-723c06da79bd
As evident in the picture above, calculation of KPIs for a project involves a lot of KPI instances. Simply displaying any KPI instance in any given order within the detail page's sidebar may end up confusing for the user. Therefore we should find a way to allow the user to see or navigate through the hierarchy within the sidebar. For example, by using indentation within the table or list.
Additionally, the API endpoint has to provide the hierarchical information.

Filter and Sort on Table component

Currently, the Table component can sort the current page by any column marked as sortable. At least for paginated data, the sorting has to be done on the server (as it will most likely change page order).

Similarly, filtering (which is not yet implemented on the Table component) shouldn't be done locally for paginated data.

Table Page overflow

If you kill the dev server (in a real world szenario you would just loose the internet connection), the table component goes crazy and issues a couple of thousand requests and the page counter keeps decreasing
image

Invalid DOM property

image

When trying to access the KPI hierarchy I get the following warning. From the stacktrace I gather this appears in one of your components @DieserFelix. Mind having a quick look at this?

add automatic release to build pipeline

we should extend the build pipeline to automatically create and tag releases from the main and dev branch.
dev branch should be tagged as beta / non-prod release.
these release tags can be used in the deployment repository to identify which software versions we are currently running

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.