F
Fand_igor

Admissions Campaign Bot for MAX with 1C Integration and Admin Panel

I independently developed the concept and implemented a bot for the MAX messenger as a discrete digital service for a university's admissions campaign. I designed not only the user interaction scenarios with the bot but also the entire applied infrastructure surrounding it: server architecture, conversation state storage, 1C integration, merit list processing, an administration panel, configuration, logging, and integration documentation.

The key idea of the project was for the bot to be not just a command-response channel, but a convenient entry point to admissions campaign services. Through it, applicants could register, view their applications, competitive groups, contracts, results, and schedules, and quickly perform standard actions without needing to log into the main personal portal.

Project Context

The project developed as a self-initiated effort with a practical goal:

  • simplify applicant access to key admissions campaign information via the messenger;
  • shorten the path to necessary services and reduce support load;
  • offload certain scenarios from the web portal to a faster and more familiar communication channel;
  • prepare a platform that can be expanded with new services without a complete architectural overhaul.

Technically, this is not just a bot, but a full-fledged Node.js application with a web server, admin panel, database, Redis, logging, data import, and an integration layer.

What has been implemented

  • Implemented the MAX bot using Node.js and TypeScript with webhook and polling support.
  • Built a unified process that simultaneously served the bot, webhook, and an Express-based web admin panel.
  • Designed user interaction scenarios and the menu structure for the admissions campaign.
  • Implemented applicant registration and authorization via phone number with validation, local DB checking, and 1C querying.
  • Added navigation scenarios for admissions services: applications, merit lists, personal portal, useful links, and error reporting.
  • Implemented user data update scenarios via the bot, including email and tax ID (INN) updates.
  • Built conversation logic as a managed finite state machine, storing active interaction stages in the database.
  • Implemented a discrete conversation circuit where the bot saved scenario steps, intermediate data, and current user operation states.
  • Created a support ticket scenario with ticket creation and subsequent message addition to an already open thread.
  • Implemented discrete storage for users, roles, logs, states, messages, tickets, and merit lists in MySQL.
  • Added merit list import from JSON with file parsing, structure normalization, and storage in discrete tables.
  • Implemented display of user competitive groups, sorting by priority, and detailed viewing of a selected group.
  • Integrated the bot with 1C to retrieve applicant data, application statuses, exam schedules, results, achievements, contracts, and access to internal systems.
  • Implemented reverse scenarios for sending changes from the bot to the external system, including email and tax ID updates.
  • Prepared a service layer for 1C integration via HTTP API with centralized request and error handling.
  • Developed an admin panel with authorization, service status viewing, configuration management, JSON importing, migration execution, and maintenance service scenarios.
  • Added a cache and centralized configuration via Redis to manage application parameters and operating modes.
  • Implemented logging to files and the database for user actions, bot scenarios, and integration errors.
  • Prepared migrations and seeds for deploying the project as a standalone service rather than a local prototype.
  • Described bot integration options with the external personal portal and 1C via normalized JSON contracts.
  • Prepared discrete documentation for integration, request variants, and recommended exchange architecture between the bot, portal, and 1C.
  • Specifically addressed security issues, webhook behavior, admin panel protection, configuration storage, and operational risks.

Technical Highlights

  • The bot was designed not as a set of hardcoded commands, but as an applied service with an expandable server side.
  • Conversations were abstracted into a state model; thus, registration, ticketing, and data update scenarios were not dependent on a single message and could exist as managed step-by-step processes.
  • The web server and bot were combined in a single application, which simplified deployment, maintenance, and access to administrative tools.
  • The DB structure was designed for real-world operational scenarios: users, roles, logs, conversation states, message queues, tickets, merit lists, and auxiliary entities.
  • For merit lists, a discrete import and normalization layer was implemented so the bot wouldn't depend on raw export formats.
  • 1C integration was abstracted into a discrete service layer, isolating external requests from interface scenarios.
  • Architecturally, provision was made for the eventual replacement of direct integration with temporary sources with a normalized API of another project, without reworking the bot's logic.
  • The admin panel was designed not as a decorative interface, but as an operational tool for configuration, diagnostics, and service maintenance.

Design Accomplishments

  • Independently developed the overall concept of the bot as a discrete interface for admissions campaign services.
  • Defined the scenario set, menu structure, user behavior at each step, and boundaries between the bot, personal portal, and 1C.
  • Designed integration contracts and JSON response structures so the bot could work with normalized data rather than 1C's internal schema.
  • Formulated recommendations for the exchange architecture, where the bot communicates with the portal's service layer rather than directly with a third-party DB or business logic.
  • Prepared documentation for integration and project maintenance to ensure its development as a full-fledged service.

What the project demonstrates

  • Ability to not just write a bot, but design a standalone digital product around a messenger.
  • Experience building server architecture for a chatbot with an admin panel, DB, conversation states, data import, and external integrations.
  • Ability to translate complex applied admissions campaign scenarios into clear user steps within the messenger.
  • Experience with 1C integration and designing intermediate API contracts for data exchange between systems.
  • Experience thinking through the operational side: configuration, migrations, logging, security, diagnostics, and maintenance.
  • Capacity to independently form a product idea, decompose it into technical circuits, and bring it to a working implementation.

Technologies

  • Node.js
  • TypeScript
  • Express
  • EJS
  • MySQL
  • Knex
  • Redis
  • MAX Bot API
  • Axios
  • Docker
  • PM2
  • 1C API Integration

My role

My role was comprehensive: I independently developed the service idea, designed user scenarios, architecture, and data model, implemented the bot in TypeScript, integrated with 1C, imported merit lists, stored conversation states, and developed the admin panel, configuration, logging, and integration documentation between the bot, personal portal, and external services.

Practical value of the project

This case demonstrates not just work with bots, but the ability to build an applied service from scratch:

  • independent development of an idea and product scenario;
  • implementation of the bot as a full-fledged server application;
  • integration with 1C and external systems;
  • design of dialogue scenarios and conversation states;
  • development of an admin panel and operational circuit;
  • preparation of API contracts and integration documentation;
  • designing architecture with an eye toward future development.