Dev Stages

Release 2.1 (28/11/2019)
The main functionality:
-- the filter of entities;

15/01/2020: the new database type - DB2 LUW - was added. The screenshot below shows the result of the reverse engineering of the DB2 LUW demo database in ApricotDB 2.1:

The long term dev. package:
(the planning was made on 20-22 of April 2019)

The main functionality:
-- (priority 1) Implementation of the simplified representation of the entities on the diagram (the header and the primary key only); ---> finished 25/05/2019
-- (priority 2) Implementation of the extended representation of the entities on the diagram - the types and lengths of the fields, including saving of the current user's choice; ---> finished 25/05/2019
-- (priority 3) The comparison between two Snapshots, generation of the difference scripts; PRIORITY! ---> 26/11/2019 done.
-- (priority 4) Implementation of the basic automatic alignment of the entities on the canvas, using simple hierarchical strategy. ---> revision from 10/10/2019: the scaling of the view port function was implemented (Release 0.6)
-- (priority 5) Implementation of the UNDO functionality (the view port only); ---> started on 22/04/2019, finished 06/05/2019
-- (priority 6) Implementation of the COPY/PASTE functionality; ---> revision from 10/10/2019, implemented in the Release 0.6
-- (priority 7) The proper error handling in "Apricot DB";
-- (priority 8) The proper logging in "Apricot DB";
-- (priority 9) The high scale "Map" of the View Port; ---> revision from 10/10/2019: the scaling of the view port function was implemented (Release 0.6)
-- (priority 10) The universal progress indicator for all potentially long operations;
-- (priority 11) Implement the stable groups of Entities (automatically saved with other layout). The group has to be associated with the view. Grouping on <Ctrl>+<G>, ungrouping by <Ctrl>+<U>. /planned for Release 0.7/

The additional functionality:
-- show the border (red? brown?) of the current working canvas; ---> revision from 10/10/2019: done as planned (Release 0.6)
-- The working canvas has to occupy the whole visible screen even if the canvas objects don't occupy the whole visible field; ---> done
-- Remember the current view and start the application with this view selected; ---> done
-- Add the control of the lengths of all editable text- fields;
-- Check and replace spaces in the names of entities and fields by the "underscore" symbol;
-- Implementation of the "Arc" intersections between vertical and horizontal links in the View Port;
-- Create a new project out of the current Snapshot/View;
-- The minimalistic Help system (the version of App, Database, JVM, Creator(s), contacts). The Getting Started internet based doc;
-- Work on the "soft"- loops between entities (the loop with one non mandatory relationship and the mandatory another one). Example: "Party" database;
-- Implement the context menu for the Relationship. Items: Edit, Delete. On Edit - show the constraint editing form with the only field editable: the name of constraint.

-- On the calculation of the canvas virtual size, take into account the relationships, lying outside of the border entities; ---> done
-- Refactor the editing forms to support the proportional resizing of the graphical components, when the form was resized; ---> done
-- Make the names of the Primary- Foreign Keys editable in the Entity editing form. Preserve the content of the Prim/Foreign keys from editing;
-- The reasonable coverage by the unit tests (80-85%?)

Concepts for design:
-- Import/Export of the Project meta- information;
-- The concept of the Reference- table (definition, storing/restoring data, scripting);
-- The concept of the grantable remote access to the Project on the other's working machine;
-- The concept of the optional central Project- database (Oracle, MySQL, SQLServer, PostgreSQL- based), Authentication, Authorization;
-- Introduce the second ERD- notation: "Crow's Foot" (see the useful links); ---> implemented 25/05/2019
-- The scaleable canvas. The scaled  canvas has to be editable as the original one. done

28/02/2019 Release 0.3:

-- Integrate the Excel- report (done);
-- Generation of the CREATE- script (for SQL Server) (done);
-- Create a minimal "Apricot DB" User Guide documentation (done);
-- Reverse Eng for MySQL database (done);
-- Reverse Eng for PostgreSQL database (done);
-- Reverse Eng for Oracle database (done);
-- Reverse Eng for H2 database (done);
-- Create a new Entity and Constraints (done);
-- Edit Entity and Constraints (done);
-- Integrate New/Exit Entity form with the View Port (done);
-- Create new and edit the existing Relationship (done)

19/02/2019 preparation for the second pre-alpha release (0.2):

-- Force the Reverse Engineering to work for SQL Server (done);
-- DB Connection with the preliminary check (done);
-- Reflection of the results of the database scan (done);
-- Select tables (include/exclude) from the scan- resulting list (done);
-- Submission of the final selection into the snapshot (done);
-- Check consistency of the choice made (done);
-- Reflection of the reversed database objects in the target snapshot (done);
-- Prepare and present to the public the minimal required user documentation for the parts of the application which work stable (done).


14/01/2019 The Work Package 0.1:
-- Import the View Port- project from the Incubator into the apricot_viewport module. Impelment the Spring- based entry point into the View Port implementation; (done)
-- Implement transformation of the JPA- representation of the Entities and Relationships into the simplified classes used by the View Port; (done)
-- Debug the Main View (includes the whole set of tables) with the testing structure (the default snapshot); (done)
-- Implement the adding/editing of the Apricot Project; (done)
-- Implement the adding/editing of the Apricot Snapshot; (done)
-- Implement the adding/editing of the Apricot View. (done)

(1) Design an initial version of the Apricot project database structure. This structure includes only the current snapshot of the target- database (the database being analyzed). No multiple snapshots are supported so far. (15/01/2019 done)
(2) Implement the JPA- layer to support the DB- structure from (1). (15/01/2019 done)
(3) Design the unified functional interface to read the target database metadata (15/01/2019 done)
(4) Implement the interface from (3) for MS SQL Server. (15/01/2019 done)

Stage 4 -> Release 1.0 Beta

The first fully functional version of "Apricot DB". Planned for July-August 2019.

Stage 3

Implementation of the Reverse Engineering functionality.Done

Stage 2

The read only graphical representation of the DB- structure (JavaFX). Done

Stage 1

Design the core domain structure of the Apricot- project (tables, views, testing data) -> 23/09/2018 done, version 0.1;
Implement the JPA- layer for 5 tables - the core Apricot- domain; -> 15/01/2019 done;
Implement loading of the DB- structure metadata into H2 (for SQL- server; use the testing database structure); -> 15/01/2019 done;
Implement generation of the Excel- sheet with the current database structure; -> 15/01/2019 done;
Implement the minimalistic command line interface to access the functionality of the Stage 1; -> 15/01/2019 done;
Deployment model (the Java app as a standalone installation module). -> still needs to be implemented