Key-Value Store with Tagging

From UBC Wiki

Angus Chow, Illya Veksler

What is the problem?

We want to gently test Prolog's usefulness and adaptability as a database system and a server by implementing a simple key-value storage system. While we may not host an external server to keep active for this project, we are developing its functionality with the intent that it can readily be used in such a manner should the opportunity arise.

What is the something extra?

Not only does the base key-value storage system operate with a RESTful API, but the included client program allows the user to create complex queries regarding the tagging system, through the use of general operators.

What did we learn from doing this? (To-Do)

Prolog is extremely well-suited for this task, to the point of almost underwhelming in how smooth it was to build. While bugs did exist here and there, the actual structure of the program within was shockingly simple, to that we were afraid that the end result was too simple to be considered a good project idea.

Work division (To-Do)

How was the workload divided? Who did what? (This can be in a private communication to the TA if you do not want it to be public).

Angus - Client program, tagging system, query logic

Illya - original concept, server-side logic

Links to code (To-Do)

https://github.com/illyaveksler/kv