Cross-cutting Concepts

This section is intended to describe the general ideas, regulations and concepts that apply, either to to the whole system, or to several parts of it.

Domain Concepts

  • Message: piece of text to communicate with other user, expressed in turtle syntax for RDF.

  • Pod: user repository, following the SOLID specification. It can be located anywhere, not on a single platform.

  • Client: the de_chat program running on the user’s browser. Its responsability is to give the functionality, not to store the data.

User Experience

One of the keypoint of the application. The user should not notice any difference from using other chats, like Facebook or WhatsApp. There two main reasons for this: * Facilitate the migration from other chat systems easy for any kind of user. * Prove that it is posible to have the very same services that we currently enjoy using the SOLID system

Architecture and design patterns

Up until know, the de_chat is an Angular-based system, therefore following the Model View Controller architectural pattern. However, all our application would not store any of the user’s data. It will access it via SOLID pods.

Persistency

The persistency has been achieved using the RTC and turtle (.ttl) files. Thus, making use of the standard already in place in SOLID, and allowing the interaction of DE_CHAT and the SOLID chat system.

Session handling

The session is managed using the SOLID session itself, as it is that platform the one in charge of storing the user’s data.

Communication

Two chats would not communicate directly. I will occur via SOLID pods, which are the ones storing the messages. The application provides a realtime notification daemon to allow users to talk fluently.

Testing

Two types of testing are currently in place:

  • Unit testing: in charge of testing the low level features of the system.

  • End to end: in charge of testing the general behavior of the system by mocking a real user.

Building

The building of the project, considering that it is an Angular application, is done via the Node.js package manages, npm. It is expected to be built using the docker platform, in order to avoid dependencies and enviorment issues.

results matching ""

    No results matching ""