A platform that gives companies the opportunity to create/administer/share electronic and class courses
STARTUP CONSULTING SERVICES
The Learnster educational platform, created by Computools's engineers, provides great opportunities for consumers, as well as, high satisfaction and a convenient user journey. While working on the project, the company's experts applied their experience and skills to reduce time to market and ensure the stable operation of the platform at high loads. The introduction of a finished educational platform has allowed the client the increase in profits and consumer conversion.
Several key options we solved:
Implemented options for courses’ easy design and customization.
Added opportunity to integrate the platform with internal HR systems.
Built-in system to create and export reports based on individual data on each course or training and on each participant.
Business Process Automation
The necessity to solve small problems throughout the project.
Implementing multiple solutions at the same time.
High demand for the proposed service.
High level of service customization.
Wide capabilities of the platform.
The client turned to Computools with the idea of creating a flexible learning platform to build customizable courses for staff training. They were focused on providing robust services to keep employees engaged and choose to stay in the company through continuous skills development in modern learning environments. The main requirement of the project was to build-in necessary features, such as: to vary the learning environments, to customize the education portal, to minimize internal misunderstandings, to integrate the platform with existing HR systems, to create and export custom reports.
The result of the collaboration was the Learnster educational platform, which is a complete implementation of the client’s idea, containing all the necessary options and capabilities. While working on the project, qualified Computools's experts made some significant changes, which improved the usability of the platform.
Digital Platform & Technology
The stack of technologies needed to complete the tasks was determined by the team based on the goals and needs of the project. The optimal solutions were identified, allowing to provide the necessary functionality and stable operation of the platform.
Python is a high-level, interpreted and general-purpose dynamic programming language that focuses on code readability. The syntax in Python helps the programmers to do coding in fewer steps as compared to Java or C++. The Python is widely used in bigger organizations because of its multiple programming paradigms. As they usually involve imperative and object-oriented functional programming. It has a comprehensive and large standard library that has automatic memory management and dynamic features.
Django follows the Don’t Repeat Yourself (DRY) principle, making this framework time-efficient. There’s no need to rewrite existing code because Django allows assembling a website like a Lego set. The framework is well-suited for high load systems and can decrease development time thanks to lots of helper objects.
REST (Representational State Transfer) stands out due to its scalability. Thanks to the separation between client and server, the product may be scaled by a development team without much difficulty. With the indispensable requirement for data from one of the requests to be properly sent, it is possible to perform a migration from one server to another or carry out changes on the database at any time. Front and back can, therefore, be hosted on different servers, which is a significant management advantage.
PostgreSQL is an open-source relational database software that runs on the Linux platform and functions with objects as a relational component in the database management system. Some of the prominent features of this database are, it is highly robust and reliable, the recovery process is effortless, and maintenance costs less cost and manual efforts.
Celery is a task queue implementation for Python web applications used to asynchronously execute work outside the HTTP request-response cycle. Celery can be used to run batch jobs in the background on a regular schedule.
Keeping in touch with the client while working on a project is crucial for successful collaboration. Therefore, at the very beginning, an optimal framework is created that allows the team and the client to quickly resolve emerging issues, provide reports and conduct remote meetings. For this project, Slack became that decision.
A preliminary specification is created in parallel with the building of the prototype. In the future, it is supplemented by the necessary steps in the process of developing a finished platform.
Goal: to build the next generation learning platform.
Precondition Design simple and complex training courses in a neat and user-friendly interface. Log in individually and from any device to the learning platform. Apply a personalized view with all courses and training collected.
Main Flow Log in. Choose one of the offered learning environments - everything from physical classrooms and e-learning to blended learning and distance learning. Design training courses in the user-friendly interface. Integrate the platform with most HR systems and standards in the market. Customize the learning platform to your brand's conditions (or your customers' brand conditions).
Postconditions Create, customize and export reports based on individual data on each course or training and on each participant.
The company pays special attention to the selection of specialists in the team to work on the project. When choosing, take into account the necessary level of knowledge, expertise, skills.
Maintaining efficiency and productivity is an important aspect of successful work on a project. We strive to create the most comfortable working conditions for each team member, we allow expressing their opinion or ideas.
Whiteboard meetings are a great way to continuously align everyone's efforts on the quest towards perfection and a very effective tool for visualizing progress and obstacles.
Collective brainstorming is a very effective technique designed to let the best ideas come to reality. Each team member expresses his ideas, so the most brilliant of them are born.
A special kind of meeting, it allows to take the collaborative process all the way to de-facto editing the code in parallel. This works especially well when our engineers engage with their client counterparts.
Internal Communication Flow
The internal communication ecosystem allows to efficiently complete tasks, maintain communication within the team, and quickly resolve issues. For this project, Trello and Jira project management platform were selected. This allowed the PM to monitor the progress of the project and the implementation of tasks, timely identify delays or emerging difficulties.
Project Management Methodology
A Kanban system is a work scheduling system that maximizes the productivity of a team by reducing idle time. The Kanban system relies on the continuous delivery of products that are geared towards meeting the expectations of clients. One benefit of practicing Kanban is that, if the client’s expectations are not being met, a team has multiple opportunities to give direction for course corrections during iterations.
Kanban is based on iterative work, or work that is done in small segments so as to reduce the amount of re-work should any changes occur. For this reason, customers of a team practicing Kanban can provide honest feedback and request changes during a particular iteration while preserving the timeline and keeping the budget in check.
Identifying high-level project goals
Analysis & Exploration
Researching and analyzing the existing and ready-made solutions
Defining main restrictions and providing solutions for them
Identifying the main risks
Selecting basic architectural patterns and tools
Forming an application stack, work processes with VCS
Forming the main development guidelines
Interactive prototypes & Specification
Development of a prototype in parallel with specification
Choosing Project Management Methodology
Build Development Process
Calculating the number of project teams
Configuring the technological processes and interactions between roles
Build The Team
Making the initial scope based on the specification and estimate, calculating the optimal number of specialists for each role
Adding executors to the team's core
Conducting an intro meeting
Distribution and execution of project tasks
Integration of the necessary options
Secure system for additional data
Testing & Stabilization
Developing a testing plan
UI & Unit testing
Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency
Working on product design, we primarily develop its architecture, as this has a great influence on how the design will be built in the future, and how ways of promoting and upgrading the product will be organized.
Implementation On Client’s Side
The launch of the platform was completed on time after all the necessary tests and checks.
The platform was migrated to the client’s servers taking into account all security requirements. Upon completion of the transfer, an additional check of the platform's performance was conducted.
Thanks to the developed design, the user's journey is simple and clear, which does not require additional tutorials and training materials.