Documentation - manhhungtran/PB138 GitHub Wiki
Technologies used
ASP.NET MVC
An open-source web application framework developed by Microsoft, which implements the model-view-controller (MVC) architecture.
More here.
ASP.NET Razor
An ASP.NET programming syntax used to create dynamic web pages. The Razor syntax is a template markup syntax, based on the C# programming language, that enables the programmer to use an HTML construction workflow.
Microsoft SQL Server
A relational datbase managment system developed by Microsoft. A software product with the primary function of storign and retrieving data as requested by other software applications.
JavaScript
A high-level, dynamic, untyped and interpreted programming language. Alongside HTML and CSS, its one of the three core technologies of web development.
jQuery
A free open-source JavaScript library designed to simplify client-side scripting of HTML.
More here.
GoJS
A feature-rich JavaScript library for implementing custom interactive diagrams and complex visualizations across modern web browsers and platforms.
More here.
How it works
Application's schema
The application can be divided into three layers (Entity Framework Code First). Data access layer defines dependencies with the database model. Business layer determines how data can be created, changed, stored and displayed (CRUD). Presentation layer represents the user interface and the security of the application. The layer is implemented with the MVC architecture which is consist of model, views and controller.
The model part defines entities such as objects in the family tree or user model. The user interacts with the application through the controller which can manipulates models and send commands to it. Changing the models causes updating of the view.
How to use
Authentication
User has to be registered to use the application. User can have his account signed up with a regular registration form. The password has to be at least 6 characters long. After successful login the page will be redirected to the user interface. User can change his account's password in the settings section.
Creating the family tree
Adding person
User can add a new person in the table section. Apart from the basic information (name, surname, gender, date of birth, optionally birth of death), person's mother and father can be set. Parents have to be in a relationship (one of the parents must have the other one set as a partner attribute) for correct graph display.
Relationship
The relationship between two persons can be set in the editing mode of the person. It's not necessary for both of the persons to have the other one set as a partner (for cases of multiple marriages or illegitimate children).
Other features
Family tree display
User can view his created family tree (genogram) in the graph section. Each person node in the graph is movable. The genogram can be saved to a image file with the Open image button. A new tab in the browser will be opened with the image.
Export to XML
If desirable the family records can be exported to a machine-readable format in XML.