Fullstack · Алматы

Магазины и внутренние порталы, собранные с нуля — без плагинных костылей

Пять коммерческих проектов веб-студии, четыре личных и свой ML-сервис. В двух был тимлидом. Внутри — собственный роутер поверх WordPress, свои таблицы с миграциями, e-commerce без WooCommerce, вариации товара, склад и биллинг. Всё девять открываются по ссылке: можно ткнуть и посмотреть, а не поверить на слово.

10
живых проектов
5
коммерческих кейсов
2
как тимлид
627
товаров в каталоге Melanj

Про роль и коммиты

В карточках указана роль, а не процент коммитов. Число коммитов — нижняя граница вклада: как тимлид я писал код и коммитил с машин других разработчиков, поэтому git-статистика по авторам в части проектов занижена. Где цифра что-то значит, она приведена отдельной строкой.

Проекты

10 из 10
роль
стек
Скриншот: Рекомендации на корзинах
Личный проект2026

Рекомендации на корзинах

ML-сервис «с этим покупают вместе» — на данных проекта из этого же портфолио

Всё: выгрузка и подготовка данных, две модели, FastAPI, деплой службой на сервере, встраивание в витрину и дашборд с графиками.

FP-Growth и item-item на 3382 настоящих корзинах, витрина от сервиса не зависит

  • Python
  • FastAPI
  • scikit-learn
  • mlxtend
  • pandas
  • systemd
  • +1

не доделано: RFM считается по 12,6% заказов: обезличивание сохранило состав корзин, но уничтожило идентичность покупателя — телефон в базе выводится из id заказа

Скриншот: Melanj
Разработчик2023

Melanj

Интернет-магазин пряжи — e-commerce без WooCommerce

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

73 из 183 коммитов

Каталог из 627 товаров в Redis и цены, зависящие от валюты в сессии

  • PHP 8
  • WordPress
  • MySQL
  • Redis
  • SCSS
  • vanilla JS
  • +2

не доделано: Из четырёх рабочих мест по ролям написано одно: /pay/ у Кассира. Маршруты /opt/, /delivery/, /storage/ объявлены в роутере, но шаблонов к ним нет

Скриншот: Zhumay Architects
Разработчик2023

Zhumay Architects

Сайт архитектурного бюро — самый визуальный проект набора

Первый экран и его анимации, слайдер на странице проекта, весь адаптив — контейнеры, single, архив, — анимация бургера и init-секции.

64 из 258 коммитов

Четыре Swiper связаны контроллером в одну сетку первого экрана

  • PHP
  • WordPress
  • ACF Pro
  • Swiper
  • AniJS
  • SCSS
  • +1

не доделано: Контент в каталоге демонстрационный: кадры настоящие, из медиатеки бюро, но названия описательные, а города, годы и площади — подставленные. Настоящих в дампе не было

Скриншот: ANKAI Vostok
Тимлид2023

ANKAI Vostok

Каталог спецтехники, Усть-Каменогорск

Вёл проект как тимлид: архитектура и декомпозиция, распределение задач, ревью, сдача заказчику. Значительная часть кода писалась и коммитилась с машин других разработчиков, поэтому git-статистика по авторам здесь ничего не отражает.

Свои колонки списка в админке и характеристики модели из полей, а не из шаблона

  • PHP
  • WordPress
  • Swiper
  • SCSS
  • Polylang Pro

не доделано: Контент демонстрационный: фотографии настоящие, с оригинального сайта, а характеристики взяты из общедоступных спецификаций этих серий

Скриншот: init.red
Тимлид2023

init.red

Внутренний портал студии — не клиентский сайт

Свой роутер поверх WordPress, собственная авторизация, таблица платежей с версионированием схемы. Клиентский сайт студии живёт отдельно на init.kz и в этот кейс не входит.

21 коммит под своим именем, роль — тимлид

Свой роутер поверх WordPress и таблица платежей со своими миграциями

  • PHP
  • WordPress
  • MySQL
  • dbDelta
  • SCSS
  • vanilla JS

не доделано: Задачи и проекты на дашборде — разметка без бэкенда

Скриншот: Zoo-Land
Разработчик2023

Zoo-Land

Интернет-магазин зоотоваров — новая версия

Логин и регистрация, добавление заказов, футер и контакты, merge-работа между ветками трёх разработчиков.

20 из 271 коммита

Миграция каталога со старого движка: ACF-репитер → своё поле, 2771 товар

  • PHP
  • WordPress
  • MySQL
  • Redis
  • SCSS
  • AJAX
  • +1

не доделано: Перенесены обложки товаров, но не галереи: на карточке товара один кадр вместо нескольких

Скриншот: Zoo-Land legacy
Разработчик2020–2023

Zoo-Land legacy

Предыдущая версия магазина — исходная точка миграции

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

Хлебные крошки, которые не падают на пустом архиве

  • PHP
  • WordPress
  • jQuery
  • Bootstrap
  • ACF Pro
  • Yoast SEO

не доделано: Стек устаревший даже по меркам остальных проектов — это и есть смысл показа: было / стало

Скриншот: Кинопоиск
Личный проект2022

Кинопоиск

REST API на Laravel плюс SPA на Vue

Полностью личный проект: и API, и фронтенд.

Ресурсный контроллер с валидацией и SPA на относительном адресе API

  • PHP 8
  • Laravel 8
  • Eloquent
  • Sanctum
  • Vue 2
  • Vue Router
  • +2

не доделано: CRUD не дописан: show, update и destroy пустые

Скриншот: Каталог курсов
Личный проект2022

Каталог курсов

Angular 13 с фильтрами и постраничной догрузкой

Личный проект: интерфейс каталога целиком.

Цвет карточки из данных и пагинация счётчиком без запросов

  • Angular 13
  • TypeScript
  • Tailwind
  • ng-bootstrap
  • LESS

не доделано: Картинки курсов — внешние ссылки на чужой CDN, поэтому не загружаются

Скриншот: React SPA
Личный проект2022

React SPA

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

Личный учебный проект.

react-hook-form: правила у поля, отправка заблокирована до валидности

  • React 17
  • React Router 6
  • react-hook-form
  • Tailwind

не доделано: Стилизация минимальная