Хочу поделиться опытом эволюции использования систем баз данных в языковой онлайн школе GLASHA.

Школа образовалась в 2012 году и в начале работы в ней обучалось все 12 студентов, так что никаких проблем с управлением расписанием и оплатами не было. Однако по мере роста, развития и появления новых студентов остро встал вопрос о выборе системы базы данных.

Задача состояла в том, чтобы сделать:

  1. справочник по всем клиентам (студентам), сохраняя их ФИО, часовой пояс, контактные данные и примечания;
  2. аналогичный список преподавателей такой же информацией о них;
  3. сформировать расписание преподавателей в этой же системе;
  4. сделать автоматическую генерацию журнала занятий;

    image
  5. отслеживать историю занятий;

    image
  6. учёт финансов как для списания с бюджетов учеников, так и для оплаты учителям;

    image
  7. схему отслеживание должников среди студентов;
  8. записную книжку для заметок о каких то нюансах уроков с всплывающими напоминалками.

Как ни странно, всю эту сложную отчетность удалось сделать с помощью Excel.

Более того, электронные таблицы позволили соединять бюджеты учеников в один (если занимаются члены одной семьи), соединять бюджеты учителей (если они представляют школы партнеров), вводить разные коэффициенты для оплат преподавателям, выставлять разные прайсы для учеников, отслеживать бонусы и штрафы операторов скайп школы, смотреть аналитику по оплатам и урокам.

Однако, когда число учеников увеличилось до двухсот человек, а количество преподавателей до 75, то этот функционал, сделанный на грани возможностей Excel, перестал быть удобным.

Во — первых, количество отчетов стало недостаточным для системы управления, во — вторых, оффлайн версия требовала регулярной чистки для сохранения высокой скорости работы. Кроме этого, потребовалась интеграция с ботами для проверки свободных слотов у преподавателей, проверки баланса по запросу студентов, отправки смс об отмене уроков и т.д.

И со временем мы создали веб-приложение GLASHA, по сути, это ERP система, которая позволяет планировать загрузку учителей, вести персональные расписания занятий студентов, а также вести учет финансов.благодаря которому стали доступны разные формы отчетов, отпала необходимость в ежемесячной коррекции базы, появилась возможность сделать личный кабинет клиента и загружать туда домашнее задание, тесты для проверки знаний, привязать расписание к часовому поясу каждого студента и т.д.

image

Я думаю, что такая система планирования была бы полезна для оптимизации в любом виде бизнеса.

Комментарии (18)


  1. McKinseyBA
    22.07.2019 16:44

    Однако, когда число учеников увеличилось до двухсот человек, а количество преподавателей до 75, то этот функционал, сделанный на грани возможностей Excel, перестал быть удобным.

    Прощу прощения, но о какой грани возможностей Excel идет речь на ваших объемах данных? Даже использование макросов (кстати зачем?) не объясняет. Судя по скриншоту у вас в файле кроме сводных таблиц с вычисляемыми полями и нет ничего сложного. Выкидывайте макросы (написанные возможно студентами или в режиме записи) и все будет летать.

    Да и кликбейтные заголовки со ссылкой на страницу wiki о том, что такое ERP — не уровень Хабра. Хотя бы в комментариях расскажите, что под капотом скриншота вашего велосипеда ERP (а в вашем случае лишь кусочка ERP — CRM) и чем она отличается от тысяч других.


    1. oakal
      22.07.2019 18:25

      Люди решили свою конкретную задачу и делятся своим успехом. Сделать на базе Excel работоспособную адаптируемую базу — безусловно успех. То, что эта система — одна из многих ей подобных, совершенно естественно.


      1. McKinseyBA
        22.07.2019 19:36

        Тема успеха скриншотом не раскрыта.


        1. dslogos
          23.07.2019 21:18
          +1

          Успех необязательно раскрывать скриншотом ;) Его можно описать словами: было создано специализированное ПО, отвечающее первоначальным требованиям, с минимальными затратами на разработку. Под капотом ERP системы (именно ERP, так как разработка позволяет управлять ресурсами предприятия: преподавателями и финансами, а не просто CRM система для работы с клиентами — студентами) Django веб-фреймворк. Немного подробностей в моем комментарии ниже.


          1. McKinseyBA
            24.07.2019 12:55

            Вот за тот Ваш комментарий плюс. Им можно заменить большую часть статьи. Все-таки это Хабр, а не Facebook)


            1. dslogos
              24.07.2019 14:34

              Спасибо! :))) Можно сделать поблажку автору статьи, так как он не технический специалист, а заказчик. И делится своим успехом с такими же владельцами бизнеса, кто находится в поиске недорогих готовых решений ;)


    1. ketiiiii Автор
      23.07.2019 09:24

      Нам нравится, как работает эта система. Очень помогает контролировать даже самые незначительные нюансы, типа подкрашивания ячеек, если у студента остается на счету оплата только за один урок или введение коэффициентов для оплаты учителям по разным прайсам. Я понимаю, что здесь собрались продвинутые люди, но, я думаю, что начинающим может помочь эта статья, так как сама искала (и не находила) таких примеров, когда они были нужны


    1. dslogos
      23.07.2019 21:00
      +1

      В основном макросы используются для автоматического заполнения журнала занятий. Оператор с учетом свободного времени преподавателя и пожеланий студента составляет недельное расписание. Задача для макроса — сгенерировать на основании этих расписаний журнал для всей школы (по всем преподавателям и студентам). Генерация происходит по запросу оператора и делается вперед на несколько недель, чтобы можно было заранее фиксировать пожелания студентов или делать какие-то пометки на конкретный день. Макросы написаны не в режиме записи :), а на VBA. К сожалению, с ростом количества уроков на неделе требовалось все больше и больше время на генерацию журнала (доходило до 2-3 минут). Можно было попробовать оптимизировать алгоритм и сократить данное время, но решили, что лучше перейти на новую платформу, так как потребности в функционале значительно выросли. Вторая существенная причина для отказа от Excel — это валидация входных данных. И тут речь идет не только о типах данных, но и о сложных вычислениях и проверках при вводе. В Excel на VBA это сделать сложнее, нежели написать на Python. Третья причина: Excel — это все же электронные таблицы, а не база данных ;) С задачей по подсчету бюджета студентов, хранению данных по преподавателям и студентам, созданию сводных отчетов, Excel справляется на ура. И предела по объему данных мы не достигли. Но с задачей поиска, фильтрации, по работе с различными выборками, Excel сильно уступает любой СУБД. Поэтому и было принято решение создать веб-приложение, где в качестве БД использовать PostgreSQL. В качестве веб-фреймворка был выбран Django, написанный на Python, так как в нем реализована по умолчанию административная панель. Основная задача была подобрать библиотеку, которая бы позволяла кастомизировать данную панель. И мы ее нашли ;)


  1. dss_kalika
    22.07.2019 16:59

    1. Обычно, такие системы у предприятий, которые им нужны уже есть.
    2. Я такие системы писал ещё 15 лет назад на делфе с аксессом…
    3. Ну и рассказать какой функционал и как реализован (и чем хорош) в вашей системе тоже было бы неплохо.


    1. ketiiiii Автор
      23.07.2019 09:18

      Я не знала про такие системы перед началом своей деятельности), все что предлагали стоило очень дорого (от 7.000 долларов).


      1. dss_kalika
        23.07.2019 11:25

        =) Ну тогда хоть покажите свой продукт или расскажите что и как в нём интересно или полезно работает.

        А насчёт того что не видели… возьмите любой вуз или школы через одну — они именно такими вещами и оперируют. Студии по обучению танцам, фитнесу или чему угодно ещё. =)


        1. dslogos
          23.07.2019 21:08

          Вы глубоко заблуждаетесь, считая, что любой ВУЗ и тем более школа имеют удобное ПО для составления хотя бы расписания. Раскрою Вам секрет — многие до сих пор делают это на бумаге. Я имею отношение к очень известному Московскому Техническому ВУЗу. Пару лет назад была заказана разработка программного обеспечения для составления расписания с учетом занятости аудиторий. Разработка велась несколько месяцев крупной компанией. В итоге сотрудники отдела по составлению расписания так и не смогли ей пользоваться. Несколько миллионов рублей ушли в некуда. Поэтому многие до сих пор в основном используют Excel, даже без макросов. Студии по танцам и фитнесу, как Вы написали, имеют другую специфику. Там проще составить расписание, так как есть ограничения по помещениям и преподавателям, и занятия проходят в группах. Скайп школа Glasha в основном занимается организацией индивидуальных занятий, и задача — составить большое количество уроков для немаленького количества студентов с персональным преподавателем, живущем в другом часовом поясе — гораздо сложнее.


          1. dss_kalika
            24.07.2019 11:06

            Ну что ж.
            Звучит как вызов)


  1. staticlab
    22.07.2019 19:09

    https://habr.com/ru/post/446378/

    Разработка заняла у вас всего 3-4 месяца?


    1. ketiiiii Автор
      23.07.2019 09:19

      Первая версия месяц, переход на веб приложение 2 месяца


    1. dslogos
      23.07.2019 21:23
      +1

      Основная сложность в разработке — это составление грамотного ТЗ. Заказчику сложно сразу сформулировать все требования к ПО. Поэтому важно разработчику вникнуть во все бизнес процессы и уже совместно с заказчиком составить ТЗ, предложив оптимизацию в процессах. Наверное, Вы уже слышали, что написанное грамотное ТЗ — это уже половина разработки ;)


  1. mgramin
    23.07.2019 08:38

    Глаша работает над экселем? Или там БД. Если да, то какая?


    1. dslogos
      23.07.2019 21:10

      Glasha раньше использовала Excel, а теперь специализированное ПО, написанное на языке Python (Django web framework), где в качестве БД используется PostgreSQL.