Domain specific language for creating dynamic processes

Download proposal as PDF

Qoorp’s mission is to make it super simple to manage the administrative side of running a business with everything that involves board or shareholder meetings or registrations that need to be made to the authorities. We are building a web-based service which makes these things a lot easier. For example, an employee stock options program, which normally would take around 16 hours of tedious work, can be created in less than 15 minutes using our document creation wizard. Please check it out, or watch the short video (in Swedish only) describing it.

The task:
With our current technology, creating a document creation wizard like the one described above is time consuming. Each web page has to be hand crafted, the program logic added and then finally a set of documents should be created. We want to investigate to what extent we can create a domain specific language (DSL) that

a) describes the web page and what input is needed from the user, and

b) the documents that should be created as a result of the user input.

c) facilitates verification of the content of the resulting document

An example: let us assume that we want to describe the process whereby we create a share transfer document, where a person who owns shares in a certain company want to sell a number of shares to another person. In a simplified description, this would entail:
1) Selecting which company it concerns, if the user owns shares in multiple companies
2) Selecting the number of shares that should be sold (no more than he or she owns)
3) Selecting the price
4) Selecting the buyer
5) Checking if sales is conditioned on the approval of other shareholders (data on this is gathered from the articles of association or a shareholder agreement, if there is one).
6) If conditions apply, ask existing shareholder if they want to use their right of first refusal
7) If right of first refusal is applicable, distribute shares accordingly
8) If right of refusal is not applicable, create share transfer agreement
9) Initiate digital signing of share transfer agreement
10) Gather payment instructions
11) Execute the transfer in the share register

In reality, the above process would contain several more steps. What we want to do for each page is to specify which data points should be gathered, and how they should be used later. We should then let the user create a document template using a simplified syntax, which later can be translated to PDF or Word format, using for example Latex or a similar mechanism.

Since the input may contain a fairly large number of input parameters (typically between 10 and 20), the content of the generated document may vary accordingly. Verification of the content is therefore very important, and the resulting system should contain functionality to facilitate that.

Your background:
You have a strong interest in programming, which you have learnt either through your studies or through your own work, or more likely, through a combination of both.

Why choose to do your master thesis project at Qoorp?

You will get a chance to work with a cutting edge team building a world-beating product. Done right, your work will have real impact. As we are expanding, there may be hiring openings at the end of your project.

For more information, please contact Niklas Rudemo, +46 708 141 287, niklas@qoorp.com.

About Qoorp:

Qoorp develops a web service for managing company information such as a share register, board- and shareholder meetings and issuing stock, warrants and options. Qoorp was founded in 2015 and we currently serve the Swedish market.

Website: www.qoorp.se