Skip to content
mokonzi131 edited this page Oct 14, 2014 · 4 revisions

Objective

The task manager application is a very simple app for managing list of tasks. The purpose is to provide a simple application prototype for development and demonstration of the NoFS database system.

Application Data Model

The application consists of a very simple data model defined below.

Application: List<User>

User:
  - String username
  - String password
  - List<TaskList>

TaskList: List<Task>

Task:
  - String title
  - String description

Persistence Approaches

We will use multiple approaches to storing and loading the data used in this application in order to compare efficiency and simplicity.

File System

The most traditional approach, we will store the data used in this application in files on the OS's file system. While the application data model will be held in RAM, this model will be regularly saved to the F.S. and at application start-up, it will be loaded from the F.S.

Since this is a prototype, we will ignore issues like security and encryption and just go with a very straightforward approach. There will be one required file "users" which will contain a mapping of usernames to passwords. Then for each user, there will be a file associated with their username "user0" which will contain their task list model. We will format these files using .json syntax. In order to be somewhat reasonable, we will store hashes of username:password combinations instead of plain-text passwords.

Example:

taskmanager.jar
data/users
data/_user0_
data/_user1_

SQLite

TODO

NoFS

TODO

Clone this wiki locally