ultima-ib / ultima Goto Github PK
View Code? Open in Web Editor NEWThe Ultimate BI tool
Home Page: https://ultimabi.uk/
License: Other
The Ultimate BI tool
Home Page: https://ultimabi.uk/
License: Other
Currently to call .ui() in rust one needs to build ultibi_server which requires
npm run build
frontendThis could (in theory) be performed from build.rs like this:
resource_dir
with dist forlder as an argCurrently, user builds request and Posts it by hitting "Run". This is known as Deffered Update (ie only update after hitting Run).
We could improve performance significantly, by sending "incremental" requests. Say, wants to add a single measure to his request (and single measure only). What we could do, is in fact send a request just for that additional measure as soon as user has selected it, and then outer join responce to the existing result !on GroupBy fields!. Polars nodejs has all the built in functionality. It's just about applying it in our context.
Clearly, this only works if user has selected at least 1 Group By field. It also only works if user hasn't changed Group By, or Filters, or Overrides. If they did, then we do not send incremental request.
Additional backgroupnd about outer join.
@hamza1311 , would it be possible to:
i) Highlight Column of focus same way as you highlight row
ii) Make the cell value of focus bold
ii) Use accounting format for numbers, ie when number is 997895.11 we should show 997,895.11 This is much more user friendly.
• Highlighting Total lines of the result table
• Highlighting row/column on hoover
• Borders across measures box And fields box (at the moment user might get confused on what is what on the most left hand side)
It's possible clients will have too much data to hold it in memory all the time. For such usecases we can try to provide an option for lazy scans, leveraging on with_streaming.
Pros:
Cons:
Polars bug. TODO: raise to polars
It's super simple. Just login to aws, go to IAM, and you will see in red the link to do it.
The idea is that a user can convert each table into a chart.
Next to Summarize
add Charts
At the top left corner of ech table a small seethrough (graph) icon button
.
When user clicks, eather a dropdown or more buttons appear. These follow the hierarchy of chart.js samples. In our case user will need to click "Other Charts", this will open more buttons. Then "Pie".
Attached document Pie tab
shows the output for Result
from Data tab
.
Charts.xlsx
Note: the nature of pie chart is as such for each Measure we will get a Chart. Show them next to each other. Keep in mind it can be 1,2,3,4 etc. Let user close the ones he/she doesn't need.
It would be really good if you could let user perform actions such as Add Labels (in my document Labels are added).
eg. I cannot select ("MeasureA", "sum") and ("MeasureA", "count"), but this should be possible unless Aggregation is restricted to only one possible value.
So once "MeasureA" was selected as "sum", it should reappear/remain in the list, and I should be able to find it again and choose "count" or "mean" or whatever
We can and should be able to override columns of types: DataType::List(DataType::Float64), DataType::Float64, DataType::Utf8 (and bool to be added) as per overrides.rs
There are two ways to achieve this:
Change returned fields in Dataset Info GET API endpoint to return column name and column type. Then FrontEnd to pick Utf8 for fields, and types mentioned above for overrides.
add another key (name it "overrides) into the return of the Dataset Info GET API endpoint, called overrides which would return column names of columns with above datatypes. This key (ie "overrides") then would be used for overrides (instead of fields).
@hamza1311 which one do you prefer?
A newly created API endpoint http://localhost:8000/FRTB/templates returns a vec of Requests. (Notice they have a new optional field called name). It would be nice for user to search and select from a dropdown for a template. The idea behind this is if an organisation has a template which many users use many times, it's would be much easier for them to select a template rather than type it in. (Moreover, organisation mught prefer users to use a particular template for particular purposes).
Equity bucket 11
DRC weights for CRR2
RRAO
CoveredBond
DayCountConvention for DRC yearfrac
User might want to compare two outputs from two different requests - side by side. (for exmaple, with filter vs without. Or with override vs without). For this, it would be beneficial to allow to "split screen", so that two result tables could be seen at the same time.
The required secrets and documentation is mentioned here: https://github.com/docker/login-action#aws-elastic-container-registry-ecr
They're used at:
Way to return an error:
pub fn error_expr() -> Expr {
apply_multiple(|_|{
Err(PolarsError::ComputeError("Could not deserialize".into()))
},
[col("*")],
GetOutput::from_type(DataType::Float64),
false)
}
Most likely due to added /dist/. folder (which needs to be added for docker to build).
Library to be called from Python
best for smaller clients
Difficult while polars doesn't allow that. Have to do it via python.
Must have for on the fly analysis
Consider using join instead of when.then
Two digits after the . would be great. 1.9999 Ideally would be 2.00, but if we make it 1.99 that would work too (but 2.00 preferred).
Request to be broken down into incremental requests in the backend and then for each single measure in request
to check if such request has been posted. If so, look it up from the dashmap, otherwise send and save incrementally)
User to download result as a CSV file
Polars 25.1 introduced scalar param to apply_multiple function. This could be used to instead of creating a series of particular height.
i) Imagine, User A and User are connected to the same backend, ie they are within the same orginisation. If Anatoly right clicks on the table and sees an option to view request which opens a super simple text box with request body and copies and pastes it to clipboard. Then he/she email/message this to User B (this step is independent of us).
ii) Then User B pastes this request into the same text box on his side, and then presses Run/(or presses OK in the same box), and this sends the request to the server , and User B gets the same table on his side.
Hey Hamza,
After going through all the calc params, #13 , I see that some of them have to be really long. There is not much we can do here. It's jsut how the regulator (ECB) prescribes them. As such, I think it would be really good to use dropdown box with search (and removal) for this. What do you think?
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.