May 15, 2022
Science Stock – LMS made new!
An unique LMS for a small & big enterprise, which allows you to make the training process easy, transparent and shows exactly it’s business impact.
Creating your own project is a large task that requires a lot of involvement. It is much more difficult to create a startup than to work with ready-made customers' businesses. Talk about how we developed the idea of our project, created a service, and what encountered in the process. Let’s go!
Employee Training Platform
Science Stock is an employee training platform developed by ROKY’s R&D team. The purpose of the platform is to easily build training within companies. The idea to create the platform began in the spring of 2018, when we worked in the studio on the project of the online school.
For two years, the idea of the project was sitting on a shelf. In the summer of 2020, we participated in a tender from Tele2 - the company held a competition for the development of a training system for employees. We went back to the idea of the project - we prepared the presentation, we built the prototype in a week. Alas, we were denied participation at the last moment - the platform did not fit a number of criteria.
It was a shame - but we got a valuable experience and a demo version of the project.
How we did it
After the Tele2 contest, we tested the demand for the idea - we created a landing where we talked about the platform and its benefits. We put out an ad, we got 10 applications, and we realized the idea has a future. Then we created the structure of the future service, and we started designing - we created more than 50 layouts.
Next we started the development. We outlined the tasks and determined the time in which we will make the project. Microservice framework moleculer was chosen as a technology stack for backend on node.js + k8s + apache kafka environment, for frontend - Wednesday vue.js + vuetify.
Micro-services have chosen to scale - to easily make changes to the project, almost instantly increase capacity, as well as to reserve capacity.
Micro-services is an approach to development in which the code breaks down into multiple atomic parts loosely linked. Each part is responsible for a specific function on the site.Alexander Gorshkov
Chief technology officer
The development took 3 months. The process was based on the SCRUM method, which is part of the Agile methodology. At the beginning of the week, the project manager discussed the plans for the week with the team, and assigned the tasks to weekly sprints. At the end of each sprint, we get a piece of a working product. At the weekly meetings we analyzed the errors of last week. This helped us to correctly estimate the time for the tasks.
We created a payment system, and we realized that it wouldn’t work like this. Understanding that we need to create the system from scratch, we discussed it inside the team and created three different briefcases, eventually arriving at a better option.Alexander Gorshkov
Chief technology officer
Close contact within the team allowed us to quickly implement changes immediately after they were discussed. With each passing week, we were able to better understand what we were capable of, better define goals and targets, and adjust the development process. If the developer is stuck on one task - we decided together what to do.
While working on the project, we developed the AAS method - which means Attention, Accuracy, Slowness.Andrу Ivannikov
The method helped us to clearly define the load, and take exactly the number of tasks per week sprint that we can do.
The method of estimating the complexity of Storey Points also helped us. For example, if the problem takes 11-13 points, it is an easy task. The task at 13-34 points is an average task. Tasks above 34 are difficult tasks that can take a week. To speed up the process, we have decomposed complex tasks into smaller ones.
The architecture is built on micro-services that interact with each other. A small action, such as sending a message, sends a request to 3-4 micro-services that process it: find out who sent the message, if it has the right to do so, and to whom to give the answer.
The design of the architecture relied on two factors: simplicity, and ease of scaling. Microservices allow to distribute the load, and avoid the «fall» of the platform. The main thing - simple scaling of the platform - the platform allows you to quickly enter new features, integrate with other services.
During the development process we made a section «Reports» - there is a collection of all statistics on training in the service. After testing the section, we realized that in this form it is not suitable for us. I had to redo the section from scratch. The big plus of micro services is that we were able to rework the section mid-development without breaking anything.Ilya PukhovProduct manager
The database on the project is MongoDB. In the beginning, we almost made a mistake when we decided to use the PostgreSQL base - but quickly realized that we were making the architecture monolithic and cumbersome. Fortunately, they have come to their senses and started using MongoDB, which allowed to use flexible document description and get rid of the strong link in the data.
Mongo’s database is designed to store customer data in different formats. For example, if a company employee has completed the course, the depth and test results will be stored on the platform. The data of an individual employee can be compared with the company’s business metrics, see the clear dynamics of training, and the results of the work of an employee.
The service took six months to develop, two months to design, and one month to complete the service before release.
The project was launched with their own funds. Now we are in the negotiation stage with investors, our goal is to find partners interested in developing the platform as a consulting company, targeting the market of Europe and the USA.
The goal is to create not just a platform with courses, but a consulting company that helps companies solve problems, build the learning process, increase the efficiency of employees.
We have gained valuable experience in developing and planning the development process. ScienceStock is our first large-scale in-house project. This is a new experience - we designed the business model, built business processes, calculated the economy of the project.
This helped us to understand the processes on the client’s side, and to see the problems arising in the course of the case. Thanks to the project, we have outgrown the usual format of work of the customer and the contractor.
- Work direction
Design, Web development