Работал над проектом https://pontem.ai как на бекенде, так и на фронтенде. Изначально занимался беком (Nest.js, MongoDB, LLM, Express, TypeORM):
После некоторого времени я перешел на фронт (React, Mantine, Axios, Zustand)
этого проекта:
В самом проекте занимался множеством задач по исправлению багов, рефакторинга кода, изменения дизайна на фронтенде
Бот для чтения книг в формате plain/text
Стек: Nest.js, Postgres, Typeorm, Redis, Handlebars
Изначальная идея проекта заключалась в разработке сайта, который будет загружаться даже на кнопочных телефонах, где есть браузер. С помощью бота имеется возможность загрузить книги в формате plain/text, а после этого предлагается читать книги или в боте, или в браузере. Github: https://github.com/kennyhazzar/books-plain-text-bot
Пет-проект https://srlk.ru для создания коротких ссылок и отслеживания переходов. По запросу могу предоставить доступ к репозиторию проекта. (Стек: Nest.js, nestjs-telegraf, bull, postgres, typeorm, redis, node-device-detector, qrcode, ...)
Что было реализовано:
1. Создание ссылок через интерфейс телеграм-бота. Поддержка валидации ссылок
2. Очередь задач на запрос данных по ссылке для получения превью (описание сайта, ссылки на картинки, прочее)
3. Возможность подписки на переходы по ссылке. Пользователь получает координаты, местоположение, юзер-агент пользователя
4. Добавлено ограничение запросов в минуту
5. Возможность получить превью ссылки и статистику
6. Возможность сменить язык. Поддержка двух языков (Русский, Английский
Что осталось реализовать:
1. Веб-приложение для просмотра ссылок
2. API для создания ссылок, а также получения информации каждой из ссылок и истории переходов
Github: https://github.com/kennyhazzar/short-link-bot
1. Работа с MS SQL, написание сложных SQL-запросов
2. Поддержка бота модерации, добавление нового функционала
3. Добавление парсинга исходов для различных видов спорта
4. Оптимизация работы отдельных сервисов бекенда с помощью кеша и Redis
5. Добавление парсинга матчей и игроков
Бекенд монолита (Nest.js, TS, MySQL, Redis):
1. Разработка реферальной системы: реализация регистрации по партнерской ссылки и получение процентов за закрытый заказ
2. Разработка REST API для МП, веб и телеграм-бота
3. Поддержка документации в Swagger и Notion
4. Частичный переход от монолита к микро-сервисной архитектуре: разработка отдельного сервиса для пуш-уведомлений: sms, email, push, web push, telegram, а также замена HTTP-запросов к боту на общение через Redis
5. Разработка сервиса с socket-io для чата в приложении и уведомлений при изменении статуса заказа
Бекенд бота (Nest.js, TS, Telegraf, MySQL, MongoDB, Redis):
1. Архитектура на Nest.js и Telegraf.
2. Логирование любых действий в MongoDB
3. Разработка панели управления для менеджеров и админов
4. Массовая рассылка о создании новых заказов в системе
5. Возможность подписки на обновление статусов заказов в системе
6. Разработка рекуррентных платежей: добавление платной подписки, при оплате которой пользователь получает дополнительный функционал. Продление подписки происходит автоматически. Интеграция проводилась с платежным шлюзом Impaya
7. Частичный переход от монолита к микро-сервисной архитектуре: замена http-контроллеров бота на паттерны
Телеграм-маркетплейс (React, TS, redux-toolkit, Telegram Web App):
1. Построение архитектуры приложения по feature-sliced
2. Разработка хуков для использования библиотеки Telegram Web App: использование главной кнопки, кнопки Назад, вибро-отклика и прочее
3. Разработка авторизации пользователя через HTTP и бекенд бота: на бекенд передавался телеграм-айди пользователя в зашифрованном виде с помощью секрета. на стороне бекенда айди дешифруется и используется в дальнейшем
1. Исправление багов в приложении инвестиций Proverest: исправление багов и добавление нового функционала как на фронтенде (React, TS, styled-components), так и на бекенде (node.js, TS, MongoDB)
2. Разработка Web API (Nest.js, TS, MongoDB, mapbox api, postcodes api), для получения стоимости недвижимости по первичному почтовому индексу в Британии: приложение отправляет запросы в несколько проприетарных API и возвращает результат в зависимости от ответов платных сервисов.
3. Разработка веб-скрейпинга (Nest.js, TS, Puppeteer, MongoDB) сайтов для сбора данных о недвижимостях с различных сайтов. Сложность разработки заключалась в получении данных с сайтов без SSE и на React: требовалось имитировать реального пользователя, нажимая на кнопки во всплывающих окнах, изменении масштаба экрана и скроллинга страницы
1. Разработка API-монитора HTTP-запросов и логирование отрицательных результатов в таблицу. Отправка запросов сопровождалась с тестовыми телами запросов
2. Автоматизация построения процесса SIPOC в Miro по заданным критериям из Google Sheets
3. Разработка Slack-бота (Node.js, JS, Slack API, Jira API, Google Drive API) для отслеживания сотрудников, которые трекали время позднее двух недель: бот отправлял запросы в Jira и собирал данные о тех, кто трекал время за уже прошедшие дни. Бот формировал список сотрудников и публиковал сообщение в специализированном канале, а также дублировал данные в Google Sheets
4. Разработка внутреннего проекта Passproof (React, TS, ant design, Testrail API) для логирования фактического результата работы QA. Требовалось использовать устаревшее API Testrail, а также писать прокси-сервер для использования API без проблем с CORS
5. Разработка внутреннего проекта ProjectPalace. Построение архитектуры в соответствии с feature-sliced, интеграция с бекендом, верстка по дизайну
6. Google-скрипт для выгрузки часов из Jira в Google Sheets. В Google Sheets имеется возможность добавлять в контекстное меню таблицы кнопку для запуска скрипта. Скрипт имеет полный доступ к таблицы: как чтение, так запись, благодаря чему вводные данные можно записать в служебный лист, а записать данные - которые скрипт сохранил из Jira - в другой лист
Автоматическое построение схемы, основанной на данных из Google Sheets в боард-сервис Miro, с целью получить визуализацию всех данных таблицы в виде удобного алгоритма, по которому было бы легче отследить все протекающие процессы.
Первый скрипт, написанный на NodeJS. В рамках MVP приняли решение запускать скрипт удаленно из google таблицы нажатием кнопки. Так как Miro API имеет ограничение на количество запросов в минуту, скрипт работал крайне долго.
Создание схемы, для осуществления удаленного нагрузочного тестирования. Автоматизация отправки запросов из NodeJS с помощью CI/CD, занесение полученного ответа в Google Sheets, создание автоматического бота в Telegram, направленного на рассылку уведомлений об изменениях в работе сервиса и отправки запросов.
Впервые встретился с JavaScript. Тогда еще не знал, что этот язык станет основным во всех моих проектах. Коротко о принципе работы коллекции:
Стек: Newman, Postman Collection Scripts, Google Docs API, Google Scripts, Telegram Bot API
Подробнее про проект:
https://docs.google.com/document/d/14nwaZgzHWiDn1UHt5SUImLPvIZeDLxgHQfLpdH4yqT8/edit#heading=h.by6or6duvv39