DEV Community

Cover image for Practice your Svelte skills during Hacktoberfest πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»
Johannes Lichtenberger for SirixDB

Posted on • Updated on

Practice your Svelte skills during Hacktoberfest πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

πŸ‘Ύ An Evolutionary Database System for Modern Hardware

SirixDB is an evolutionary, accumulate-only database system. Each new commit stores more data in a new snapshot, which shares common data with the previous revisions. The system never overwrites data. It supports a single read-write transaction per resource concurrently to N read-only transactions. Furthermore, in stark contrast to other database systems, the persistent, durable tree consists of variable-sized database pages. Versioning takes place at a sub-page level according to a novel sliding.

🐣 Svelte based Frontend

Screenshot Depicting Diffs

Moshe Uminer and I are looking for contributions to a frontend for the system mentioned above. The frontend is pretty new (the project started a few months ago), thus there's a lot of work to do.

GitHub logo sirixdb / sirix-svelte-frontend

A GUI console for SirixDB, using Svelte/Sapper.

Project Setup - Setting up SirixDB locally

Unfortunately, this is currently a bit messy, but still rather straightforward.

There are several resources required to run SirixDB, and they can all be found in the resource directory of this repository.

SirixDB depends on keycloak for authentication, so we first need to run (in the directory in which you have the above resources):

docker-compose up -d keycloak

It can take about a minute for keycloak to be ready for connections. If you like, you can use the wait.sh script in the above mentioned resources folder to wait until keycloak is ready. The docker-compose file runs a script from the resources folder to initialize keycloak with a user "admin" with the password "admin".

Once keycloak is ready, run:

docker-compose up -d server

The Sirix database is now ready for use.

Developing

Code documentation

A lot of documentation is missing. However you can find…

XML display #10

Currently, the /databases route is only capable of displaying JSON. We need to add complete XML functionality.

Layout customization #249

  • Enable resizing the various "sections" in each route,
  • as well as allow drag-and-drop to rearrange the layout. (a section would be, for example, (in the resource route) the bar showing database/resource names, the history timeline, the resource view. (in the query route) the query box, the query result display, the saved/old queries bar).

I imagine this would require

  • using something like svelte-dnd-action to allow rearranging the layout,
  • and using the resize CSS property to allow native element resize.
  • I imagine the resize property would exist on containers that would each containe a single "region" that is draggable.
  • There should be listeners to resize the container region when a large section is moved to a small region (and swap the small section to the other region).
  • There should be listeners to accommodate the resize of a region by resizing other regions.

This would require refactoring the layouts to be compatible with drag and drop.

The idea is to build a frontend, which can interactively depict the differences between revisions of the data and visualize the result of time-travel queries.

In general, it would be great to provide a similar space-filling approach (modified Sunburst-View) like the one I once developed for my master's thesis:

Sunburst visualization #250

Create a zoomable multi-layered sunburst visualization, displaying the density (in terms of descendantCount) of various parts of a resource.

This will probably use D3, but I don't have any further ideas than that.

General visualizations issue #251

There are many visualizations described in @johanneslichtenberger 's master thesis, these need to be recreated. A PDF of the master thesis is here.

Furthermore other, related views are imaginable. I'm open to new research ideas πŸ‘

I'm for instance also interested into how best to present the result of time travel queries to a user / analyst.

Top comments (4)

Collapse
 
saruspete profile image
Adrien Mahieux • Edited

Please don't share this event.

Since tonight many spammy PR are spawning on every repo from github, mainly unmaintained repo as they are taken into account in the total calculation.

Search "Improve Doc" : github.com/search?o=desc&q=improve... there's 2 spam PR created every minute, and increasing.
Same for "Amazing Project" github.com/search?q=amazing+projec...

All due to #hacktoberfest

Don't support something that spams opensource projects. DigitalOcean is sponsoring spam, not FOSS.

Collapse
 
johanneslichtenberger profile image
Johannes Lichtenberger

I've made a very good experience with Hacktoberfest contributions last year. Otherwise I wouldn't have promoted the repository :-)

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

I'm up for getting some work with Svelte. I picked it up a few months ago and already build 2 sites with it that look very good and it was a lot of fun learning how the "new kid on the block" works πŸ˜…

Collapse
 
johanneslichtenberger profile image
Johannes Lichtenberger

Looking forward to your contributions :-)