|
Проект MUSICALION (Германия)Проект представляет собой коммерческий музыкальный сервис, члены которого могут публиковать свои произведения, а также произведения других авторов в собственном исполнении и/или оранжировке. Я работал над проектом с июля 2019 года по июнь 2021 года в качестве программиста. К моему большому сожалению за это время я выполнил все поставленные передо мной задачи и работать стало не с чем, эпидемия ковида также добавила негатива в этот бизнес, что привело к его сильному сокращению и отмене изветсных музыкальных конкурсов для которых проект являлся организатором.
В связи с тем, что я связан с моими бывшими работодателями соглашением NDA (Confidentiality Agreement), я не могу подробно остановиться на задачах, которые выполнялись мной в рамках этого проекта и технологиях на которых это было выполнено. Вы можете посмотреть на часть сайта проекта, которая есть в открытом доступе, это довольно большой его кусок, по роду своей деятельности я так или иначе принимал участие в модификации практически всех страниц а часть модулей и функций создал с нуля, в проекте их не было.
Вкратце можно перечислить следующие направления моей деятельности:
Читать дальше …
Проекты выполненные мной в составе колл-центра “Фронт Лайн” (Москва)Я работал в качестве программиста в колл-центре “Фронт Лайн” (Москва, Зеленоград) с августа 2016 года по июль 2019 года. Работы там было очень много, но можно выделить несколько основных направлений.
Оперативная текущая работа, которая заключалась в коррекции существующих телекоммуникационных проектов в соответствии с требованиями заказчиков. Проекты представляли собой обычные сайты написанные на HTML и Javascript на стороне броузера и на PHP на стороне сервера, база данных mySQL. При создании нового проекта обычно за основу брался какой-то существующий похожий проект и модифицировался в соответствии с техническим заданием.
Текущая работа по созданию отчетов для проектов. Первоначально все отчеты были написаны на PHP и их было несколько сотен. В дальнейшем мне разрешили использовать Microsoft SSRS и я начал новые отчеты по своим проектам делать на этой технологии, всего мне удалось написать таких отчетов около 50, а также обучить своих коллег пользоваться SSRS.
Разработка систем интеграции с внешними проектами. На начальном этапе таких интеграций было немного, я могу припомнить только обновление базы знаний ДИТ, но в дальнейшем этот сегмент сильно вырос. Я занимался реализацией интеграций со следующими компаниями и организациями: “DPD”, “Нау такси”, “Командир такси”, “СПСР” (вошла в состав DPD), “ДИТ” и пр.
С моим приходом в компанию возобновились работы по созданию систем контроля качества для нескольких проектов, которые до этого момента создать не получалось. Мне удалось реализовать три таких системы: для проекта ДИТ 7Х7, проекта ДИТ ЕДЦ и проекта для обслуживания чата на сайте МПГУ. Эти проекты использовали одну базу данных, но на клиентской части сильно отличались технологиями реализации: на начальном этапе для интерфейса контроля я использовал обычный HTML и Javascript, в следующих двух проектах я работал уже с ExtJS. Кроме этого проекты кардинально отличались алгоритмами отбора звонков и диалогов, а также содержимым чек-листов для анализа разговоров, также у проектов были разные отчеты, которые я делал на SSRS.
При обслуживании проектов компании было очень много ручной рутинной работы, руководство поощряло мою проектную деятельность и потому я постоянно развивал наш внутренний производственный проект. В рамках этого проекта я реализовал множество задач: управление адресами получателей отчетов, универсальный редактор справочников НСИ, управление интерфейсами проектов, управление универсальыми базами знаний и т.д.
CRM Sigma
|
Заказчик: |
ООО “Промопост”, член OTTO Group Россия
|
Тип проекта: |
CRM-система компании |
Моя позиция в проекте: |
Архитектор баз данных
Архитектор программных решений
Руководитель отдела разработки ПО
|
Операционные системы: |
Windows, Linux |
Базы данных: |
Oracle 11G |
Языки: |
SQL, PL/SQL, XML, HTML, JavaScript |
Технологии: |
Oracle database, ERWIN, Oracle Apache Server, Oracle gateways, MS Access |
Взаимодействие с платежными системами: |
Qiwi, Elecsnet |
Язык интерфейса: |
Английский |
|
Мое участие в проекте происходило с мая 2005 года по май 2010 года, я работал на постоянной основе в качетсве руководителя отдела разработки программного обеспечения. В проект меня пригласили из Украины (Харьков).
На момент начала проекта отдела разработки не существовало, саму разработку было решено перенести в Тверь, где находилось производство компании. Здесь же я набрал персонал отдела и полностью обучил его, уже через четыре месяца мы приступили к разработке.
Проект был запущен в работу (старая CRM-система была заменена) в октябре 2006 года. Дело осложнялось многими факторами, в частности непростым взаимодейтсвием с внешними складской и бухгалтерской системами (SOLVO и SCALA). Кроме этого управляющая компания заключила партнерский договор с немецкой OTTO Group и нам пришлось разрабатывать шлюз обмена данными с их логистической системой SCHWAB и организовывать отсылку их товаров.
Меня часто спрашивают: почему я покинул эту компанию, ушел с хорошо оплачиваемой и интересной работы? Это произошло потому что работа превратилась в рутину, годами я работал с технологиями, которые у меня на глазах устаревали, нового почти ничего делать мне не давали. Мой отдел не был допущен к разработке интернет-торговли, к технологиям SSRS и SSAS, все это делалось в Москве, я понимал, что в случае потери работы, с каждым годом мне изучать что-то новое будет все тяжелее.
|
Краткие сведения о проекте:
Клиентская база: более 30 миллионов человек
Объем продаж: до 500 000 почтовых отправлений в месяц
Размеры рекламной деятельности: рассылка до 4 миллионов писем в месяц
Размер базы данных: более 300 GB
Количество таблиц в базе данных: около 300
Количество пользователей системы: около 500
Читать дальше …
CRM ЕШКО (Россия)
|
Заказчик: |
Компания ЕШКО – Россия
|
Тип проекта: |
Доработка CRM-системы |
Моя позиция в проекте: |
Архитектор баз данных
DBA
Программист
|
Операционные системы: |
Windows 2008 Server |
Базы данных: |
Oracle 11G |
Языки: |
PL/SQL, Oracle SQL, HTML, JavaScript |
Технологии: |
Oracle database, Oracle heterogeneous services (gateways), Oracle Apache Server, jQuery |
Язык интерфейса: |
Английский |
|
Над этим проектом я работал с мая 2014 года по март 2015 года включительно.
Стояла задача адаптировать версию украинского филиала ЕШКО к российским условиям и написать тарификацию почтовых отправлений для почты России и альтернативных доставщиков. Кроме этого наборы отчетов (внутренних и финансовых) у украинского и российского филиалов сильно отличались, поэтому была необходима доработка системы отчетов. Также организация сборки отправлений у филиалов была разной и я написал еще модуль управления производством.
Дело осложнялось тем, что в этой конфигурации проект работал на 64-битной версии Oracle и перестали работать старые DLL, которые обеспечивали построение отчетов в форматах RTF и MS Excel.
Ранее я принимал активное участие в разработке украинской версии этой CRM (2003-2005 годы), как DBA и программист. Мной был разработан движок проекта, создана система отчетов, почти все компоненты пользовательского интерфейса, DLLs для построения отчетов, скрипты переноса данных, несколько основных модулей (деньги, возвраты и пр.).
|
Проект по доработке CRM-системы компании.
Размер базы данных: 70Gb
Количество клиентов: более 6 миллионов
Сфера деятельности: Российская Федерация
Представлена на рынке: с 1996 года
Штаб квартира: в Голландии
Филиалы: 8 филиалов в Европе и странах СНГ
Читать дальше …
Проект OMS
|
Заказчик: |
Компания “НАДОМ”, член OTTO Group Россия
|
Тип проекта: |
Внутренний корпоративный проект для департамента маркетинга |
Моя позиция в проекте: |
Архитектор баз данных
Руководитель разработки ПО
Архитектор программных решений
|
Операционные системы: |
Windows, Mac OS |
Базы данных: |
mySQL, Oracle |
Языки: |
C#, PHP, SQL, Adobe JavaScript, XML |
Технологии: |
Silverlight, Adobe InDesign (client, server), SOAP, PHP image libraries, Microsoft Reporting Services |
Язык интерфейса: |
Английский |
|
Мое участие в проекте происходило с мая 2013 по май 2014 года.
Программированием (кодированием) для проекта занималось всего два человека. Первоначально предполагалось, что я напишу проект один, но мне удалось убедить Заказчика взять на дальнейшую поддержку проекта специалиста, чтобы в дальнейшем ко мне не обращаться. Был взят человек, которого я полностью обучил и довольно быстро (примерно через два месяца после начала проекта) он включился в процесс разработки.
Для данного проекта мной были разработаны все технические решения:
Спроектирована база данных проекта для mySQL.
Спроектирована система защиты проекта на клиентской части.
Спроектирована и частично разработана система хранения презентаций товаров.
Разработан графический редактор, работающий в среде Silverlight и позволяющий создавать файлы в форматах Adobe InDesign (INDD, IDMS) на серверной части.
Реализован механизм репликаций объектов из CRM-системы копмании (Oracle) в базу данных проекта.
Реализован обмен данными между модулями Silverlight и PHP-программами, работающими под веб-сервером Apache. Это позволило обеспечить синхронный обмен данными, что сильно упростило разработку.
Реализован обмен данными между PHP-модулями и сервером Adobe InDesign через протокол SOAP.
Разработан механизм обработки изображений и хранение презентаций с помощью графических библиотек PHP.
Реализован механизм обмена данными между приложением Adobe InDesign и базой данных проекта.
|
OMS (Offer Management System) система для создания каталогов товаров в формате для печати (Adobe InDesign).
Разработан в виде двух клиентских приложений для броузера и издательского продукта Adobe InDesign, и двух обслуживающих их серверных частей: базы данных mySQL (взаимодействие через PHP) и сервера Adobe InDesign (взаимодействие через SOAP и Adobe JavaScript).
Включает в себя:
Графический редактор, позволяющий создавать презентации, состоящие из изображений, текстовых блоков, внутренних переменных и других презентаций.
Базу данных (mySQL) для хранения предложений (offers) и товаров, входящих в них, которая обновляется из базы данных CRM-системы компании (Oracle). Также в базе данных хранятся сведения о каталогах и презентациях.
Систему построения шаблонов каталогов и сами каталоги, которые могут быть реплицированы на сервер Adobe InDesign с помощью технологии SOAP (PHP – Adobe JavaScript).
Набор скриптов для клиентских программ Adobe InDesign (Adobe JavaScript), которые позволяют подключаться к базе данных товаров и производить обновление цен и описаний с помощью внутренних переменных.
Читать дальше …
Проект DV-6
|
Заказчик: |
Национальное агенство промышленной информации (НАПИ) |
Тип проекта: |
Коммерческий интернет-проект |
Моя позиция в проекте: |
Архитектор баз данных
Архитектор программных решений
Программист
|
Операционные системы: |
Windows 2012 |
Базы данных: |
MS SQL, MS Analisys Services (OLAP cubes) |
Языки: |
C#, SQL, MDX, XML, HTML, JavaScript |
Технологии: |
ASP.NET, Devexpress ASP.NET components, jQuery |
Языки интерфейса: |
English, Русский |
Среда разработки: |
MS Visual Studio 2010, MS SQL Server Management Studio |
|
Заказчик проекта занимается сбором информации по различным направлениям: продажи автомобилей, грузовиков, автобусов, прицепов; анализ динамики макроэкономических показателей и т.д., данные хранятся в обычных базах данных, но для этого проекта производится их объединение в единое хранилище в формате MS Analisis Services (OLAP-кубы). Цель проекта – обеспечить доступ к данным через интернет, с помощью броузера, не потеряв при этом функциональности, которую может обеспечить MS Excel.
Читать дальше …
Проект InfoHelp
|
Заказчик: |
Компания “НАДОМ”, член OTTO Group Россия
|
Тип проекта: |
Внутренний корпоративный проект для департамента работы с клиентами |
Моя позиция в проекте: |
Архитектор баз данных
Разработчик
|
Операционные системы: |
Windows 2008 Server |
Базы данных: |
Oracle 11G |
Языки: |
C#, SQL, PHP |
Технологии: |
Silverlight, PHP image libraries, Oracle Apache Server |
Язык интерфейса: |
Русский |
|
Мое участие в проекте происходило с мая 2012 по май 2013 года. В дальнейшем я оказывал небольшие консультационные услуги компнании при подключении к проекту новых call-центров.
Проект я написал в одиночку, начав с проектирования окружения и базы данных и заказнчивая разработкой программного обеспечения для серверной и клиентской частей. Мной был выполнен большой объем работ: размер PHP программ на серверной части составил более 600 Kb, объем кода клиентской части (файлы cs и xaml) около 2Mb, на проект мной была подготовлена документация в полном объеме, начиная с руководств программиста и системного администратора и заканчивая файлами контекстной помощи для всех модулей административной и клиентской части.
|
Проект для CALL-центров, работающих с CRM компании.
Краткое описание:
Основная область применения: информационная поддержка рекламных акций компании (акции, каталоги, товары)
Наличие административной и клиентской систем
Обслуживание рекламных предложений
Обслуживание каталогов товаров
Поддержка скриптов для общения с клиентами
Поддержка новостей
Поддержка форумов.
Цель проекта: обеспечение CALL-центров, работающих с CRM-системой компании, подробными сведениями о рекламных акциях, товарных предложениях, товарах и прочей информацией, касающейся процесса продаж. Кроме этого проект имеет систему обратной связи (форумы) специалистов CALL-центров с департаментом маркетинга. Дополнительной возможностью, предоставляемой проектом, является публикация разного рода инструкций, касающихся CRM-системы и процесса общения операторов CALL-центров с клиентами (скрипты-сценарии).
Читать дальше …
Многоязыковая поддержка WordPress
Данный подход используется на этом сайте, он прост в реализации, но имеет некоторые недостатки и ограничения.
Это не идеальный код, это просто демонстрация способа, как можно включить многоязыковую поддержку для WordPress.
Приведенные тексты программ подразумевают поддержку двух языков: английского и русского, языков может быть больше.
Недостатки:
- Всегда должны быть русская и английская версия текста во всех местах.
- В административной панели заголовки выглядят нечитабельно.
- Нельзя использовать такую разметку для категорий и тегов, если планируется их прямой вывод через функции wp_list_[…] и им подобные.
- При использовании текста в дополнительном коде PHP всегда необходимо вызывать функцию-транслятор.
- Поисковики будут всегда получать текст для языка по умолчанию.
Данный подход является очень упрощенным и годится для несложных сайтов.
Использование в постах и страницах:
- [ru]Русский текст[/ru]
- [en]English text[/en]
Использование в коде PHP:
<?php
//-- echo --
stringTranslate('[en]English text[/en][ru]Русский текст[/ru]');
//-- value --
$text = stringTranslate('[en]English text[/en][ru]Русский текст[/ru]', false);
?>
Реализация:
common.js (файл javascript с вашим кодом):
function changeLanguage(ob) {
if (ob == "ru") {
if (!confirm("Please, confirm changing language interface to English.")) {
return;
}
document.cookie = "lang=en";
}
else {
if (!confirm("Подтвердите, пожалуйста, смену языка интерфейса на Русский.")) {
return;
}
document.cookie = "lang=ru";
}
location.reload();
}
На своем сайте я использую простую схему Wodpress, т.е. тут нет шаблонов, дополнительных файлов и т.д. Поэтому привожу пример только для основного файла схемы. Этот блок отображает две иконки для переключения языков, подобные тем, которые вы можете видеть на этом сайте. Пример использования функции отображения данных в коде приведен выше.
index.php:
//.... HTML markup before
<img src="<?php bloginfo('template_url'); ?>/images/en.png"
<?php echo (($lang == "en")?("title='English language is setting now.'"):
("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"ru\");'
title='Set English as interface language.'")); ?>/>
<img src="<?php bloginfo('template_url'); ?>/images/ru.png"
<?php echo (($lang == "ru")?("title='Русский язык интерфейса сейчас установлен.'"):
("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"en\");'
title='Установить русский язык интерфейса.'")); ?>/>
// HTML markup after ...
functions.php:
add_filter( 'the_content', 'content_translate' );
function content_translate ($content) {
return stringTranslate($content, false);
}
function stringTranslate($str, $isEcho = true) {
$rez = $str;
if ($_COOKIE['lang']) {
$lang = $_COOKIE['lang'];
}
else {
$lang = 'en';
}
$rStr = 'ru';
if ($lang == 'ru') {
$rStr = 'en';
}
$am = 0;
while (true) {
$pos1 = strpos($rez,"[".$rStr."]");
if ($pos1 === false) {
break;
}
$pos2 = strpos($rez,"[/".$rStr."]");
if ($pos2 === false) {
$pos2 = strpos($rez,"[".$lang."]",$pos1);
if (!$pos2) {
$pos2 = strlen($rez);
}
}
else {
$pos2 += strlen("{/".$rStr."}");
}
$rez = str_replace(substr($rez, $pos1, $pos2 - $pos1), "", $rez);
//-- decline endless cycle --
$am++;
if ($am > 100) {
return "Cycle error!";
}
}
if ($isEcho) {
echo str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));
}
else {
return str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));
}
}
Вот собственно и все, желаю всем удачи.
Примеры для WordPressPicture galleries.
This is demo for using of NEXTGEN Gallery plugin.
Примеры для ASP.NETUploading and reading Excel files (aspx) on the server.
Using SSRS report on the ASP page without reporting server.
|