Giter VIP home page Giter VIP logo

biblibre / urungi Goto Github PK

View Code? Open in Web Editor NEW
115.0 18.0 42.0 87.51 MB

Lightweight Open Source Business Intelligence and reporting tool for PostgreSQL, MySQL, SQL Server, Oracle Database

Home Page: https://urungi.org

License: GNU General Public License v3.0

HTML 14.63% CSS 6.93% JavaScript 77.14% Dockerfile 0.02% Shell 0.01% EJS 1.16% Jsonnet 0.11%
business-intelligence statistics dashboard dashboards reporting reports

urungi's Introduction

Urungi

Lightweight open source software that allows you to create statistics and dashboards freely regardless of your data source.

https://urungi.org

CircleCI Language grade: JavaScript Codecov

Introduction

  • Centralize: Connect Urungi with any SQL data source. All your stats will end up in one place.
  • Analyze: Explore and define your views and reports on your data according to your needs and the expectations of your users.
  • Share: Create dashboards to visualize and display your data.
  • Supported databases - PostgreSQL, MySQL, MS SQL Server, Oracle

Urungi 2019

Requirements

Installation

See Installation

Configuration

See Configuration

Starting up the Urungi server

See Start the server

Upgrade

See Upgrade

Tests

See testing

License

GPL 3.0

urungi's People

Contributors

akka-vodol avatar barisdigi avatar beevou avatar cfuhr avatar clrh avatar delfer avatar fcatrice avatar golbian avatar jajm avatar lvanbesien avatar stweil avatar tezier-jen avatar thibaudglt avatar veggiematts 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

urungi's Issues

export design

The #/export url is not properly designed:

  • add it in the left menu (for users with administration permission)
  • integrate the design to be like other pages (with the menu, the css, ...)

gauge, let user define max with a SQL

Let the user enter an SQL query (direct) to define the max value of the report. For example : a gauge displaying this month check-out, would have a max of [SELECT count()2 FROM issues WHERE month(issuedate)=month(today())-1 AND year issue(date)=year(today))] => will display the % of checkouts compared to last month, up to 200% (because of the *2)

Note that this example query has a lot of mistakes (for example january will compare to nothing)

Cross table error: d.size is not a function

When building a cross table report, the report is not displayed and the following error appears in browser console:

Error: d.size is not a function
N@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:13491
n@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:8446
o@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:8671
init/l<@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:4677
each@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:1:2775
each@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:1:1417
init@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:184
y.fn.cypivot@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:876:16675
link/</<@http://biblibre-urungi.test.biblibre.eu/js/report/directives/reportView.js:55:50
e/<@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:141:434
$eval@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:156:65
$digest@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:153:123
$apply@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:156:361
l@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:108:192
K@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:112:376
tg/</N.onload@http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:113:338
bundle.min.js:128:446
    f http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:128
    get http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:101
    e http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:142
    $eval http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:156
    $digest http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:153
    $apply http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:156
    l http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:108
    K http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:112
    onload http://biblibre-urungi.test.biblibre.eu/js/bundle.min.js:113

To Reproduce
Steps to reproduce the behavior:

  1. Build a simple cross table report
  2. Click on 'Refresh data'

Expected behavior
The report should be displayed

Client (please complete the following information):

  • Browser: Firefox 66.0.4

Layer sorting

The layer list is sorted alphabetically, but UC are all before lc : A N Z d e
Should be A d e N Z

Switch to a plugin which is still maintained for Drag and Drop

Currently, the report builder and dashboard builder use the plugin https://github.com/neoziro/angular-draganddrop, which is no longer maintained.
If a better, still maintained plugin could be found and used instead, that would be a good thing. https://github.com/codef0rmer/angular-dragdrop looks more promising.
Switching the plugins would be a good occasion to also fix the issue of columns not being draggable from one area to another in the report builder.

Layer creation show/hide fields

In layer creation, at the top of each table, there is a white + or -
He show/hide table fields. For now, he hides everything.
Expected behavior: hide only unused fields of the table.

docker-compose not work

Describe the bug
docker-compose up -d failed

To Reproduce
Steps to reproduce the behavior:

clone
docker-compose up -d
error

W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.
ERROR: Service 'widestage' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y openjdk-7-jdk &&  npm install -g bower' returned a non-zero code: 100

Server (please complete the following information):

  • OS: ubuntu 18.04 server
  • docker-compose version 1.22.0

Additional context

Step 2/8 : RUN apt-get update && apt-get install -y openjdk-7-jdk &&  npm install -g bower
 ---> Running in 56bfae231ede
Ign http://httpredir.debian.org jessie InRelease
Get:1 http://httpredir.debian.org jessie-updates InRelease [7340 B]
Get:2 http://httpredir.debian.org jessie Release.gpg [2420 B]
Get:3 http://httpredir.debian.org jessie Release [148 kB]
Get:4 http://httpredir.debian.org jessie/main amd64 Packages [9098 kB]
Get:5 http://security.debian.org jessie/updates InRelease [44.9 kB]
Get:6 http://security.debian.org jessie/updates/main amd64 Packages [849 kB]
Fetched 10.2 MB in 11s (885 kB/s)
W: Failed to fetch http://httpredir.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)

E: Some index files failed to download. They have been ignored, or old ones used instead.
ERROR: Service 'widestage' failed to build: The command '/bin/sh -c apt-get update && apt-get install -y openjdk-7-jdk &&  npm install -g bower' returned a non-zero code: 100

Export dashboard as ...

Add a feature to export a dashboard or a report as [PDF or image (PNG, JPG, SVG) ?] when executing a R or a D.

Global interface glitches and improvements

The main page of Urungi looks like:
image

The main menu:

  • could be more on the left (only a few blank between border and menu)
  • could be less large: a lot of empty space between the end of "My dashboards" and the number of dashboards

On my 1366x768 14" laptop screen, the dashboard page (Firefox, display 100%) look like this:
image

The dashboard list:

  • strange to have the (public) and (shared) infos on the left, and the sharing button on the right.
  • strange to have 3 buttons at the same level, the 4th on 2nd line
  • the filter forms for name & author are too big, can we reduce their height ?

Zoom in/out: the 4 buttons are moving around... depending on the zoom %
You can get:
image (100%)
image (80%)
image (110%)

can we have a smaller asc/desc) button at the right of Name/Author/Creation date ?

Date filters do not work with Oracle

When using an Oracle data source, date filters generate a wrong query, and Oracle returns the following error message:

ORA-01861: literal does not match format string

label/description of the legend

It should be possible to define manually the legend. For now, if you select biblionumber (count) as a metric, the legend of the X axis is "biblionumber (count)".

Depends on #130

cross DB layers using mariaDB FQI

In MariaDB (and mySQL), you can query different DB in a single SELECT using fully qualified identifier : dbname.table.column Introduce this behaviour in Urungi to enable cross DB queries

import design

The #/import url is not properly designed:

  • add it in the left menu (for users with administration permission)
  • integrate the design to be like other pages (with the menu, the css, ...)

Import/replace feature

For now, when you #/import a json, if the id already exist, the import is cancelled. We should have an option to overwrite an existing layer/dashboard/report (with a confirmation that you want to overwrite)

That will be very helpful to deploy on several customers Urungi instances.

Difference between count and list

Create a report from patrons
count all patrons sex=M and registration year = 2016 => Urungi says 14
Display the name+firstname of all patrons sex=M and registration year = 2016 => Urungi shows 13 !!!!

Permissions improvement (split admin/layer management

For now, there is no permission to manage layers, it's included in the "Urungi administrator" pseudo-role.
If you have this pseudo-role, you can do anything : manage layers, data source, roles, users.
It would be great to have a specific permission for layers, in the roles definition, like the one we have to create reports/dashboard/explore/view SQL:
image

Entering a date

When you put a filter on a date, you get a date selector, but it's impossible to enter manually a date. finding an old date is highly time consuming, we need to be able to enter the date.
there is a graphic glitch (see screenshot)

image

Add icon set

Add the following icons to the available images. they must be available when you add an image on a dashboard
icon.zip

Oracle connector

when I select Oracle mode as the data source. I enter the information requested by the form and when I click on the connection test button I have the message :

Error executing test connection SQL : TypeError: "listener" argument must be a function

On the urungi server I installed node-oracle and installed the oracle basic client

? is invalid in calculated fields

If you enter a ? in a calculated field (within ''), you get a nasty error message
Steps to reproduce: create a calculated fields containing '?', and display it in a report.

Receive dashboard regularly by mail

  • in the public area, clic on a notification icon
  • see or customise the frequency (every day, every week)
  • must verify if the email address is filled in my profile
  • must setup a cron (have a look to nodejs possibilities https://www.npmjs.com/package/cron)
  • save the settings in the Users table
  • create a snaphost of the report or dashboard

Format to define (easiest way for the first step)

  • pdf is complicated to generate
  • svg ?
  • html ?
  • screenshot de la visualisation ?

=> pdf + image attached to the mail

Useless scroll bars (H and V) in dashboard

Edit DLL - D1 - Imprimés et D2 ...
The crossed reports are small, but they have scrollbars, horizontal and vertical, that are useless.
I tried to update the size of the graph, the container, could make them disappear, until I redraw the result.
image

Error not visible at import when imported file is not in the expected format

Create report, error in Date fields have a wrong icon

To reproduce the bug:
Check that the layer has a date field. For example, the acquisition layer shows:
image
The "date saisie ligne commande" is a date field, and has a small pink calendar icon.
Create a report:
image
The icon is not a calendar. This is true for every date field. Everything work well, if you select the date field, it is considered as a field, the icon is wrong, nothing more.

Control when a dashboard is run

When you open a dashboard, it is immediately calculated, even if there is a parameter to set (mandatory or not).
Change the behavior to calculate only when the user clic on OK when there is a run-time parameter

Dashboard creation, no 'limit' when putting a report on the dashboard

When you add a report on a dashboard, a preview is made. There's no 'limit' used when building the preview. On large dataset, you have to wait a long time before seing the result. Automatically limit the sample to X first results (configurable)

  • draw only when clicking new 'Redraw' button
  • rename 'Refresh' (-> Redraw) button in report edition

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.