SQKO
university project turned into startup
January 2019 — March 2025
Highlights
Digital Student Service Center
SQKO streamlined administrative processes, enabling students to apply for services, receive updates, and access digital documents, while empowering officers to efficiently review, update and e-sign applications.
End results
The project had a significant impact on university operations. By automating and digitizing key processes, the solution had:
- Processed over 30,000 applications, reducing office costs by 80%
- Generated over 2,500 digital documents without the need for manual printing
- Made visiting the office of Student Service Center obsolete
First-hand insights
My entrepreneurial journey taught me a number of critical strategic and operational lessons:
- Timing is essential: going all-in during the pandemic would probably have yielded better chances of raising capital and scaling the product to market
- Revenue – 1st; Development – 2nd: focus on core fuctionality and keep it as simple as possible, adding more is justified if it impacts the revenue
- Market size matters: digitizing all Student Service Centers across the country barely makes $1M ARR
- Team accelerates velocity: a startup demands an immense workload across differrent fronts, making a strong team crucial for covering all bases
- Funding is vital for scaling: securing capital is key for hiring and scaling a business as soon as possible
- A single client is a death sentence: relying on one client creates an existential risk, highlighting the importance of extending the client base from the very beginning
Hiring experience
Once I started treating the project as a startup, I realized that with a packed roadmap, I lacked the time for both sales and development. This led me to shift my focus to hiring and team building:
- Attempted to convert a freelance developer who had built the mobile app into a co-founder, though the demands of a startup were higher than they could contribute at the time
- Hired and trained a smart and honest extraverted person with a desire to switch careers (turned out those traits were enough) and no coding background into a full-stack developer. After a one-month apprenticeship, they were assigned to work on the Document Factory microservice and gradually contributed across projects. Following their time with me, they have already worked in two medium-sized local companies, first as a QA and then as a Frontend Developer
- Organized and led a one-month internship for a high school graduate who worked on frontend tasks
History
University project
In January 2019, after transferring to Karaganda University of Kazpotrebsoyuz, I was asked to develop a website for the university’s Student Service Center (SSC). The goal was to expand on their recently launched live queueing system by allowing students to apply for services online. Although I was working on a personal project at the time, I prioritized this initiative, seeing it as a unique opportunity to observe the effects of my work on the daily operations at the university.
While juggling my studies, I built a functional prototype in 40 days. The first version of the website launched 40 days later becoming my first project with active users.
v1
Startup transition
The week of the initial launch, I formalized the arrangement by registering an LLP and successfully negotiating the first contract directly with the university's rector. The revenue from this contract was sufficient to sustain the project's ongoing development.
For years, I treated the project as a side venture, using it as a sandbox to continuously learn new technologies, refactor its architecture, and add new features. I even worked on it full-time between jobs. However, I focused solely on the product while heavily neglecting the revenue component.
Ultimately, to validate the market and raise the product's pricing, I decided to leave the job and try turning the project into a startup.
Failure
At times, I brought on a co-founder and an apprentice developer with the goal of shifting my focus to business development. Despite these efforts, I remained heavily involved in the technical day-to-day operations.
Still, I achieved significant milestones, including:
- Tripling the contract value in 2024
- Partnering with third-party providers
- Building a scalable information system
However, the intense demands of the business and the inability to fully delegate led to an unsustainable workload. The constant 70-to-95-hour workweeks and increased stress ultimately resulted in burnout.
Career Pivot
Despite leaving a high-paying job, I'm glad I pursued entrepreneurship. The experience pushed my limits and gave me a deeper understanding of my strengths and weaknesses. The journey also taught me many skills and allowed me to positively impact the daily lives of university officers and the entire student body.
As a person who thrives on focusing on a single project, I knew I had to make a choice: either persist with the company amidst growing competition or sunset the project to focus on a career. I chose the latter, and I'm now committed to becoming a world-class expert in my areas of interest over the next decade.
Architecture
Core components
- SQKO Student: a client for students for applying and receiving university services
- SQKO Officer: a client for officers to review applications, e-sign documents, verify payments and manage dormitory check-ins, reservations, and leave services
- SQKO Admin: an internal tool for managing officers and configuring services via a GUI
- SQKO Qujat: a public-facing client for verifying the authenticity of issued digital documents
- SQKO Server: a GraphQL backend with resolvers namespaced by a dedicated client (e.g., officerGetApplication, studentGetApplication)
- SQKO Document Factory: a microservice responsible for generating PDF documents and uploading them to the cloud
- SQKO Qoima: a secure S3 storage for generated and student-uploaded documents, with private and time-limited access
- SQKO Scripts: a standalone scripts repository for utility, data seeding, and one-off scripts, with filenames matching JIRA tickets, allowed for controlled and trackable fixes
Internationalization
I found the manual process of updating translation.json files to be an incredibly draining task. To solve this, I pivoted to a database-driven internationalization (i18n) approach, using PostgreSQL to store translation labels as JSON arrays within the database models. This architectural shift simplified label management and the addition of new languages, requiring no-to-minimal server-side work. It also dramatically reduced the frontend boilerplate, with the final file for the SQKO Student app containing just over 100 lines.
Document factory
In the initial version of the app, documents were dynamically created on the frontend. I later streamlined this process by setting up a microservice that generated documents from templates and uploaded them directly to the cloud. The new architecture, built on a clear folder hierarchy of university-code/service-code/document-code/language-code/file, simplified template management and enabled easy previewing directly through Postman. As we received feedback and encountered issues with templates, we started suffixing ticket numbers to the files, which resulted in the creation of a clear versioning and bug-tracking system.
Postman Workspace

Business logic constructor
Even with a single client, the platform required managing multiple services, each with unique signers, documents, and business logic. Adding flexibility alone was insufficient; updating the elements of the application lifecycle became a scripting nightmare. I solved this by building a custom WYSIWYG business logic constructor.
Certificate of Enrollment Lifecycle

This single-panel tool allowed for the complete configuration of every element, from stages and transitions to documents, signers, labels, modals, and button styles. It proved particularly useful when we needed to deploy an incomplete service, which enabled students to apply for a dormitory prematurely.
Premature Dorm Application Deployment

Dynamic forms
Initially, form implementations were hardcoded on the frontend, requiring manual updates for every change or new file creations for a new service. Recognizing the need for flexibility and scalability, I designed and implemented a dynamic form engine decoupling form logic from the frontend.
The solution leverages a server-driven JSON schema to define form fields, validation rules, conditional logic, and default values. On the frontend, React Hook Form efficiently manages state and validation, dynamically rendering forms based on the backend configuration.
Key Benefits & Features:
- Agility & Maintainability: forms can be updated or created via database changes, eliminating frontend code deployments
- Consistent Validation: centralizes validation in a single backend model, eliminating redundant logic and ensuring data integrity for both the frontend and Document Factory
- Conditional Rendering: supports dynamic field display based on user inputs or business logic
- Consistency & Reusability: powers all critical forms (student, officer, document, and application forms) under a unified architecture
This approach significantly reduced development overhead while improving adaptability, allowing rapid iteration to meet evolving business needs.
Application Form
{
"id": "c4374a12-156b-4d20-bd94-a22f821ed8e4",
"name": "Справка с места учебы",
"inputs": [
{
"name": "academicYear",
"label": "Академический год",
"type": "Select",
"position": 0,
"params": {
"defaultValue": "2024-2025",
"renderIf": null,
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "2023-2024",
"label": "2023-2024",
"disabled": true,
"__typename": "InputOption"
},
{
"value": "2024-2025",
"label": "2024-2025",
"disabled": false,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "applicationDocumentLanguage",
"label": "Язык справки",
"type": "Radio",
"position": 1,
"params": {
"defaultValue": "",
"renderIf": null,
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "KK",
"label": "Казахский",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "RU",
"label": "Русский",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "includeAddressee",
"label": "Указать место предоставления",
"type": "Checkbox",
"position": 2,
"params": {
"defaultValue": true,
"renderIf": null,
"renderIfPresent": "applicationDocumentLanguage",
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": null,
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "addressee_KK",
"label": "Место предоставления (KK)",
"type": "Text",
"position": 3,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "includeAddressee",
"value": true,
"__typename": "InputRenderIf"
},
{
"name": "applicationDocumentLanguage",
"value": "KK",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": true,
"helperText": "Введите полное наименование организации на казахском языке",
"placeholder": "Например: "COMPANY" ЖШС, "Банк" АҚ, "№1 жалпы білім беретін мектебі" КММ",
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "addressee_RU",
"label": "Место предоставления (RU)",
"type": "Text",
"position": 3,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "includeAddressee",
"value": true,
"__typename": "InputRenderIf"
},
{
"name": "applicationDocumentLanguage",
"value": "RU",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": true,
"helperText": "Введите полное наименование организации на русском языке",
"placeholder": "Например: ТОО "COMPANY", АО "Банк", КГУ "Общеобразовательная школа №1"",
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "includeStudyPeriod",
"label": "Указать длительность обучения",
"type": "Checkbox",
"position": 4,
"params": {
"defaultValue": false,
"renderIf": null,
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": null,
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "tuitionCostMention",
"label": "Указать стоимость обучения",
"type": "Checkbox",
"position": 5,
"params": {
"defaultValue": false,
"renderIf": null,
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": null,
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "paidByLegalEntity",
"label": "Обучение оплачивается юридическим лицом, указанном в поле "Место предоставления (KK/RU)"",
"type": "Checkbox",
"position": 6,
"params": {
"defaultValue": false,
"renderIf": [
{
"name": "academicYear",
"value": "2024-2025",
"__typename": "InputRenderIf"
},
{
"name": "includeAddressee",
"value": true,
"__typename": "InputRenderIf"
},
{
"name": "tuitionCostMention",
"value": true,
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": null,
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "scholarshipHolderMention",
"label": "Указать информацию о наличии/отсутствии стипендии",
"type": "Checkbox",
"position": 7,
"params": {
"defaultValue": false,
"renderIf": [
{
"name": "tuitionCostMention",
"value": true,
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": null,
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "scholarshipHolder",
"label": "Стипендиат",
"type": "Radio",
"position": 8,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "scholarshipHolderMention",
"value": true,
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "true",
"label": "Да",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "false",
"label": "Нет",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
"isActive": true,
"__typename": "Service"
]
}
Student Form
{
"id": "ac975586-775b-4436-83c2-f707df7cd6b3",
"data": {
"gender": "MALE",
"university": {
"id": "6167746f-8419-45ae-8412-bb696062fe57",
"name": "Карагандинский университет Казпотребсоюза",
"code": "KARUK",
"__typename": "StudentDataUniversity"
},
"program": {
"id": "f898f306-4d0d-4112-a81b-0efc260f4787",
"name": "Докторантура",
"degree": "DOCTORATE",
"__typename": "StudentDataProgram"
},
"studyLanguage": "RU",
"faculty": {
"id": "d23ce32d-0d18-4c6f-8244-b433ce17f5a5",
"name": "Факультет экономики, управления и предпринимательства",
"shortName": "ФЭУП",
"__typename": "StudentDataFaculty"
},
"speciality": {
"id": "9d581e68-f227-40af-92ed-723f102e9357",
"name": "Оценка",
"__typename": "StudentDataSpeciality"
},
"groupName": "О-22",
"courseYear": "2",
"BACHELOR": null,
"MASTER": null,
"__typename": "StudentData"
},
"__typename": "Student",
"university": {
"id": "6167746f-8419-45ae-8412-bb696062fe57",
"name": "Карагандинский университет Казпотребсоюза",
"code": "KARUK",
"studentInputs": [
{
"name": "gender",
"label": "Пол",
"type": "Radio",
"position": 8,
"params": {
"defaultValue": "",
"renderIf": null,
"renderIfPresent": "university",
"resetOnChange": null,
"options": [
{
"value": "MALE",
"label": "Мужской",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "FEMALE",
"label": "Женский",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "program",
"label": "Программа",
"type": "Program",
"position": 0,
"params": {
"defaultValue": null,
"renderIf": [
{
"name": "university.code",
"value": "KARUK",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": [
{
"name": "studyLanguage",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "courseYear",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "faculty",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "BACHELOR",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "MASTER",
"value": null,
"__typename": "InputResetOnChange"
}
],
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "studyLanguage",
"label": "Язык обучения",
"type": "Radio",
"position": 5,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "KK",
"label": "Казахский",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "RU",
"label": "Русский",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "EN",
"label": "Английский",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "studyLanguage",
"label": "Язык обучения",
"type": "Radio",
"position": 5,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "MASTER",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "KK",
"label": "Казахский",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "RU",
"label": "Русский",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "studyLanguage",
"label": "Язык обучения",
"type": "Radio",
"position": 5,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "DOCTORATE",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": null,
"options": [
{
"value": "RU",
"label": "Русский",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "MASTER.specialityType",
"label": "Направление",
"type": "Radio",
"position": 3,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "MASTER",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "SCIENTIFIC",
"label": "Научно-педагогическое",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "SPECIALIZED",
"label": "Профильное",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "BACHELOR.studyForm",
"label": "Форма обучения",
"type": "Radio",
"position": 3,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "BACHELOR.studyDuration",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "courseYear",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "faculty",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
},
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "FULL_TIME",
"label": "Очная",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "FULL_TIME_DLT",
"label": "Очная с приминением ДОТ",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "BACHELOR.studyDuration",
"label": "Длительность обучения",
"type": "Radio",
"position": 4,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": [
{
"name": "courseYear",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "HIGH_SCHOOL",
"label": "Полная",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "COLLEGE",
"label": "Сокращенная",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "HIGHER_EDUCATION",
"label": "На базе высшего образования",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "BACHELOR.studyDuration",
"label": "Длительность обучения",
"type": "Radio",
"position": 4,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME_DLT",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": null,
"resetOnChange": [
{
"name": "courseYear",
"value": "",
"__typename": "InputResetOnChange"
},
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "HIGHER_EDUCATION",
"label": "На базе высшего образования",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "COLLEGE",
"label": "Сокращенная",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyDuration",
"value": "HIGH_SCHOOL",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "3",
"label": "3",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "4",
"label": "4",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyDuration",
"value": "COLLEGE",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "3",
"label": "3",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyDuration",
"value": "HIGHER_EDUCATION",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME_DLT",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyDuration",
"value": "HIGHER_EDUCATION",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyForm",
"value": "FULL_TIME_DLT",
"__typename": "InputRenderIf"
},
{
"name": "BACHELOR.studyDuration",
"value": "COLLEGE",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "3",
"label": "3",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "4",
"label": "4",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "MASTER",
"__typename": "InputRenderIf"
},
{
"name": "MASTER.specialityType",
"value": "SCIENTIFIC",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "MASTER",
"__typename": "InputRenderIf"
},
{
"name": "MASTER.specialityType",
"value": "SPECIALIZED",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "courseYear",
"label": "Курс",
"type": "Radio",
"position": 6,
"params": {
"defaultValue": "",
"renderIf": [
{
"name": "program.degree",
"value": "DOCTORATE",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": [
{
"value": "1",
"label": "1",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "2",
"label": "2",
"disabled": null,
"__typename": "InputOption"
},
{
"value": "3",
"label": "3",
"disabled": null,
"__typename": "InputOption"
}
],
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "faculty",
"label": "Факультет",
"type": "Faculty",
"position": 1,
"params": {
"defaultValue": null,
"renderIf": [
{
"name": "program.degree",
"value": "BACHELOR",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "BACHELOR.studyDuration",
"resetOnChange": [
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
}
],
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "faculty",
"label": "Факультет",
"type": "Faculty",
"position": 1,
"params": {
"defaultValue": null,
"renderIf": [
{
"name": "program.degree",
"value": "MASTER",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "MASTER.specialityType",
"resetOnChange": [
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
}
],
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "faculty",
"label": "Факультет",
"type": "Faculty",
"position": 1,
"params": {
"defaultValue": null,
"renderIf": [
{
"name": "program.degree",
"value": "DOCTORATE",
"__typename": "InputRenderIf"
}
],
"renderIfPresent": "studyLanguage",
"resetOnChange": [
{
"name": "speciality",
"value": null,
"__typename": "InputResetOnChange"
}
],
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "speciality",
"label": "Специальность",
"type": "Speciality",
"position": 2,
"params": {
"defaultValue": null,
"renderIf": null,
"renderIfPresent": "faculty",
"resetOnChange": [
{
"name": "groupName",
"value": "",
"__typename": "InputResetOnChange"
}
],
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
},
{
"name": "groupName",
"label": "Группа",
"type": "Text",
"position": 7,
"params": {
"defaultValue": "",
"renderIf": null,
"renderIfPresent": "speciality",
"resetOnChange": null,
"options": null,
"minDate": null,
"maxDate": null,
"autoFocus": null,
"helperText": null,
"placeholder": null,
"__typename": "InputParams"
},
"rules": {
"max": null,
"maxLength": null,
"min": null,
"minLength": null,
"pattern": null,
"required": {
"message": "Обязательное поле",
"value": true,
"__typename": "InputRuleBoolean"
},
"__typename": "InputRules"
},
"__typename": "Input"
}
],
"__typename": "University"
}
}
Digital documents
Upon final signature, the system automatically generated a verifiable, finalized digital document.