разработка
May 10

3-4 дни разработки PlayVibe

Марафон: сделать MVP за оставшиеся 2 дня.

Я начал день с того, что надо было довести до ума Front+API, а также Backend, подвязать ко всему этому REST API и соединить с TMA. На это у меня ушел практически весь день, так как позволили себе кучу времени потратить на разговоры с друзьями :D

Сам код был написан примерно за 3 часа. Тогда я решил ускорить процесс и обратиться к ChatGPT для написания Javascript функций и к Perplexity, чтобы создать CSS-верстку.

Вот что получилось:

Иконки типа таких: 🏠🔍🔔👤 - они задаются как текст. Решил, что позже заменю их на PNG, чтобы во всех браузерах выглядели одинаково. Пока будем считать это багофичей.

Следующая задача - добавить экраны, какую-то базовую логику UI / UX.

Но для начала потребуется прикрутить самый базовый функционал TMA:

  • получение start параметров (ID конкурса, если открывается конкретный, а также UTM теги для наших любимых маркетинговых исследований);
  • бесшовная авторизация через Telegram.

По авторизации я решил воспользоваться этой статьей с хабра.

Общий принцип аутентификации следующий:

На самом деле, это можно значительно упростить

Примерно на этом закончился 3-ий день разработки. Пока я думал как реализовать аутентификацию и авторизацию, я начал сталкиваться со все большим числом проблем с Vercel.

Оказалось, что его работа не интуетивно понятна на Golang, а некоторые вещи проще, легче и разумнее сделать в виде обычного сервиса, а не serverless-функций.

Наконец, когда мне надоело гневаться на Vercel, я решил переписать Front + API без него. Используя старый добрый Gin и его шаблонизатор для обработки HTML.

На 4-ый день я доделывал изменения и занялся доработкой фронта. вот как он стал выглядеть:

Я сделал иконки картинками, добавил логику экранов, составил лого и сделал темную схему оформления. Для начала прикольно.

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

В следующих отрывках дневника разработки расскажу и покажу дальнейшую логику системы.