Development

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!
-- (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.

Fixes:
-- 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)


-> The Feature Releases

-> Graphic Design

-> Dev Prototype

-> The "Apricot" domain concept

-> Dev Stages

-> The Apricot DB Functions

-> The Testing Structures

-> Apricot Modules

-> Versions of The Third- Party Software Used

-> Java FX class hierarchy

-> Useful Links