Architecture and Design Decisions

As the project progresses, it is possible that the tools we initially decide to use will change in favor of methods that interface in an easier way. The following table lists the tools we are currently using as well as our rationale for electing them.

Development Tools

Tool Rationale

Solid

Solid is the framework for our ability to create a decentralized form of data transfer between users. It is also a tool we are tasked with learning for the assignment.

Angular 6

Angular 6 is the framework for the front-end web development portion of our application. Its user accessibility and command line interface are attractive features for our collaborative and iterative development style.

TypeScript

TypeScript will act as the primary development language for the project. The language interfaces well with the other tools the team has elected to use, ensuring a simplified and efficient development process.

HTML/CSS

With tools provided by Angular 6, HTML and CSS will allow for the development of the design and functionality of the web-application.

Arc42

Arc42 will act as the documentation framework, allowing for ease and organization in the process of continually updating the documentation for the project as it progresses.

Turtle

Turtle is a syntax format for expressing data in the RDF data model. This specific syntax allows us to efficiently represent data that will be sent to and from users over the web.

Cucumber

Cucumber will serve as our tool for automatically testing our software. Its use is advised by our professors and it serves as a simple and concise framework for creating tests to measurably examine our software.

Syntax for the storage

Storing the conversations is one of the biggest hurdles for this project. At first we were pointing at a JSON file stored in a POD and reading/writing the whole file each acces. This not only proved hard and resource-intensive but, after more deliberation, we realised it broke the "data reusability" SOLID principle. This prompted us to look for a different way and we ended up with turtle and a structure equivalent to that used by the native data browser.

Namespaces

We mainly use the basic RDF syntax, ical for "LongChat", meeting for the participants section and flow to manage the message flow. We will also need to use acl for editing permissions on the POD.

results matching ""

    No results matching ""