Code Monkey home page Code Monkey logo

databasecourseminiproject's Introduction

databaseCourseMiniProject

English TL;DR

Miniproject made during database course. It`s main task is to download Covid-19 data from multiple sources published by various states, then convert them into objects in Java and map them into Derby database using Hibernate. In addition it visualizes data gathered in database.

Opis projektu

Projekt stworzony w ramach zajęć na studiach. Trzeba osobno stworzyć bazę danych i wpisać ją do configa Hibernate`a. Program wypełnia bazę danymi związany z epidemią koronawirusa, pobierając je z określonych źródeł.

Model danych zawiera:

  1. odpowiednik kraju
  2. odpowiednik pierwszego stopnia podziału terytorialnego
  3. odpowiednik drugiego stopnia podziału terytorialnego
  4. wpis z datą i liczbą przypadków zarażenia

Te obiekty mapowane są z użyciem Hibernate. Narzucone są odpowiednie warunki integralnościowe, by nie powielać wpisów. Wizualizacja zawiera wykres liczby chorych od czasu w zależności od wybranych opcji.

Opis stworzonych klas

model

  • DataRecord - klasa zawierająca datę i liczbę chorych osób w danym odpowiedniku drugiego stopnia podziału terytorialnego, z którym tworzy relację @ManyToOne,
  • Province - klasa zawierająca nazwę i kod odpowiednika drugiego stopnia podziału terytorialnego znajdującego się w danym odpowiedniku pierwszego stopnia podziału terytorialnego, z którym tworzy relację @ManyToOne,
  • Region - klasa zawierająca nazwę i kod odpowiednika pierwszego stopnia podziału terytorialnego znajdującego się w danym odpowiedniku kraju, z którym tworzy relację @ManyToOne,
  • State - klasa zawierająca nazwę odpowiednika kraju.

datamanage

  • DataDownloader - klasa pobierająca pliki *.csv z odpowiednich źródeł,
  • DataParser - klasa odpowiadająca za czytanie plików *.csv, zapamiętuje nazwy kolumn i iteruje po wierszach plików,
  • DataSource - klasa abstrakcyjna, ogniwo pośredniczące między czytaniem danych z pliku, a wpisywaniem ich do bazy, korzysta z DataDownloader i DataParser i ukrywa za metodami abstrakcyjnymi ich implementację, co pozwala na łatwe rozszerzanie aplikacji o nowe źródła danych,
  • DataSourceItaly - klasa dziedzicząca z DataSource i implementująca metody niezbędne do wydobywania danych dla Włoch,
  • DataSourceUSA - klasa dziedzicząca z DataSource i implementująca metody niezbędne do wydobywania danych dla USA,
  • DBFiller - klasa korzystająca z DataSource, która uzupełnia bazę danych, korzystając z danych zaczerpniętych z DataSource,
  • DBGetter - klasa zawierająca metody, za którymi kryją się zapytania do bazy danych.

view

  • OptionsPanel - klasa zawierająca listy rozwijane elementów zgromadzonych w bazie z podziałem na kraje, regiony i prowincje, dzięki niej można wybrać interesujące nas pozycje i zaktualizować obecny wykres,
  • PlotPanel - klasa zawierająca panel do rysowania wykresów,
  • Visualizer - klasa zawierająca główne okno aplikacji.

istotne uwagi

  • jfreechart - biblioteka użyta przez nas do rysowania wykresów,
  • VM options - wymaga uzupełnienia o linijkę --add-modules jdk.incubator.httpclient

databasecourseminiproject's People

Contributors

rozchlastywacz avatar

Watchers

 avatar

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.