Как быстро создать журнал учета присутствующих

    Бывают такие ситуации когда на собрании людей, необходимо быстро составить список присутствующих с указанием фамилии имени и отчества. Это могут быть лекции или семинары, митапы и даже собрания жильцов ТСЖ. Очень часто мы не помним их фамилии или только знакомимся. В таких случаях берут лист бумаги и запускают его, что называется в массы, с просьбой записаться. Возникла такая задача сделать журнал. Для большей конкретики — необходимо записать участников семинара, которые пришли на него в первый раз и регистрировать в течение всего курса обучения. Фио участников не известны заранее, поэтому список мы не можем подготовить заранее.



    В журнале указывается список людей по вертикали и даты по горизонтали. Причем если человек был на первом занятии но отсутствовал на последующих, то он автоматически заносится в журнал и делается пометка H

    На мой взгляд самое «вкусное» в этой задаче создать графическую форму, при этом особо не заморачиваться. Что касается базы данных, то для хорошего программиста это задача на 5 минут.

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

    Поэтому будем вносить информацию в клетку журнала только в тот момент если эта информация действительно возникает. Допустим у вас есть веб приложение в котором реализована форма ввода



    После того как участник заполняет свои данные и нажимает кнопку ЗАРЕГИСТРИРОВАТЬСЯ заносим данные в в json файл

    [
    {"Name":"Ivanov", "Date":"01.01.2019", "grade": 1}
    {"Name":"Petrov", "Date":"01.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"02.01.2019", "grade": 1}
    {"Name":"Petrov", "Date":"03.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"06.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"07.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"08.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"09.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"10.01.2019", "grade": 1}
    {"Name":"Ivanov", "Date":"12.01.2019", "grade": 1}
    {"Name":"Maksimova", "Date":"08.01.2019", "grade": 1}
    {"Name":"Maksimova", "Date":"09.01.2019", "grade": 1}
    {"Name":"Maksimovav", "Date":"10.01.2019", "grade": 1}
    {"Name":"Maksimova", "Date":"13.01.2019", "grade": 1}
    {"Name":"Semenov", "Date":"01.02.2019", "grade": 1}
    {"Name":"Maksimova", "Date":"02.01.2019", "grade": 1}
    ]
    

    Автоматически добавляем поле с датой когда кнопка была нажата и полем grade которое означает отметку, например от 2-5 если это оценка или 1 если это отметка присутствия на семинаре. Если вы хотите ставить колы своим ученикам :) то тогда вместо единицы можно использовать -1. В рассматриваем случае остановимся на 1, тк это удобно использовать для подсчета общего количества участников семинара.

    Далее я воспользуюсь программой FastReport для построения отчета, его можно скачать по ссылке.

    Сам отчет в редакторе FastReport Designer выглядит так



    Для его построения используется компонент МАТРИЦА в который с помощью нескольких кликов заносятся 2 поля Name по вертикали Date по горизонта. Поле grade заносим в ячейку.

    Для того чтобы журнал отражался в привычной форме добавляем несложный скрипт



    действие которого направлено на то, чтобы отражать отсутствующих в привычной форме с пометкой H. Запускаем отчет



    Времени затрачено не много, а результат очень качественный. Данный отчет автоматически переносится на следующую страницу что очень удобно для больших ведомостей и заботится об этом не нужно — это программа делает сама. Всем рекомендую пользоваться подобными отчетам для автоматизации повседневных процессов.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 31

      +6
      Я сейчас дико извиняюсь и очень стараюсь не съёрничать, но что вы хотели этой статьёй рассказать?

      С технической точки зрения вся описываемая вами Америка открыта в 1492 году (ещё и в одном поле у вас две сущности).

      С менеджерской точки зрения есть Excel в MS Office Online 365 или как оно там называется.
        0

        С менеджерской точки зрения есть Google Forms, единственная задача которого — заполнять список.

          –1
          Если вы пустите всех ваших студентов в ваш личный кабинет пожалуйста. А я не хочу туда ни кого пускать. Я сделаю сайт в одну страничку, реализацию которого с технической точки зрения даже не хочу вам приводить и у меня будет журнал в который студенты сами запишутся, а вы будите щурить глаза и тратить время чтобы по вашему экселю вазить и искать каждого студента, я не говорю уже о том что новая группа сама у меня запишется а вы будите сами эксель заполнять.
            0

            Google Forms как раз и сделан, чтобы не пускать всех в свой личный кабинет, а просто скинуть всем желающим ссылку на готовую публичную страничку, которая хостится на Гугле и которую сможет сделать даже человек, не разбирающийся в программировании вообще. Понимаете, это тот инструмент, который специально был сделан для задач, подобным вашей.


            И более того, даже в Google Spreadsheets можно настроить доступ по ссылке с редактированием только для одного конкретного документа. И нажатием одной кнопки этот доступ так же отобрать. Кстати и для старосты курса, если ему нужно вести свой журнал посещений, видеть сразу весь список будет удобно.

              0
              Замечание очень по существу. Мне даже нравится такой подход, а как потом распечатать в виде журнала фишка то в этом. Некоторые учебные заведения досих пор живут закопанные дремучими бумажками
                0

                Что мешает сделать отчёт из Spreadsheet? Как минимум можно доработать оформление листа, в которые будут приходить данные из формы. Google Docs, также как MS Office, позволяет подключать в документ таблицы из Spreadsheets. Также можно использовать какое-нибудь расширение для отчётов. Навскидку, нашёл такое https://gsuite.google.com/marketplace/app/document_studio/429444628321

                  0
                  Мне нравится! Если бы ничего печатать не нужно было так и сделал но мне проще эту печатную форму в ФР настроить особенно когда ее нужно подогнать под требование учебного заведения. Журналы ведь никто не отменял))). ФР хорошо переносит на новые страницы за пределы листа как вправо так и влево. И офис классно только в ФР это бесплатно в демке работает, а у меня мак и лицензионного офиса нет + это возится с ключами, API и тп экспортом в Word — Хорошая идея если бы за это лимон заплатили я бы аж стучал по клавиатуре и вас позвал на проет
          0
          Если вы пустите всех ваших студентов в ваш личный кабинет пожалуйста. А я не хочу туда ни кого пускать. Я сделаю сайт в одну страничку, реализацию которого с технической точки зрения даже не хочу вам приводить и у меня будет журнал в который студенты сами запишутся, а вы будите щурить глаза и тратить время чтобы по вашему экселю вазить и искать каждого студента, я не говорю уже о том что новая группа сама у меня запишется а вы будите сами эксель заполнять.
            0
            Открываем доступ к Excel на первой поре, студенты сами себя вносят. Дальше закрываем доступ на редактирование, оставляем только на просмотр.

            Искать никого не надо, один раз отсортировать по алфавиту и никаких проблем с вылавливанием студентов нет. Всяко проще один раз преподу плюсик поставить, чем вводить ФИО каждый раз. Первую колонку с ФИО можно запинить.

            А если вы хотите отдать «на аутсорс» студентам чтобы они сами заполняли о себе посещаемость — вы вообще не понимаете с чем работаете, но при этом уже делаете какие-то действия по разработке решения. Сначала надо проанализировать проблему, а вы это не сделали (в начале статьи у вас обычная универская вода), а уже только потом на основе проблемы искать максимально простое решение.

            И вообще ваш ответ на критику — вы диплом также перед дипломной комиссией защищать будете?
              0
              Открываем доступ к Excel — А у меня студенты открывают сайт на телефонах и к концу пары все заполнено без моего участия. А Пар 10 в день…

              Это простая задача уничтожения моей персональной рутины.
                0
                Окей, как вы будете решать проблему, что я, студент Иванов Пётр Сидорович, не пришёл к вам на пару, но зашёл к вам на сайт где-то за минуту до конца пары и отметился, что я был?
                  0
                  Во-первых это считается что был. Во вторых время зафиксировано. В Третьих это развитие задачи и на этот случай посадка может закрываться как на самолет (одной кнопкой страница делается не активной)
                    +1
                    А если я пришёл и забыл отметиться, а посадка на самолёт закрыта? Ну вот запара в голове у меня после трёх полуторачасовых пар, что делать тогда? Фактически-то я присутствовал.

                    Или другой момент, как быть если я при вводе опечатался и ввёл не Иванов Пётр Сидорович, а Иканов Пётр Сидорович, как эту проблему решать?

                    Или третий момент, у меня рамсы с одногруппником, и он ввёл меня в журнал учёта, а меня нет. И меня вызывают решать задачу, а меня нет, получается что я соврал преподавателю. Как решать такую проблему? Даже не рамсы, а просто как бороться с флудом? Как ограничивать доступ только к своей группе, чтобы никто посторонний не мог ничего вписать?

                    update1:
                    Или если студент телефон дома оставил? Или разрядился? Или кнопочный телефон, что редкость, но всё же далеко не нулевая.
                      0
                      Решал сходную задачу, минимальный код на питоне (bottle), веб-сайт запускается на ноутбуке, коннектится к внутри университетскому вайфаю.
                      Студентам сообщается ип адрес, куда заходить.
                      Бонус — студент только из университета способен отметиться, плюс запись ип адреса, с которого регистрировались — можно посмотреть аномалии.
                      После переклички можно остановить сервер

                      Отсутствие возможности у студента записаться решается с помощью соседа, у которого возможность есть. Если вся аудитория пришла без средств связи, электричества в здании нет, ноутбук разрядился, то откатываемся на ручку с бумажкой.

                      Защиты от человеческой ошибки при вводе имени нет, но есть ручной фильтр — «люди, не состоящие в ранее составленном списке», там уже вручную поправить можно.

                      Единичная не-запись кардинальным образом на итоговые баллы не влияет.
                        0
                        А теперь возвращаемся к тому, что говорил автор: «Времени затрачено не много, а результат очень качественный» и «Это простая задача уничтожения моей персональной рутины».

                        У задачи, если её копнуть, очень много подводных камней, каждый из которых нужно проанализировать, продумать решение. Даже в вашей реализации есть подводные камни как «студент только из универа способен отметиться» — я могу просто пойти в столовку при универе и чилить в телефоне, оставаясь при этом в локальной сети универа.

                        А ещё и отдельно выделять IP. Это ведь надо учитывать время пары, верно, чтобы абы кто не записался? Ещё расходы на доработку системы.

                        И отсюда вопрос: а стоит ли вся овчинка выделки и стольких заморочей, чтобы всю работу перевести, так сказать, с сервера на клиента? А клиенту мы доверять не можем, вот и делаем кучу-прекучу проверок.

                        В то время как мой изначально предложенный вариант с Excel максимально лишён каких-то проблем, а уж тем более вышеперечисленных. Да, надо тратить время преподавателя, но это меньшее зло, кмк, чем решать все вышеперечисленные проблемы и пытаться справиться с абьзом системы от студентов.

                        Или, если решать учёт посещаемости студентами занятий модно-молодёжно, то я бы пошёл совершенно иным путём.

                        У всех студентов есть RFID-пропуска (по крайней мере в моём универе в глубинке провинции в конце нулевых уже было). Берём малинку и считыватель, ставим около входа в кабинет, студенты заходят на пару и прикладывают пропуск к малинке.

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

                        И с RFID-пропусками мы решим и проблему преподавателя, что ему не надо вообще вести учёт посещаемости, и студентам не будем добавлять головной боли только потому что кому-то лень вести учёт посещаемости, хотя это вроде как является рабочей обязанностью (могу ошибаться про рабочую обязанность).
                          0
                          Иногда студенты отвечают на чужую фамилию, за друга. IP не нужно, добавляется рпасписание преподователя и группа автоматом определяется-RFID это 666 но главное не эффективно-тогда уж FaceID и AI
                            0
                            Что значит «RFID это 666»?

                            И это вполне эффективно, если вы не в курсе, то на многих работах учётов посещаемости работниками работы идёт именно по пропускам с RFID, или что там сейчас в 2019-ом есть.

                            И студент не сможет «ответить за чужую фамилию», а именно проставить на входе в аудиторию свой пропуск и пропуск друга, т.к. для этого ему придётся на входе в универ через турникеты прочекать свой пропуск и пропуск друга (а простым запросом в БД можно легко найти человека, который в универ не приходил, но почему-то отметился в аудитории), а это уже будет видно и на камере, и вахтёр тоже увидит.

                            Так что тема с RFID полностью всё автоматизирует и не надо напрягать студентов. Правда после защиты и внедрения такого дипломного проекта для универа я бы уехал из города, чтобы меня не поймали на улице, но это уже другой разговор.
                              0
                              Почитайте, пожалуйста, в вики ru.wikipedia.org/wiki/RFID
                              Кстати если ходить в службу безопасности за этими данными после каждой лекции или даже 1 раз в день — расскажите потом что они вам скажут. В моем варианте на оборудование 0 рублей в вашем администрирование пропусков их перепрошивка — ну подсчитайте разницу. Но если бы УкрГазпром выдал под это миллион рублей я бы вас пригласил на разработку ТЗ чтоб подороже стало. Учебные заведения типа школ к сожалению не могут тратить такие средства (на каждую аудиторию) на опиум для программистов
                                0
                                Что почитайте? Если вы не в состоянии выразить свою мысль или вам просто религия не позволяет использовать RFID, то так и скажите.

                                Зачем ходить? Вы в курсе такого термина как «Выгрузка», и не надо никуда ходить, если уж лично вам каждый день непонятно для чего нужно каждый день знать кто из студентов был, а кто не был.

                                Опять же моё решение вполне расширяемо и единообразно для любых учебных заведений, хоть школ, хоть университетов, а выдача денег на всё это дело — другой вопрос, если надо помимо универа ещё и школу подключать, то имеет смысл делегировать вопрос денег на более высокий уровень.
                                  0
                                  Мой начальник службы безопасности сказал пошли его *** данных не дам эта система не для этого. Где мне взять выгрузку?
                                    0
                                    Какая система не для этого? Мы к моменту прихода к начальнику службы безопасности уже полностью написали и внедрили систему учёта посещаемости студентами занятий.

                                    Нам даже ходить никуда не надо, просто в ЛК преподавателя делаем выгрузку за определённый день с чистыми данными: дата, группа, ФИО студента.
                                      0
                                      Сразу видно что вы в вузе не работаете, журнал это документ строгой отчетности — первичка. По нему платят зарплату его нужно вовремя заполнять — на уроке, самый крайний случай на перемене сразу после урока. А звонок звенит его ждет уже другой преподаватель. Очень много хороших рассуждений, за большие деньги и оторванных от реальности (применительно к нашему учебному заведению), к сожалению. Рассказывать как корабли бороздят космическое пространство очень легко, особенно понравилось: Пусть они (те кто сверху) выделят деньги, я с вами полностью согласен, ПУСТЬ!
                                        0
                                        журнал это документ строгой отчетности

                                        нет

                                          0
                                          Журналы проверяют вышестоящие органы! Если туда не записать часы зарплату не начислят.
                                            0
                                            ДА это первичка — по ней составляется ведомость и передается в бухгалтерию — в журнале подпись и количество часов — сфоткаю приложу вам сюда фото! теоретикам
                                            0
                                            То есть вместо того, чтобы сразу заполнить журнал, который в любом случае вам заполнять надо и тратить на это время, вы вместо этого дополнительно делаете лишнюю работу, чтобы потом по результатам этой работы заполнить тот же самый журнал.

                                            Логика уровня Б, вопросов к вам больше не имею.
                                              0
                                              Логика нормально на лекции время тратить на это жалко, поэтому на перемене это делают.
                                0
                                Тоже решал подобную задачу, но с помощью генератора qr-кодов.
                                Отличие в том, что максимальное чисто присутствующих было известно заранее и ссылка, кодирующаяся в qr, генерилась на основе этого количества и времени и жила до конца лекции. Подводных камней миллион, но в моём случае это решала необходимую задачу.
                                  0
                                  Спасибо вам за отзыв, а то некоторые думают, что задача никому не нужна. С QR — Кодом можно поступить так: выдать его на проектор, а в него зашить ссылку на страничку регистрации. Но ведь тогда смогут переслать его друзьям, которые не на лекции?
                                0
                                Не отметился пишешь в чрупповой чат
                      0
                      И MS Forms. Но тут же очевидно учебная задача.

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое