Code Monkey home page Code Monkey logo

cityvizor / cityvizor Goto Github PK

View Code? Open in Web Editor NEW
58.0 5.0 28.0 55.87 MB

Cityvizor je aplikace pro všechny, které zajímá hospodaření obcí v ČR – pro občany, zastupitele, pracovníky obce i novináře. Přináší přehlednou vizualizaci rozpočtu obce s detailními daty, která jsou získávána přímo z jejích účetních systémů a následně zobrazována přehledně, srozumitelně a v souvislostech.

Home Page: https://cityvizor.cz/

License: GNU Affero General Public License v3.0

TypeScript 40.24% HTML 11.84% JavaScript 36.10% API Blueprint 0.18% Dockerfile 0.13% Vue 6.75% Shell 0.58% SCSS 4.00% Mustache 0.17%
civic-tech transparency social-impact cesko-digital finance-management financial-data open-data

cityvizor's Introduction

Cityvizor

Přehledný rozklikávací rozpočet s plněním na jednotlivé faktury a dalšími funkcemi pro samosprávy. Aplikace byla vytvořena zaměstnanci Ministerstva financí ČR, Otevřená Města vám poskytují tuto aplikaci jako službu. Data jsou poskytována obcemi dobrovolně.

Instalace

docker-compose up a stránka bude přístupná na http://localhost:4200.

Roadmapa

Plánování dalšího vývoje je přímo zde v repozitáři pomocí jednotlivých ticketů (issues)

Informace pro vývojáře

Informace pro vývojáře jsou shnuty v CONTRIBUTING.md a v ARCHITECTURE.md.

Kontakt

cityvizor's People

Contributors

benediktkotmel avatar david-developer-play avatar dependabot[bot] avatar elgohr avatar erbenos avatar evapavlik avatar honzav avatar ilny avatar janvlasaty avatar lukas-krecan avatar michalsrutek avatar michalsvec avatar miiila avatar oroztocil avatar panda7789 avatar petertylka avatar prusovak2 avatar rchrom avatar sczuk-a avatar sinacek avatar sitina avatar skalahonza avatar smallhillcz avatar smarek avatar sorki avatar srdecny avatar vlasaty-oict avatar vojtan avatar wojtylacz avatar zoul 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

Watchers

 avatar  avatar  avatar  avatar  avatar

cityvizor's Issues

editační formulář se otevře příliš vysoko

V administraci kliknutím na "Vytvořit nový profil" sice vznikne, ale místo otevření pro prvotní nastavení se rovnou objeví v seznamu "Profily". Odkaz "otevřít profil" sice funguje, ale nelze v něm přejít na "Administrace" - vykopává chybovkou "OBEC NENALEZENA"

Přesun konverze importních formátů na klienta

Konverze dat z Ginisu a dalších formátů bude prováděna na klientu (použit bude import worker z dema).

Zde bude také probíhat veškerá vizuální kontrola struktury i obsahu dat a uživateli budou předány uživatelsky přívětivé chyby.

Na serverovou část budou již zasílána zkontrolovaná data a veškeré zjištěné chyby budou technického charakteru a vývojářsky přívětivé.

Toto řeší issue #39, #40 a #2

API Testy

Je potreba vytvorit testy pro API, preferovana varianta jsou Postman collections.

  • Postman collections pro soucasnou verzi API, dulezitejsi jsou pro administracni cast (read/write)

  • Infrastruktura pro beh testu, nejlepe script, ktery po uspesnem buildu/unit testech provede vsechny Postman collections v src/test

Na dev infrastrukture se budou tyto testy spoustet v ramci Gradle jobu, neni potreba resit spousteni dev na lokale/inicializace dat v DB.

demo neexportuje rozpočtová data

V Demu jsou po importu z GINISu korektně vidět rozpočtová data.
Vyexportované soubory ve formátu CV v1 je však již neobsahují (parametr typ obsahuje pouze KDF a KOF, ne už ROZ).

Verze pro embed

From @Kedrigern on July 19, 2017 21:48

Častým využitím bude embedování strániky do webu obce.

Pro začátek by stačil nějaký parametr, který by skryl vše krom hlavního divu. A to by se jednoduše vložilo jako iframe.

Copied from original issue: otevrena-data-mfcr/cityvizor#91

Podpora pro Google Analytics, Matomo a další

  • V konfiguraci Client a Landing-Page nespecifikované textové pole pro JS kód, který se vloží v rámci příslušného layoutu / index.html do bloku <script type=text/javascript></script>

Záměr: Tj. podporovat GA, Matomo a nebo jakoukoli jinou front-end JS analytiku, bez toho, abychom museli implementovat konkrétní trackovací kód

Přidat Matomo (Piwik) sledování návštěvnosti

<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//navstevnost.otevrenamesta.cz/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '3']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

demo cityvizor - nefunkční odkaz

při výběru formátu vstupních dat u volby formátu CityVizor není funkční odkaz na popis struktury dat "dokumentace k aplikaci"

Výkladní skříň

Předmětem požadavku je, aby každá obec pro svou domovskou stránku mohla ovlivnit rozložení jednotlivých prvků na stránce.

Důvodem je, aby mohla položky, "kde se daří" zobrazit v horní části a položky, "kde se daří méně" mohla posunout v pohledu níže. Dále obec musí mít možnost - po domluvě - upravit aktivní prvky - například magistrát potřebuje na své stránce zobrazit 2 sloupce - pohled na magistrát a pohled na městké části, zatímco obec toto rozdělení nepotřebuje.

přístup "profile manager" - problém s administrací

Prosím o prověření nastavení administračních práv - pokud je profil ve stavu "připravujeme", nemá správce profilu s oprávněním profile-manager možnost administrace, protože po přihlášení do CV nemá vpravo dole nabídku "administrace" a tím pádem se nemůže na data ani podívat. Potřebovali jsme před zveřejněním ověřit správnost nahraných dat a musela jsem to obejít tím,že jsem dočasně změnila stav profilu na veřejný. Je možno to změnit?

V about rozlišit back|front end

From @nesnera on October 13, 2018 10:59

Rozlišení back|front end je v about sice naznačeno přes URL, ale uvedl bych to i explicitně, ať ani laik není zmaten. Navrhuji:
"Zdrojový kód aplikace naleznete na GitHubu v repozitářích otevrena-data-mfcr/CityVizor a otevrena-data-mfcr/CityVizor-server." > "Zdrojový kód aplikace naleznete na GitHubu v repozitářích otevrena-data-mfcr/CityVizor (klient) a otevrena-data-mfcr/CityVizor-server (server)."
Možná bych tu serverou tady ani neuváděl - stejně ji nikdo zvenku nemůže připomínkovat a v READ.me odkaz na serverou je.

Copied from original issue: otevrena-data-mfcr/cityvizor#142

Hlavicka podstranek - chybi CityVizor, matouci "zpet"

Na strance konkretni obce chybi v hlavicce cityvizor logo / nazev.

Problemy

  • napr. kdyz prijdu z odkazu na konkretni obec, nevidim poradne, ze jsem na CV (obecne slaby branding)
  • tlacitko zpet je v nelogicke a nestandardni pozici, navic neni jasne odkud kam zpet a chybi klasicka navigace "domu" pres logo (nemluve o tom, ze "< ZPET" je vizualne nejvyraznejsi prvek)

Navrh (MVP) reseni

  • zbavit se "< ZPET"
  • pridat nazev nebo soucasne logo (nez bude nove, klidne bych dal jen text), ktere bude odkaz na domovskou stranku

image

State store (frontend)

Při dalším "zesložitění" frontendu by stálo za to implementovat NgRx nebo nějaký jiný state store. Do teď to moc potřeba nebylo.

Framework a access control backendu

Backend je sice od větve mhmp přepsán do TypeScriptu, ale stále běží na frameworku ExpressJS, což zaprvé není TypeScript first framework a zadruhé to podle mě není moc robustní framework ve smyslu vynucení nějaké coding kultury (taky to tak vypadá), abstrakce atd.

S tím souvisí i řízení přístupů, kde jsme tehdy nemohli najít žádné řešení, které by nám vyhovovalo, a zvolili custom řešení, které také rozhodně není vyhovující.

Myslím, že by stálo za to (za tu námahu) přepsat backend do něčeho, jako je Loopback nebo NestJS.

// Rychlým Google searchem na mě teď vyskočil Stix, neměl jsem zatím čas nastudovat, ale vypadá to taky dost zajímavě.

chyba při kliknutí na detail výdajů z přehledu (chybná url)

Pokud jsem na přehledu (např. pro Praha 1) a kliknu na detail výdajů (např Školy), tak se nic nestane a do konzole se zaloguje error. Aplikace se chybně snaží dostat na URL /praha1/vydaje;rok=2019;skupina=31, ve které chybí klíčové slovo 'hospodareni'

Expected behavior: Aplikace by měla správně směřovat na výdaje s URL /praha1/hospodareni/vydaje;rok=2019;skupina=31

Reprodukováno v Google Chrome, Microsoft Edge i Mozilla Firefox.

URL: https://cityvizor.praha.eu/praha1/prehled

image

Testovaci API pro vyvojare ucetnich systemu

Cílem je vytvořit testovací endpoint, kde si vývojáři z řad účetních systémů budou moci ověřit jejich exporty do CityVizoru, tj. je potřeba, aby uměl následující:

  • vygenerovat token
  • zpracovat dotaz a odeslat informace o nahrávacím jobu
  • zpracovat data
  • po zpracování někde na webu zobrazit výsledky zpracování dat včetně varování (nulové položky, gdpr atd), které mohou pomoci s identifikací problémů.

Implementaci tohoto API bych preferoval ve trech krocich:

  • Vyuzit soucasnou Authentication a vytvorit novy ucet s pravy editace obce

  • Vytvorit nahravaci job.

  • Na zaklade uspesneho uploadu zpracovat data nezavisle s polling endpointem na vysledek (alternativne emailovy report nebo export do 3rd party dashboardu, vzhledem k tomu, ze hlavni funkcionalita je analyza chyb z logu)

Soucasna implementace zpracovani importu:
https://github.com/cityvizor/cityvizor/tree/master/server/src/worker

Neni nutne zachovavat soucasnou podobu importu.

Specifikace struktury dat pro import:
https://github.com/cityvizor/cityvizor/blob/master/reference/cityvizor-import-api/openapi.yaml

Struktura dat:
SQL definice: https://github.com/cityvizor/cityvizor/tree/master/server/migrations
TS datove typy: https://github.com/cityvizor/cityvizor/tree/master/server/src/schema/database

Poznamka: Vyber technologie je soucast analyzy reseni, preference je vyuzit moznosti AWS public cloudu (S3 pro upload dat => jejich nasledne zpracovani).

nefunkční správa uživatelů

Nedokáži se přepnout do správy tlačítkem "Uživatelé" z admin rozhraní.
Firefox 65.0.2 (a to jsem se připnul i do Secure mode)

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.