Показаны сообщения с ярлыком мой журнал. Показать все сообщения
Показаны сообщения с ярлыком мой журнал. Показать все сообщения

пятница, 9 сентября 2011 г.

Редактирование данных журнала

С появлением новых функций в программе разрастается и раздел с инструментами.

Я добавил новый инструмент под названием "Редактор данных журнала":

Редактор позволяет с удобством управлять всеми данными журнала в одном-единственном месте. Со временем в нём будут появляться функции централизованного редактирования колонок, фамилий и оценок. Сейчас он содержит единственную страницу, на которой можно изменить заголовок и описание журнала:

Сам по себе редактор достаточно полезен: не придётся по всей программе искать ту или иную функцию, не нужно будет открывать кучу диалоговых окон для какой-либо правки, - все будет собрано в одном месте.

четверг, 18 августа 2011 г.

Архивы

Совсем скоро начнётся новый учебный год, в связи с чем встаёт вопрос: что делать с журналами прошлых лет?

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

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

В раздел с инструментами добавлена новая функция "Поместить журнал в архив", которая помечает журнал архивным и блокирует возможность её редактирования.



При желании, журнал в архиве всегда можно просмотреть, но полноценный доступ к нему (редактирование, удаление или извлечение из архива) доступен только администраторам.

суббота, 14 мая 2011 г.

Комментарии

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

Комментарии можно изменить (для учителя) или просто посмотреть (для родителя) через контекстное меню отметки:
Прокомментированные отметки помечаются "облачком"

Выбор одноименного пункта инициирует появление диалогового окна комментариев:

Любое диалоговое окно теперь затемняет главное окно приложения. Это и красиво, и полезно, так как заставляет обратить на себя внимание.

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

вторник, 10 мая 2011 г.

С высоты Убунты

Ради интереса, решился посмотреть на "Журнал" из Убунты.

Очень обрадовался, что не пришлось делать вообще никаких правок - все собралось и запустилось так, как если бы я изначально разрабатывал программу здесь. Qt мне нравится всё больше.

Единственное: сбросил стиль приложения на стандартный, благо и он хорош. Планирую менять стиль только для Windows. Вот окно подключения к системе:
Здесь всё идеально.

А не идеально уже дальше. Вот дерево доступных журналов:
Как видно, поплыли кнопки. Так и думал, что фиксированные размеры до добра не доведут.

А надписи нравятся - всё в порядке. Как и таблица журнала:

Недаром читал статьи о кросс-платформенной разработке. Можно взглянуть на диалоговое окно при выходе из программы и несохранённом журнале:
Порядок кнопок изменился автоматически в соответствии с принятыми нормами. Qt не перестаёт радовать!

Настройки сохранились в файле ~/.config/kirik88/journal.conf в приятном глазу формате. Все, как и положено в Линуксе.

Теперь в планах к первой финальной версии причесать интерфейс под Убунту.

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

пятница, 6 мая 2011 г.

Первые недоработки

Пусть разработка еще идёт полным ходом, но проверить и оценить со стороны не терпится. Я отдал промежуточную версию "журнала" в школу и показал программу сторонним людям. Были и восторженные речи, и интерес, но и обнаружились недоработки.

Удивились, что вместо оценки нельзя поставить "н". Таким образом отмечаются отсутствующие. Отметили, что редактировать структуру журнале крайне сложно. Кроме того, появились идеи насчет модернизации - оставление комментариев к оценкам, сдвоенные отметки по сочинениям и другие интересные вещи.

Результат почти всего сказанного можно увидеть сейчас:

Когда добавлял иконку "н"-ки, заодно перерисовал все другие. Теперь они на мой взгляд красивее. Сама же "н" добавляется с помощью контекстного меню вместо флажка или отметки:

Также изменил и принцип построения журнала. Нажатие по колонке вызывает подобное меню:
Отныне именно здесь все возможности по управлению колонками. При этом новая колонка будет добавлена следом за текущей. Подобное меню появляется и для записей.

Кстати, вместо названия "запись" теперь везде фигурирует "ученик". Так логичнее.

Впереди еще много работы, которая в конце концов приведёт программу к первой стабильной версии.

вторник, 3 мая 2011 г.

Безопасное удаление и создание

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

Я добавил в таблицу с журналами поле "удалён", которое регулирует отображением журнала для учителей. Это своего рода "корзина" для журналов.

Удалённый журнал пропадает из дерева доступных журналов, но при этом остается у администраторов. Просто помечается другой иконкой:
Удалённый журнал "Класс 1 «А»" помечен другой иконкой
Открыв и сохранив, журнал возвращается на прежнее место, а метка "удалён" - снимается. Если же удалённый журнал удалить снова - он пропадёт навсегда.

Создать новый журнал можно прямо из дерева журналов, нажав кнопку "Создать". При этом откроется пустой журнал, не содержащий ни колонок ни записей. В будущем планирую автоматизировать процесс заполнения нового журнала - например, скопировать учеников из другого журнала, или заполнить числа соответственно календарю.

Инструменты

Ради экономии свободного места некоторые функции перенёс в специальный раздел "инструменты", который открывается при нажатии на одноимённую кнопку:
Пока здесь можно обновить журнал (отклонить изменения), удалить. Функции импорта и экспорта нужны для создания резервных копий журналов.

Со временем я буду добавлять в этот список новые инструменты. Например, удобный контроль над колонками и записями. Но это в будущем.

Сохранение и "умные" кнопки

Любые изменения в журнале, будь то новая оценка или колонка, должны быть сохранены на сервер. Это можно сделать, нажав кнопку "Сохранить" на панели инструментов.

Я придумал способ наглядного оповещения о необходимости в сохранении. Так меняется кнопка "Сохранить" при изменении журнала:
Также заголовок помечается "звёздочкой":

Другой способ сохранить журнал - просто закрыть программу. В таком случае учителю напомнят, что журнал требует сохранения:
Кнопки в диалоговом окне отличаются от стандартных "да/нет/отмена". Не читая текст самого сообщения (что происходит почти всегда), можно с первого взгляда понять, к чему приведёт нажатие.

Например, так выглядят кнопки, если пользователь собирается удалить журнал:

суббота, 30 апреля 2011 г.

Открытие!

Этот пост знаменуется открытием сайта журнала!

На начальном этапе сайт целиком и полностью технический и служит только в качестве серверной стороны журнала. При этом почти никакого "человеческого" вида он не имеет, а представляет собой просто набор скриптов.

Не обошлось и без некоторых больших и не очень правок. Многие скрипты ни в какую не хотели подключать в себя сторонние, пришлось изменить синтаксис. Из большого: отказался от PostgreSQL в угоду MySQL. Сделать это было необходимо, так как тестовая площадка, на которой расположен сайт, крутит на себе сервис только данной СУБД, и городить огороды с использованием других машин не хотелось.

В самом "журнале" теперь можно менять колонки и записи. Доступ к данным функциям открывается в контекстном меню журнала.
Колонка может быть одним из трёх типов: отметкой, флажком или произвольным текстом. Максимальный балл доступ только для отметок.


В планах на следующей неделе отдать журнал в школу. Продолжать разработку буду прям в ходе эксперимента. Заодно журнал и тестирование пройдет :)

четверг, 21 апреля 2011 г.

Отметки

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

Сейчас окно журнала выглядит так:
Двойное нажатие по ячейке с отметкой инициирует появление диалогового окна выставления отметки, которое автоматически строится на основе максимального балла. Так оно выглядит при максимуме в 5 баллов:
А так при редактировании значения 50-ти балльной колонки:
Изображения отметок для простоты повторяются
Кнопка с изображением текущей выставленной отметки выглядит нажатой. Отсюда же можно убрать отметку. Убрать отметку также можно и из окна с самим журналом, нажав клавишу Backspace, Delete или Del (на дополнительной клавиатуре).

среда, 20 апреля 2011 г.

Первый взгляд

Что видит пользователь при первом запуске программы? Зачастую это уже полноценный интерфейс программы с кнопочками, менюшками и другими элементами.

Что бы я хотел, чтобы видел учитель при первом запуске? Что программа в первую очередь проста и интуитивно понятна. Вот что он увидит при запуске "Журнала":
Проще некуда. Достаточно ввести свои имя и пароль и нажать кнопку "Войти в систему". Если есть затруднения, всякие сомнения развеет поясняющая надпись над полями ввода.

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

Всё просто и понятно. И так везде.

Об Open Source'е

Сама идея об открытом и свободном ПО мне настолько понравилась, что я решил разрабатывать программу именно под эгидой Open Source.

Сама Qt всеми силами располагает именно к этому - среда разработки свободная, с помощью неё можно создавать все что угодно и распространять также.

Иконки и изображения я нахожу на сайте IconFinder и использую их в "Журнале". Разумеется, при распространении программы я отмечу авторов иконок как того требует лицензия, под которой они предоставляются.

В голове идея разработать "Журнал" исключительно свободными и бесплатными средствами, и распространять его также.

Какая мне с этого будет выгода? В случае, если программой все-таки заинтересуются, её установкой, настройкой, поддержкой и обучением пользователей заниматься буду я. А это уже может оплачиваться.

Разработка журнала

Прошло уже две недели с момента моей первой записи об электронном журнале, и есть кое-какие результаты.

Разработку программы начал в среде Qt, но в "окошках". Причин несколько: во-первых, программой будут пользоваться в Windows, а значит именно эта ОС приоритетная. Кроме того, времени до летних каникул осталось немного, и пока некогда заниматься тестированием программы в нескольких операционках. Во-вторых, у меня уже есть готовый к работе локальный веб-сервер Denwer, в Убунте же предстояло все это настраивать и разбираться. И в третьих, веду разработку также и в обеденное время на работе, а там только MS. Но стараюсь не использовать зависящих от ОС специфичных функций или путей, так что миграция, надеюсь, в будущем не принесет проблем.

Среда Qt очень понравилась. Здесь я получаю опыт в разработке приложений на C++, а также изучаю саму среду. Радует, что она работает достаточно шустро и хорошо развивается. Сам процесс разработки несколько иной, чем я до этого привык в Delphi, - здесь и прозрачная работа с ресурсами, и встроенная поддержка UTF-8, и средства перевода приложения на другие языки, и анимационные эффекты, и легкость в оформлении окон (в том числе и на основе скинов), и еще много интересного. Разумеется, за столь короткий срок трудно составить полноценное впечатление о среде разработки, но на данный момент нравится и разработка только в удовольствие.

За это время я немного модифицировал серверную часть - убрал лишний код, подправил логику ответов сервера за запросы, избавился от лишних полей в БД. Сама система стала чуть быстрее и дружелюбнее, возвращаются сообщения об ошибках. Программа теперь принимает от сервера ответ только в xml-виде, где его должным образом и обрабатывает.

Сама же программа изменился существенно по сравнению с её аналогом, который я писал на Delphi. Изначально хотелось чего-нибудь более удобного, понятного, приятного. В итоге интерфейс был пересмотрен в сторону минималистичности:
Дерево журналов спрятано за кнопкой "Журналы", что позволило освободить немного места под сам журнал. Панель инструментов теперь одна - и находится она слева. Мысль располагать элементы управления слева сейчас все более популярна благодаря популярности широкоформатных мониторов. Сама же панель инструментов теперь снабжена большими пиктограммами и подписями. Нажатия на кнопки меняют вид главного окна или производят вполне ожидаемые действия.

Я описал лишь вид программы при загруженном журнале. Пост получился объемным, а объемные посты читать трудно, поэтому о всяком остальном расскажу позже.

среда, 6 апреля 2011 г.

Мысль об электронном журнале

Жаль, что написанной и работоспособной системой не пользуются. Признаю, что в реальности её никто и не использовал, и неизвестно, насколько она действительно удобная и стоит ли вообще по этому поводу беспокоиться.

Но интерес-интересом, а проверить-то хочется!

Здесь я буду писать о том, как проходит (или не проходит) эксперимент по продвижению моего электронного журнала в одной областной школе. Благо есть где, и есть единомышленники.
На данный момент (равно как и на момент защиты диплома) уже есть готовая написанная серверная сторона системы (набор php-скриптов и база на PostgreSQL). На клиентской стороне есть разработанное Windows-приложение (на Delphi) с полноценным функционалом.

В планах вернуться к разработке: установить серверную часть на Ubuntu, протестировать её работу. Также хотелось бы разработать клиентское приложение в кросс-платформенной среде (смотрю в сторону Qt). По возможности буду вести разработку в Убунте, проверяя работу и в "окошках".

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

Подобные системы уже есть, и их много! Но почему же они повсеместно не используются? Не нужны, или о них просто не задумывались? А что если подсказать, как это круто? 

И действительно ли это круто: отказаться от "бумаги"? Гладишь, что-то из этого может получиться стоящее :)