/robin-data-explorer-for-airbnb-datasets

A data explorer for Airbnb dataset. Its GUI is Swing based. Various OOP design principles and patterns were applied.

Primary LanguageJava

Robin™ - Data Explorer for Airbnb Datasets

The Robin Data Explorer allows you to open, search and filter Airbnb datasets in CSV format (using comma ',' as delimeter).

You can observe some statistics and charts about the active data. Furthermore, the software gives you the ability to save the active data in CSV or JSON formats.

As well as file from file system, you can open data sets directly from an internet source by using its URL. For instance, you can try the link below.

http://data.insideairbnb.com/the-netherlands/north-holland/amsterdam/2021-12-05/visualisations/listings.csv

Desing and Implementation

The projects was fully coded in Java using basically Swing and Java collections. In this version, I have not used Java Stream and Functional Interfaces on purpose. It is beacuse of that I am going to develope another version of the same software that will be developed using Java Stream and JavaFX later.

I desinged the software by paying considerable attention to modern Software Engineering an Object Oriented Design principles. In the code, you will find a well-defined structure in which software modules have been properly seperated and structured, including Gui, Parser and Dataset .

Some of the principles I have tried to follow are Abstraction, Encapsulation, Information Hiding, Low Coupling and High Cohesion etc. To this end, in addition to numerous design choices and fine-tuning in the code, I have applied vairous design patterns to obtaind a sound, flexiple and maintainable software.

I used Facades in modules gui.charts, gui.dataviewers and dataset. Some also comply with the Factory design pattern. Moreover, for the implementation of filtering mechanisms in the dataset package, I implemented Decorator design pattern.

Unit tests and further fixes to reduce the sizes of some classes are on the way.

Please inspect the class diagram below and the screen print outs of the software to understand well its functions.

Class Diagrams

  • Main
  • Parser Package
  • Dataset Package
  • Gui Package
  • Screen Print outs

  • Main Frame
  • Open Web Source (int the File menu)
  • Find (int the Edit menu)
  • Property Details (double click a table line)
  • Statistics Dialog