git4school / git4school-visu

Git4School, a dashboard for supporting teacher interventions in Software Engineering courses
https://git4school.firebaseapp.com/
Apache License 2.0
2 stars 3 forks source link

Save configuration data locally #52

Closed F0urchette closed 3 years ago

F0urchette commented 3 years ago

Description

As a user I want to keep my project saved locally So that I can leave and come back without having to reload my configuration file But I don't know which relational schema to use, which DBMS to use, or when to save the data in DB

F0urchette commented 3 years ago

To help with the relational schema, here is the class diagram of our model :

DC

F0urchette commented 3 years ago

And this is how the data is stored in the application :

DC_DataService

F0urchette commented 3 years ago

As for the save data method, we want no action from the user. To do this, the data should be saved at several moments :

F0urchette commented 3 years ago

As for the DBMS, we want a local relational DBMS, easy to integrate with javascript, and which does not require the user to install anything. We need to be able to create a DB and the tables directly with javascript.

To simplify the object-relational mapping, TypeORM can be interesting

F0urchette commented 3 years ago

TypeORM only works server-side, except for sql.js which can work client-side and actually allows to use SQLite browser-side. The only problem is that the database created with sql.js is apparently not persistent according to what is said in the first paragraph on their site. Not to mention TypeORM, it seems that it is not possible to create a client-side SQLite database. I haven't found an alternative to create a client-side relational database. The only alternative I found on the client side is IndexedDB which is the successor of WebSQL but is document oriented. The possibility of using a non-relational database should be studied with @FranckSilvestre