-
Client
“Pifagor” is an online school offering individual and group classes in mathematics, Ukrainian language, physics, and other subjects.
-
Challenges
Student, group, lesson, and payment management was handled across multiple Google Sheets. This required maintaining dozens of spreadsheets, consumed significant time, and often led to data inconsistencies.
-
Objective
To develop a web platform that consolidates all information in one place and automates the majority of routine operational processes.
-
Web App
A role-based CRM system was developed (Admin, Curator, Teacher, Team Lead), tailored to the needs of each user group.
-
Functionality
Key modules were implemented: a complete student profile with history, payment tracking, group and schedule management with a calendar, and automated payment reminders.
-
Messengers
Telegram and Viber were integrated directly into the CRM — curators communicate with students and parents within the system without switching between applications.
-
Integrations
WayForPay for payments, AWS for backups, KeyCRM for automatic lead import, and E-chat for Viber communication were integrated.
For the online school “Pifagor” we developed a scalable CRM system that replaced dozens of Google Sheets and automated key academic management processes.
This case study demonstrates how a properly designed CRM can make operations faster, more structured, and fully transparent for a growing educational organization.
Project Goals
- Consolidate fragmented processes (students, groups, payments, communications) into a single system.
- Automate interaction with parents and students: reminders, invoices, notifications.
- Provide curators and teachers with daily operational tools without relying on spreadsheets.
- Build a technical foundation for future growth (student portals, analytics).
Architecture & Technologies
Front-End: Vue.js (Nuxt.js)
Back-End: NestJS (Node.js)
Database: PostgreSQL
Infrastructure: Containers, separate test/production environments, CI/CD; S3 backups.
The selected architecture delivers a fast interface for curators, flexible REST/WS APIs for integrations, and a reliable transactional layer for payment tracking and attendance history.
CRM Modules
After analyzing client requirements and reviewing other CRM systems, we chose a modular approach: each key process was separated into an individual module (students, payments, groups, communication) and then interconnected into a unified system. This made the CRM intuitive for the team and easy to scale.
Student Database
The module contains detailed student profiles: full name, student and parent contacts, country of residence, grade, group, teacher, curator, overall status (“active / paused / inactive”), payment status, and notes. The student list can be filtered by status, grade, curator, teacher, or country. Curators can quickly find a student and perform actions — change learning status, add or remove the student from a group, or review and update payment information.
Student list page
Student creation functionality


Learning Groups
Curators create and manage groups by specifying the name, subject, schedule, grade, and level. Students are assigned to groups, the format is selected (“group”, “individual”, or “courses”), and each group is linked to a teacher and curator. A visual schedule allows monitoring group capacity, transferring students, and managing learning statuses.



Payment History
The system maintains a subscription timeline: start and end dates, amount, number of lessons, bonus lessons, validity periods, and invoice statuses (“sent”, “in progress”, “paid”, “unpaid”). Integration with WayForPay enables automatic invoice generation, payment confirmation, and lesson balance updates. The CRM also sends reminders to parents about upcoming payments.
Communication
Individual Telegram and Viber accounts of curators and other users are connected to the CRM via official libraries and the E-chat service. Communication with students takes place directly within the CRM interface, and the system supports automated notifications and reminders. This approach saves time and creates a unified communication environment.


Notifications
The notification system informs users about important events. The bell icon shows unread items, and clicking it opens a panel with “Unread” and “Read” tabs.
Notification types:
- New message — informs administrators/curators about incoming Telegram/Viber messages.
- Successful payment — curators see payment details (amount, method, date) and can instantly navigate to the Payments section.
- New student — notification for curators and teachers when a new student joins a group.
- Feedback reminder — sent after the 1st and 4th lessons to collect feedback from students or parents.
- Attendance journal — teachers receive a reminder 5 minutes before lesson completion to mark attendance.
Each notification includes an icon, title, preview text, and timestamp, and links directly to the relevant page.
Change History
For the client, full process transparency was critical. Therefore, we implemented a change log that records every system action.
Complete timeline: Student and group profiles store a full history of events. Even a year later, administrators can see who updated data, transferred students, or changed statuses.
Financial events: Each successful or failed payment is recorded with details (date, amount, payment method), allowing quick tracking of financial history.
Attendance and learning: The system logs teacher attendance marks and automatic lesson deductions from balances.
The change log became one of the key project requirements, enabling complete reconstruction of events in disputed situations (e.g., payment issues or status changes).
Design & UX
Using Nuxt.js and a ready-made UI component library, our main task was to adapt the design to the school’s brand identity and ensure proper layout of all elements. The primary focus was usability for curators and teachers.
We implemented several key UX solutions:
- Modular structure: Separate sections for students, payments, groups, and communications with logical transitions between them.
- Consistent design language: All interface elements aligned with the school’s visual identity.
- Operational simplicity: Quickly find a student, review statuses, and update information without unnecessary steps.
Integrations
To ensure the CRM functions as the core of the school’s ecosystem, we integrated external services and automated key processes. As a result, routine tasks (communication, payments, backups) are handled automatically, providing a single access point to all information.
Telegram / Viber
Telegram integrated natively via official libraries: two-way messaging, multimedia support, delivery statuses, and chat search.
Viber integrated through E-chat for stable message delivery and centralized history.
KeyCRM → Pifagor CRM
Leads from the sales department (KeyCRM) automatically generate student profiles in the CRM. When the lead status changes to “Enrolled”, the system creates a student profile and transfers available data (group, curator, full name, payment details, parent contacts). This eliminates manual data transfer between systems.
WayForPay
Integrated payment system with invoice generation, webhook events, payment statuses, partial/full payments, subscription control, and automated reminders.
AWS Backups
Automated encrypted database backups in AWS (rotation and restore verification) ensure data protection and fast recovery.
Data Import
Since the school previously stored data in Google Sheets, we developed an automated import script. This allowed seamless migration without manual entry, minimized errors, and saved dozens of working hours. The system validates duplicates and data consistency to ensure a clean, structured database after migration.
Testing & Launch
Because the CRM covers dozens of business processes, testing became a major project phase. We verified not only individual features but also module interactions to ensure stable real-world operation.
Functional Testing
Each module (students, payments, groups, notifications, chats) underwent thorough verification: data creation/editing, entity relationships, display accuracy. Critical scenarios such as lesson deductions, status changes, payment accounting, and Telegram/Viber communication were carefully tested.
Business Logic Testing
We simulated real school scenarios:
- transferring students between groups;
- enrollment in multiple groups simultaneously;
- attendance tracking and lesson balance deduction;
- different payment methods and variations;
- lead integration from KeyCRM;
- parent reminders after a certain number of lessons;
- many additional edge-case scenarios.
This ensured predictable system behavior without disruptions.
Automated & Integration Testing
Core processes were covered with automated tests (payments, group creation, notifications) and integration tests with WayForPay, AWS, and E-chat.
Load Testing
We simulated dozens of concurrent users: mass imports, bulk messaging, status updates, and chat operations. This helped identify bottlenecks and optimize performance.
UX Testing
Curators and teachers participated in usability validation: ease of navigation, number of clicks for typical tasks, and interface clarity. Improvements were implemented based on feedback.
Result: The system was launched without critical failures, providing users with a stable daily operational tool even under high load. Post-launch support was provided during the initial weeks to ensure smooth adaptation.
Conclusion
The CRM development for the Pifagor School transformed internal processes. We replaced complex spreadsheets with a unified platform integrating student management, groups, payments, and communications. Through automation and integrations, daily workflows became faster and more efficient, while management gained full transparency and reliable data control.
The project demonstrated that a well-designed CRM is not only about convenience but also a strategic foundation for scaling operations, launching new services, and improving educational quality.
It’s time to discuss the project if you want to spark energy into your business