Sadok.app — застосунок, у якому садок веде дітей, відвідуваність і оплати
Мобільна CRM для дитячих садків: батьки, вихователі й адміністрація в одному продукті, з рахунками, звірянням банківських транзакцій і онлайн-оплатою. iOS і Android з одного коду на Flutter, сервер на Python.

Перенести роботу дитячого садка в застосунок — разом із грошима
Sadok.app — український застосунок-CRM для дитячих садків, центрів розвитку та гуртків. Замовниця прийшла із задачею, яка тільки звучить просто: дати батькам зв’язок із садком у телефоні. За цим стояв облік — групи, відвідуваність, гуртки, харчування й щомісячні рахунки, які садок доти вів у таблицях і месенджерах. Задача — розробити мобільний застосунок на Flutter одразу під iOS і Android, із серверною частиною, яка витримає облік реального закладу.
Це не один застосунок, а три продукти в одному
Батько відкриває застосунок на хвилину: подивитись, чи дитина в садку, і що там у групі. Вихователь працює в ньому зміну: відмічає присутніх, веде списки, додає фото. Адміністрація закриває місяць: формує рахунки, звіряє оплати з банківською випискою, готує звіти. Три різні сценарії, три набори прав — і спільні дані під ними.
Окремий рівень складності — гроші. Помилка в рахунку це не баг у беклозі, а розмова з батьками. Тому фінансову частину будували зі статусами, чернетками, звірянням транзакцій і можливістю відкотити, а не як просту суму до сплати.
Вхід без пароля
Номер телефона й код із SMS. Номер уже прив’язаний до дитини, тому застосунок одразу показує, кого знайшов, і просить підтвердити: так, це моя дитина.
Три ролі в одному коді
Батьки, вихователь і працівник ДНЗ заходять через один застосунок, але бачать різні розділи. Рольова модель закладена на сервері, а не схована кнопками в інтерфейсі.
Каталог садків
Пошук закладу списком і на мапі, фільтр по області й місту, відстань до садка. У картці — рейтинг, опис, програми та гуртки.
Гуртки з перевіркою конфліктів
Система звіряє розклад: якщо дитина вже записана на інше заняття в той самий день і час, застосунок не дає створити накладку і пояснює причину.
Групи та розпорядок
Картка групи з віком, наповненістю, вихователями й погодинним розпорядком дня. Списки дітей і батьків із контактами.
Відвідуваність
Вихователь відмічає присутніх і відсутніх — і по групі, і по окремому заняттю з часом та вартістю. Батьки бачать статус своєї дитини.
Календар подій
Місячний вигляд із фільтрами за типом: дні народження вихователів і батьків, події групи, події закладу. Адміністрація створює подію просто із застосунку.
Чат зі швидкими відповідями
Листування з вихователем, відеоповідомлення в стрічці й набір готових фраз для типових ситуацій — батько відповідає одним дотиком, не набираючи текст на ходу.
Новини та галерея
Садок публікує новину з фото, група веде власну фотогалерею за датами. Батькам не треба шукати світлини по чатах.
Опитування
Заклад створює опитування з довільними полями й бачить активні в загальній панелі.
Рахунки зі статусами
Чернетка → до сплати → сплачено, з поверненням назад. У рахунку — період, платник, група, рядки послуг, перенесена заборгованість і підсумок.
Формування за період
Адміністрація обирає місяць — система нараховує всім за послугами, гуртками й харчуванням, лишається перевірити й опублікувати.
Онлайн-оплата MonoPay
Батько сплачує рахунок прямо із застосунку. Реквізити закладу можна скопіювати, якщо зручніше платити вручну.
Звіряння з банком
Транзакції підтягуються з банку і розкладаються на оброблені та невідомі. Невідому бухгалтер зіставляє з рахунком вручну — гроші не губляться між випискою й нарахуванням.
Харчування окремим обліком
Прийоми їжі з розкладом, меню по групах і власний баланс, який поповнюють окремо від щомісячного рахунку.
Звіти з експортом
Зведення по групах і дітях за місяць: баланс, відмічені прийоми їжі, разом присутніх і разом сума. Вивантажується файлом.
Від номера телефона до картки дитини за три екрани
Ніяких реєстрацій із поштою й паролем — батькам потрібен застосунок, а не акаунт.

Знайти садок, подивитись програми, записати на гурток

Все про дитину в одному місці, а не в трьох чатах

Садок цифрами на одному екрані
Головний екран адміністратора — це не меню, а зведення за день: діти присутні, відсутні й ті, кого ще не відмітили; проведені заняття в гуртках і нараховані за них гроші; заповненість місць, новини та активні опитування. Далі з тих самих даних формується рахунок.

Довідники, з яких збирається все інше

Найскладніша частина — не нарахувати, а зійтися з банком
Нарахувати суму легко. Складно зрозуміти, хто з батьків уже заплатив, якщо платіж прийшов із чужим призначенням або без номера рахунку. Тому транзакції з банку підтягуються в застосунок і діляться на оброблені й невідомі — останні бухгалтер зіставляє з рахунком руками.

Окремий облік, бо рахується інакше
Щомісячна послуга коштує однаково незалежно від того, скільки днів дитина ходила. Обід — ні: його рахують за фактом, по відмітках вихователя. Дві різні механіки в одному рядку рахунку не вміщаються, тому харчування живе власним модулем із окремим балансом.

На чому зробили
Flutter дав обидві платформи з одного коду — для продукту, який росте модулями, це економія на кожній наступній зміні, а не лише на першому релізі. Python на сервері тримає ролі, облік і фінансову частину. Найскладніше було не намалювати екрани, а розвести три аудиторії так, щоб кожна бачила свій застосунок. Як цей інтерфейс спроєктовано — у окремому кейсі про дизайн-систему.