Архив рубрики: Мои проекты

Как делался debo.ru на Yii Очень кратко =)

debo.ru

debo.ru

Был у меня давно вот такой вот проект http://debo.ru/ — каталог гостиниц и отелей. Время его разработки теперь вспоминается как страшный сон. Не буду вдаваться в подробности из-за чего так произошло, но было что-то невообразимое (честно говоря, я сам так и не понял из-за чего так вышло).

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

Итак http://debo.ru/

Продолжение следует =)

Как я делал pechat-noginsk.ru

pechat-noginsk.ru

pechat-noginsk.ru

Продолжаю рассказ о проектах и сайтах, которые мне приходилось делать.

Первой была заметка о каталоге объектов недвижимости http://www.buyrealty.su/.

Сегодня речь пойдет о сайте для заказа печати фотографийhttp://pechat-noginsk.ru/

В один прекрасный день я получил сообщение на моем круге приблизительно следующего содержания:

«Андрей, нам необходим специалист для разработки программы приема заказов фото печати через интернет…»

После некоторой переписки выяснилось, что заказчику нужна именно программа, т.е. реальное десктопное приложение. Я естественно отказался, так как писать десктоп-приложения — это не моя специализация. Однако в своем «прощальном» письме все же предложил вместо приложения реализовать сайт/портал для приема этих самых заказов. Через некоторое время мне ответили согласием, но с одной оговоркой, которая касалась бюджета. Заказчик хотел опробовать наш местный рынок и посмотреть пойдут ли вообще эти услуги. В связи с этим бюджет был весьма ограничен, более того от услуг дизайнера/верстальщика тоже решили отказаться. Как и большинство своих проектов, этот проект я решил делать на фреймворке Yii, который активно изучал (и продолжаю это делать). В качестве «дизайна» самого сайта и личного кабинета пользователя/администратора я предложил использовать макеты, кторые Yii генерирует при создании CRUD-а для моделей базы данных. Заказчик одобрил это.

Практически любой сайт состоит из стандартных элементов, таких как: страницы, регистрация и авторизация пользователя, форма обратной связи и т.д. После того как человек слез с дерева и заменил палку-копалку клавиатурой и монитором — изобрели CMS, которые все эти проблемы решают на «раз два». В то время я активно разрабатывал свой «движок» на фреймворке Yii и решил попробовать применить его в первом «настоящем» проекте. Так как управление страничками, пользователями, регистрациями и авторизациями, а так же форма обратной связи — у меня уже были реализованы, осталось всего лишь написать модуль для работы с заказами.

Модуль оказался довольно простой. Вот что он умеет:

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

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

  • за один раз можно загружать только 5 фотографий (экономим ресурсы)
  • после того как заказ выполнен, все фотографии и превьюшки удаляются (экономим диск)
  • пустые заказы периодически чистятся (они ведь тоже занимаю кое-какое место =) )

В процессе разработки возникло несколько ситуаций, когда ресурсов хостинга мягко говоря «не хватало». Вот они:

  • генерация превью для фотографий — если позволить пользователю загружать за один раз произвольное количество фотографий — при загрузке, приблизительно 10-15 фотографий и более —  упираемся в недостаток памяти, а иногда работа прекращается из-за таймаута. По хорошему можно было просто загружать фотографии, а генерацию превью производить в фоновом режиме или вообще организовать что-то типа очереди.
  • менеджер магазина может скачать все фотографии по заказу за один раз, для этого фотографии ужимаются в архив и уже этот архив отдается на скачку, после чего удаляется. При генерации таких вот архивов тоже бывали ситуации когда не хватало оперативной памяти. После переговоров с хостером немного памяти нам все же добавили.

В записной книжке сохранилось несколько TODO-листов по этому проекту, вот они (фото с мобильника):

pechat-noginsk.ru

pechat-noginsk.ru

pechat-noginsk.ru

pechat-noginsk.ru

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

Хозяин — барин!

В целом и я и заказчик остались довольны проделанной работой (я надеюсь =)).

http://pechat-noginsk.ru/

Продолжение следует =)

Как я делал buyrealty.su

buyrealty.su

buyrealty.su

Решил рассказать, о том какие проекты/сайты мне приходилось делать и что было интересного в процессе разработки.

Начну, пожалуй, с проекта http://www.buyrealty.su/ — ничего особенного, простой каталог объектов недвижимости.

Изначально заказчик (мой хороший товарищ) обратился ко мне с просьбой просто сменить дизайн сайта. «Нет ничего проще !» — подумал я и немедленно согласился.

Однако, после того, как я взглянул на код, с которым предстояло работать — я был просто в шоке. Может из-за того, что я не представляю себе проекта без использования современного фреймворка (типа Yii или Catalyst), то что я увидел — было похоже на «лапшу», начала 90-х годов. PHP код в перемешку с HTML и JavaScript, обращение к базе данных из всех возможных мест, 1000 инклюдов с версткой и дополнительной логикой — в общем «картина маслом». Я уже не говорю о схеме базы данных.

По хорошему все это нужно было бы переписать, сделать конвертацию базы и т.д. Но как всегда, две проблемы — время и деньги. Я решил изменить только «морду» сайта, а все его внутренности (админка, схема базы данных и т.д.) оставить прежними. По готовой «схеме» базы данных были сгенерированны все необходимые модели Yii. После чего написаны необходимые контроллеры и представления (вьюхи). Новый дизайн прекрасно «лег» на новый «движок» сайта и через некоторое время (все про все заняло около 10 дней свободного от работы времени) портал приобрел новое лицо.

После этого были долгие пляски с mod_rewrite, однако все прошло хорошо и Яндекс успешно переиндексировал сайт с новыми url-адресами.

Не скажу, что я супер-мега программист и что после моих переделок сайт стал быстрее/круче/прикольнее, но то, что он приобрел более четкую архитектуру — это факт. Сайт, по крайней мере его публичную часть, теперь значительно легче поддерживать и если вдруг будет очередная смена дизайна — сделать это будет гораздо проще. Слава MVC!

http://www.buyrealty.su/

Продолжение следует =)

Как я мерил CTR баннеров спросиотвечу.ру =)

Некоторое время назад, совместно с моим товарищем, мы запустили проект http://sprosiotvechu.ru/ Идея проекта не нова и не уникальна, тем не менее работать над ним было довольно интересно. После запуска, развитие проекта притормозилось, но все же мы нашли в себе силы и взялись за него вновь. Для продвижеия проекта было создано несколько баннеров, которые предполагалось размещать на различных ресурсах, для привлечения аудитории. Вот я и решил проверить работу этих самых баннеров, разместив их на этом своем блоге (он все еще есть в хедере) и на блоге о веб-программировании (баннер так же все еще там). В качестве инструмента аналитики посещаемости сайта я использую (для большинства проектов) сервис Яндекс.Метрика. Если сравнивать его с Гугл Аналитикс, то для себя я выделил вот такие преимущества Я.Метрики:

1 Простой интерфейс (это самое главное отличие)
2 Смс (бесплатно) и email информирование о недоступности сайта (как бонус — очень приятно)
3 Визуально и функционально Я.Метрика мне понравилась больше =)

В ссылки для баннеров были добавлены метки, для того чтобы четко отслеживать источник перехода. Например, ссылка с блога allframework.ru имеет вид http://sprosiotvechu.ru/?from=alf.

Добавление  к произвольному url параметра from=<тут указываем название источника>, позволит Я.Метрике группировать переходы с таких ссылок и выстраивать отчеты по источникам.

И так баннеры на моих блогах были размещены 18 ноября, т.е. чуть больше месяца назад. И сегодня уже можно сделать кое-какие выводы.

Для начала статистика посещения моих блогов.

http://allframeworks.ru/ Счетчик LiveInternet открыт и доступен всем вот тут

Статистика http://allframeworks.ru/

Статистика http://allframeworks.ru/

Мой блог http://andrey.opeykin.ru/

Статистика http://andrey.opeykin.ru

Статистика http://andrey.opeykin.ru

Показатели не выдающиеся, но некоторые выводы все равно сделать можно. Да, хочу сразу заметить, что сайт http://sprosiotvechu.ru/ долгое время был закрыт для индексации поисковиками. Так что появление «естественного» трафика можно исключить. И вот самое интересное — графики посещаемости спросиотвечу.ру:

Статистика http://sprosiotvechu.ru/

Статистика http://sprosiotvechu.ru/

Источники http://sprosiotvechu.ru/

Источники http://sprosiotvechu.ru/

Переходы по меткам http://sprosiotvechu.ru/

Переходы по меткам http://sprosiotvechu.ru/

А вот такую симметричную картинку я получил вчера вечером =) :

"Симметричная" статистика =)

«Симметричная» статистика =)

Приведу статистику посещаемости за период с 18.11 по 20.12:

http://allframeworks.ru/ — посетителей — 1394, просмотров страниц — 4262

http://andrey.opeykin.ru/ — посетителей — 1033, просмотров страниц — 2429

http://sprosiotvechu.ru/ — посетителей — 49, просмотров страниц — 732

И так финал. Считаем CTR наших баннеров. Простыми словами CTR — это показатель «кликабельности», т.е. отношения количества кликов по баннеру к количеству его показов  (Что нам скажет Википедия ?).

CTR баннера на этом блоге = (4 / 2429) * 100 = 0,16

CTR баннера на http://allframeworks.ru = (11 / 4262) * 100 = 0,26

Итого получили 0,16 и 0,26 — судя по википедии  — это самый минимум, который только может быть =)

Вывод: Баннеры на моих блогах работают плохо =)


Импортировал свое добро!

Всем привет! Давненько я не писал в свой блог, выбирал блого-хостинг! Одно время остановился на blogger.com, но после нескольких месяцев — решил вернуться на свой родной WordPress =). Все записи с моего блога на blogger.com были импортированы сюда!