История сайта Потребительского гаражного кооператива участок 3-4 началась в конце 2009 года. Я (отец Ильи) к тому времени уже три года проводил работу в роли председателя и энергетика кооператива. Довольно часто приходилось вывешивать объявления и другую информацию для того, чтобы Члены Кооператива были в курсе дел кооператива и решений которые принимали на собраниях.
К тому времени Илья изучил несколько языков программирования и пробовал свои силы в создании простых сайтов размещая их в интернете на бесплатных хостингах. У меня в связи с этим возникла идея разместить в интернете "доску объявлений" кооператива, для того, чтобы каждый Член Кооператива мог дома, в спокойной обстановке, изучить актуальную информацию.
С этой идеей я обратился к Илье и она ему понравилась. Илья в то время уже умел писать простые статические сайты состоящие из одной или нескольких страниц. Он довольно быстро справился с задачей и "доска объявлений" появилась в интернете.
В ходе обсуждения проекта возникали идеи по улучшению сайта. Я как заказчик, администратор и пользователь предлагал, а Илья как программист думал как эту идею осуществить. Так, например, появилась идея разбить страницу на четыре тематических раздела. Разделы могли сворачиваться и разворачиваться по щелчку на заголовке.
Илья с удовольствием занимался совершенствованием сайта. У него к тому времени уже созрела необходимость проверить полученные знания программирования в реальном деле. Дальнейшее развитие сайта стало полигоном для усвоения практических приёмов программирования.
Вскоре возникла идея о размещении на сайте всей имеющейся информации (в основном решений принимаемых на собраниях), которой с течением времени становилось всё больше и больше. Даже мне было уже сложно в ней ориентироваться имея её под рукой, а что говорить о тех Членах Кооператива, которые не смогли прийти на собрание или недавно вступили в кооператив. Но поскольку не хотелось, чтобы информацию для Членов Кооператива читали все гости сайта, возникла необходимость создания механизма авторизации.
Следующая идея заключалась в том, чтобы два из четырех разделов могли прочитать только Члены Кооператива. Это повлекло за собой необходимость решения множества задач, таких как авторизация на сайте, хранение на сайте списка пользователей и их паролей, возможность редактирования списка администратором и так далее. Для осуществления этой возможности пришлось написать сайт на языке программирования PHP, операторы которого выполнялись на стороне сервера на хостинге где лежали файлы сайта. С этого момента сайт стал динамический. Страница при каждом запросе формировалась программно в зависимости от логики заложенной Ильёй в программу формирования страницы.
Авторизация позволила разграничить права на просмотр и редактирование информации. Страница сайта имела три представления: для Гостей, для Членов Кооператива и для Администратора. Появилась административная страница, скрытая от пользователей, которая позволяла администратору редактировать содержание страниц и списка пользователей, закачивать на сервер файлы для возможности скачивания их Членами Кооператива.
Авторизация на сайте только кажется простой функцией. Представьте, что сайтом могут одновременно пользоваться несколько человек с разными правами. Каждому из них надо выдать именно ту страницу, которую он "заказал" и при этом учесть наличие у него необходимых прав на просмотр информации. Илья решил эту задачу при помощи сессий. Каждому посетителю сайта, вернее его браузеру выдаются так называемые куки (от англ. cookie — печенье) представляющие собой фрагмент кода, по которому программа сайта понимает с каким пользователем она имеет дело в данный момент времени. Из соображений безопасности время "жизни" сессии Илья сделал 60 минут, после чего сайт "выбрасывал" пользователя из своей памяти и ему приходилось снова авторизовываться. Думаю, что Илья используя в целом этот подход стремился изучить и применить на практике ООП (объектно-ориентированное программирование).
Шаблон сайта Илья написал простейшим табличным способом, без применения CSS стилей. Шаблон не был адаптирован для просмотра на устройствах с узким экраном (телефонах), но тогда это и не было актуально, так как такие устройства тогда ещё не получили широкого распространения.
Когда основные задуманные функции сайта были написаны и опробованы в действии пришла пора подтянуть дизайн сайта. Поскольку цветовосприятие Ильи было слегка нарушено в области оттенков зелёных и красных цветов, я сам при помощи программы Photoshop подобрал гармоничные цвета шрифтов и фонов - текста и заголовков. Илье я выдал цвета в шестнадцатеричном коде и он расставил их значения в нужных местах. Иконку в виде "птички" нам нарисовал мой брат, он хорошо ориентировался с программе Photoshop и ему не составило труда помочь с этим вопросом.
Был ещё один момент связанный с дизайном. Первоначально фон сайта во всех режимах был белого цвета. Для того, чтобы подчеркнуть тот факт, что пользователь успешно авторизовался на сайте, я попросил Илью сделать так, чтобы фон в гостевом режиме оставался белый, а после авторизации менял цвет на голубой. Это было удобно, так как смена фона сразу бросалась в глаза, особенно в том случае когда у пользователя кончалось время сессии и его "выбрасывало" обратно в "гостевой" режим.
Далее Илья решил вопрос о хранении данных (в первую очередь паролей и списка пользователей) на хостинге в зашифрованном виде. Илья и раньше увлекался шифрованием данных и, конечно, на сайте он не удержался и применил свои знания. Внешне для пользователя и администратора ничего не изменилось, но файлы с данными, которые хранились на сервере уже нельзя было прочитать без специального ключа.
Ещё Илья внедрил на сайте систему сбора статистики посетителей для того, чтобы можно было оценить насколько востребован сайт и его отдельные функции.
Последняя задача которую оставалось решить — зарегистрировать подходящее доменное имя, для того чтобы адрес сайта был по возможности коротким и запоминающимся. Не помню почему, Илья не смог зарегистрировать домен второго уровня в зоне .ru, (наверное цены были большими) и он предложил зарегистрировать домен третьего уровня pgk34.org.ru. Всю работу по регистрации домена и подключению его к сайту расположенному на хостинге Илья проделал самостоятельно. Сложность заключалась в том, что данные для регистрации домена на юридическое лицо приходилось вводить на английском языке, затем проходить проверку и при отрицательном результате повторять процесс. При оплате регистрации домена приходилось оплачивать услугу через банк, заполняя вручную квитанцию реквизитами с огромным количеством цифр (тогда ещё не было платежей по интернету). Итак 8 апреля 2010 года домен pgk34.org.ru был зарегистрирован на кооператив.
Во время очередного приёма взносов я раздал Членам Кооператива сгенерированные для них пароли и сайт заработал в полном объёме. Илья получил от меня как от председателя кооператива вознаграждение за проделанную работу — это наверное была его первая зарплата.
Ещё надо сказать, что Илья последующие пять лет поддерживал проект в рабочем состоянии. Иногда примерно раз в полгода - год сайт приходилось модернизировать, потому, что выходили новые версии языка PHP и новые версии браузеров. Сайт начинал "глючить" и Илье приходилось искать причину и устранять её. Один раз сайт просто исчез из сети. Бесплатный хостинг вдруг стал платным и удалил все бесплатные аккаунты. Хорошо, что я после каждого обновления информации на сайте делал его резевную копию и Илья восстановил сайт на другом хостинге и привязал туда наш домен.
Следующая проблема проявилась в то время, когда Илья был в армии. Вот выдержка из моего письма к нему:
ВТ 20.11.2012 06:24 « ... В Опере х64 не видны иконки справа (всякие там карандашики, плюсики и т. д.). Это ещё раз подтверждает мысль, что надо двигаться в сторону Джумлы. Только теперь наверно руки не дойдут доделать до конца. Если только тебе халтурно взяться когда нибудь. ... Анатолий»
Последнее усовершенствование сайта Илья сделал в октябре 2014 года по моей просьбе. Дело в том, что первоначально имена и пароли пользователей он вводил самостоятельно из файла который я ему предоставил. На странице администратора я мог удалять пользователей и добавлять их, но только в конец списка. Со временем число пользователей идущих в списке не по порядку становилось всё больше и стало неудобно им пользоваться. Я попросил Илью сделать функцию перемещения строки в таблице как это было сделано в списке файлов. За один вечер Илья воплотил более элегантную идею, чем ту, что я предлагал. Он добавил возможность импорта списка пользователей (всех сразу) и заодно возможность вывода этого списка с сайта обратно в файл, то есть его резервирование. Теперь я мог формировать список в программе Excel, как угодно его в ней сортировать а затем экспортировать список в текстовый файл и далее закачивать на сайт. Всё просто и удобно.
Когда Илья покинул этот мир его детище осиротело. Примерно через полгода начались очередные проблемы с авторизацией — сайт не принимал пароли и выдавал ошибку. По коду ошибки я понял, что не срабатывает один из устаревших операторов языка PHP используемый при вводе пароля. Порывшись в интернете я нашёл рекомендации по его замене. Замену пришлось делать в десятке файлов всего примерно в двадцати местах. Сайт заработал, но я сделал для себя вывод, что если случится серьёзная проблема, то мне не хватит квалификации её решить. Дело в том, что Илья не посвящал меня в детали проекта на уровне программных решений. Для того, чтобы разобраться в его коде нужно потратить огромное количество времени.
Очередная проблема не заставила себя ждать и в конце лета 2016 года я обнаружил, что не могу авторизоваться на сайте с рабочего компьютера имеющим выход в интернет через прокси-сервер. Проблему решить не удалось, но я пошёл обходным путём, используя браузер Tor, который шифрует весь исходящий трафик и расшифровывает входящий. Этот случай окончательно убедил меня в том, что программа жива пока за её работой следит программист и в том, что мне нужно решать эту и будущие проблемы кардинально, то есть строить сайт заново, на уровне моего понимания.
Последней каплей стал тот факт, что у хостинга где работает сайт Ильи уже давно недоступна панель управления. В связи с эти невозможно поменять настройки этого сервиса. По всему видно, что этот сервис в один прекрасный момент перестанет работать и тогда опять встанет вопрос о смене хостинга. Предвидя это, я попытался перенести сайт на новый платный хостинг, но получил ещё больше проблем в работе сайта, чем было.
Будущее сайта в том виде в каком его оставил Илья было предопределено — это был лишь вопрос времени. Сам Илья говорил мне, что сайт надо переделывать с учётом современных тенденций: использования шаблона на языках HTML5 и CSS3 с адаптивным дизайном, использования баз данных MySQLi (Илья называл их "мускул") для хранения информации выводимой на страницах сайта, списка пользователей и их паролей и так далее. Но я понимал, что эту огромную работу Илья один не потянет. Не потому, что не сможет, а потому, что это уже будет неоправданно большая трата времени и сил. Илья вырос, у него начиналась своя жизнь, а сайт кооператива выполнил свою функцию — Илья получил практический навык создания сайта с "нуля".
Я конечно глубоко сожалею о том, что сайт сделанный Ильёй не будет со временем использоваться практически. Думаю для программиста по призванию это был бы лучший памятник. В коде сайта остался ход его мыслей, частица его души. Но время имеет непреодолимое свойство разрушать всё чего оно касается. Сайт Ильи ещё какое-то время будет доступен в сети по прямому адресу хостинга pgk34.fatal.ru, пока этот сервис не умрёт окончательно.
Если бы не помощь Ильи, то сайта кооператива не существовало бы ни в каком виде. Не ища лёгких путей он решил все задачи которые возникли на пути строительства сайта. Отдавая ему должное надо сказать, что он доказал мне на практике, что нет ничего невозможного.
Напоследок хочу описать функции которые разработал Илья для этого сайта.
Эпилог
Как то в начале лета 2012 года у меня появился большой перерыв между проектами и в это время я где-то в рекламе узнал о WordPress. Эта система управления содержимым сайта позволяла человеку не вникая в тонкости программного кода создать сайт. Попробовав WordPress в деле я понял что он далёк от совершенства, но по пути я наткнулся на его прямого конкурента Joomla. Этот продукт после практического знакомства с ним оставил только положительные впечатления. Стало ясно, что при помощи этой системы можно создавать сайты, но навалившаяся работа заставила отложить изучение Joomla. Вернулся я к этому вопросу в 2015 году когда приступил к работе над созданием сайта памяти Ильи. Этот проект занял у меня девять месяцев детального изучения Joomla и решения сопутствующих вопросов в свободное от работы время.
Из всего вышесказанного легко понять, почему 19 сентября 2016 года я принял решение о создании нового сайта кооператива на системе Joomla. В этой свободно распространяемой системе, используется код созданный коллективом программистов на добровольной основе. Фактически это набор базовых элементов из которых строится любой сайт. Другими программистами написано множество подключаемых дополнений, распространяемых как платно, так и бесплатно. Дополнения позволяют создать сайт определённой направленности.
Новый сайт я посвящаю памяти его первого создателя — Илье.
Ничто не делается сразу, но то, что должно получиться в результате разработки, надо представлять в начале пути. Обдумывая перспективу построения и развития сайта я не ставил себе невыполнимых задач и грандиозных планов. Первое, что надо было сделать — это повторить фунционал и содержание сайта Ильи. С другой стороны, для плавного перехода на новый сайт, нужно было получить полностью независимый от старого сайта проект.
Первое, что я сделал, это зарегистрировал новое доменное имя pgk34.ru. С одной стороны оно похоже на старое, с другой стороны оно короче и проще. Таким образом удалось убить сразу двух зайцев. При выборе хостинга я основываясь на предыдущем опыте отдал предпочтение платному хостингу с разумными ценами.
Эти два действия позволили строить сайт прямо на месте применения и таким образом избежать проблем при переносе сайта с домашнего компьютера на хостинг.
При оформлении сайта я старался сохранить тот подход, который мы выработали с Ильёй, а именно — простота и лаконичность. Я намеренно использовал лого с сайта Ильи на новом сайте, чтобы он напоминал о первоначальном варианте.
Я намеренно выбрал тот же шаблон сайта, который использовал на сайте памяти Ильи и как выяснилось не зря. При отладке сайта кооператива я нашёл несколько ошибок в шаблоне кооператива и исправил их так же и в шаблоне сайта памяти Ильи. И хотя сайт кооператива напоминает сайт памяти Ильи, у этого решения есть большой плюс — я более углублённо изучаю шаблон и это положительно отражается на обеих сайтах.
Я перенёс информацию с сайта Ильи. Выполнил работы по настройке Joomla под нужды сайта. Установил необходимые расширения.
2 ноября 2016 года разработка сайта закончилась и началось его тестирование.
Сегодня 11 ноября 2016 года исполнилось 1,5 года со дня ухода Ильи. В этот день новый сайт кооператива начал работать и приносить пользу людям. Заходя на сайт мы помним кому он обязан своим появлением. На одной из его страниц опубликована исходная версия этого материала под названием "История сайта".