Веб-приложение с аналитикой рекламных кампаний для владельцев сайтов. Возможность создавать рекламные компании, строить отчеты.
TL;DR можно пролистать текст и посмотреть картинки
Когда начинался проект, мне его преподнесли как долгосрочный, с большим количеством страниц. В связи с чем были приняты архитектурные решения, которые позволили наращивать кодовую базу таким образом, что бы приложение не рухнуло под собственной тяжестью. Помимо архитектуры, были распланированы этапы работ и согласованы с менеджерами. Когда я сказал, что справлюсь за полгода мне не особо поверили. Но в итоге к новому году заказчик увидел релиз в котором было 90% изначально задуманного функционала (10% всякие мелочи). Для нужд других проектов была разработана общая библиотека компонентов. Она имела возможности темизации (спасибо tailwindcss) и storybook с документацией для будущих поколений. Я понимал, что этот проект будет передан на поддержку junior/middle разработчику и позаботился о том, что бы облегчить тому разработку и понимание архитектуры. Затем был разработан слой доступа к данным и слой хранящий состояние приложения. А для их объединения был разработан модуль. В итоге получился некий аналог RTK Query. Теперь появилась возможность довольно быстро интегрироваться с API, используя всю мощь механизма state management и side effects. Таким образом все модули состояли из
одного и того же надежного, протестированного кода и кода бизнес логики для конкретного модуля (который так же состоял по большей части из нажедных хелперов). Но были и такие, где нужны были лишь CRUD операции и такие получалось делать буквально на коленке за пару часов, которые уходили просто на набирание кода. В итоге прочный фундамент был заложен. На проекте остался junior разработчик, который из имеющихся кирпичиков, как из конструктора, собирал новые модули. В итоге поддержка и развитие проекта обходилась совсем не дорого. Баги если и были, то их количество было в комфортных для развития пределах.
Это только верхушка айсберга. На проекте был еще модуль с отчетами, который было очень интересно разрабатывать с точки зрения архитектуры, модуль со множеством графиков и перетаскиванием, ленивая загрузка модулей (большие роуты загружались асинхронно, только при запросе на них). Я горжусь этим проектом, доволен результатом, который получился, но еще более доволен полученным опытом.