Skip to content

Architecture

David-Henn edited this page Apr 12, 2011 · 11 revisions

Architecture

There are three layers in forgetIT: Presentation (gui), Logic and Database (data).

Presentation Layer (gui)

This layer is the interface to the user on one side and the logic layer on the other side. So it has no direct acces to the database layer.

In the first shot the gui consits of

  • a search bar
  • a settings button (with dialog)
  • a tags list
  • a calendar
  • a to-do-list
  • a notes-list

gui layer

Logic Layer

The logic layer should be a as autonomous from other layers, as possible. It defines some interfaces for the presentation layer, which should not change. For this reason a special architecture is implemented:

Interface logic layer

The public interfaces don't change, because they are implemented by classes, which call internal interfaces. If someone instatiates these classes, he should never change anything, because those classes will never change. Just the logic beneath them.

So if you have to change something in the logic layer, make sure you work with the internal interfaces and leave the public interfaces and their implementing classes as they are.

Data Layer (data)

The data layer is the lowermost part of the application. It will contain the user-specific note data in a handy Java-based database. Further it's intended to provide methods to read, modify and manage this data via a persistence framework. in the future this layer will also be responsible for tasks concerning the export of calendar data into ICS files (iCalendar standard).

Until now the layer technically consits of following components:

  • HyperSQL database v2.1.0(100% Java-based, HSQL License)
  • Hibernate persistence framework v3.6.2 (LGPL v2.1)
  • Some already defined interfaces (ty to David)

back to home

Clone this wiki locally