goodViberations is a password manager app. It is a data entry app, the implementation of the app uses activities (forms in conventional terms) to perform the common CRUD operations on data (Create, Read, Update, Delete). Initially no encryption is defined for the data storage and retrieval. During development, it is easier to leave this out. The design uses a separate data layer and specification. In this way there is a single place where encryption can be added when everything else has been developed and works.
In order to successfully encapsulate the functionality required to define the data and to implement the CRUD operations on the data, functionality describes:
There can be quite a lot of functionality in an activity. For this reason, the documents
have been organised so that one document describes one activity. All the documents are kept in the
functionality folder.
Initially all the activities do not have a corresponding functionality document. The development
process is to add one or more functionality specifications, generate the code, review the code,
test that the generated activity works as expected. Once completed, additional activity specification
documents can be added and the process of generation, review, testing can be repeated.
The following functionality specification documents currently exist to describe some of the functionality of the app:
The data structures and functionality used in this app are described in DataLayer.html, this includes:
As the project progresses, new functionality specifications are added. The activities which do not yet have a functionality specification have a UI specification. The UI specification is described in UIActivities.html.
Some terms used in this project are defined below:
An entry is defined to be a set of text fields, each field has a name and a value. Some fields are unique to an entry type, some are common to all entries. Some field values reflect a data type, and so have a syntax associated with them. For example: