Передняя часть — проверьте…

Задняя часть — проверьте…

Пришло время создать полнофункциональное приложение :)

Создание полнофункционального приложения за 5 дней было непростой задачей. Делать это в первый раз было несложно, пока мы не поняли, что полностью забыли, как контролировать поток информации через React.js.

Некоторые технические и не очень технические знания на будущее:

  1. Создайте каркас и нанесите на карту свои маршруты
  2. Сначала отдайте приоритет аутентификации, без нее вы не сможете реализовать большинство функций.
  3. Когда вы наткнетесь на стену, продолжайте идти
  4. Наслаждайтесь волшебством!

Мы решили создать p2p (одноранговую) торговую площадку, похожую на те, которые я и мои товарищи по команде использовали в прошлом для покупки, продажи и обмена предметами одежды. После двух очень успешных дней создания нашего бэкэнда и наших моделей мы приступили к интеграции наших запросов на выборку во внешний интерфейс, в основном используя различные библиотеки React, чтобы воплотить в жизнь наши данные и функции.

Мы не сомневаемся, что мы могли бы/должны/будем объединять все эти компоненты в один или два и использовать запросы GET на выборку и элементы фильтрации приложений для получения данных, содержащихся в каждом компоненте. Мы просто зашли слишком далеко в кроличью нору, и с такими сжатыми сроками нам пришлось придерживаться нашего текущего макета. Оглядываясь назад, это произошло из-за отсутствия планирования, предвидения и слишком большого внимания к серверной части, но вы живете и учитесь!

Одним из ключевых результатов была операция Full-CRUD для одной из наших моделей — мы выбрали предметы одежды, отображаемые на нашем рынке, которые можно создавать (добавлять), читать, обновлять (покупать/продавать) и уничтожать (удалять) — мы знали, что конечные пользователи захотят добавить свои товары на рынок, просмотреть свои товары и купить их (GET), будут совершать транзакции со своими предметами (PATCH owner_id) и, конечно же, они могут удалять их (DELETE). Собрать все это вместе с хорошо организованной серверной частью было очень легко и приятно. Но не все было так просто….

Самым большим препятствием… безусловно… был наш процесс аутентификации, который состоял из различных функций Flask, показанных здесь:

Мы могли успешно зарегистрироваться, но при входе в систему из React мы не смогли сохранить файл cookie. После почти двух дней бесконечно разочаровывающей отладки решение оказалось смехотворно простым… все было в URL-адресе, на который мы загружались.

Мы пытались опубликовать файлы cookie сеанса и получить их с указанного локального хоста: http://127.0.0.1:5555/{check_session, login, logout и т. д.}

По прихоти и в полном отчаянии мы заменили полный маршрут локального хоста и просто использовали вместо него путь к файлу — это выглядит так:

Сработало - слава богу сработало. Это была такая важная часть приложения и огромная возможность обучения при получении данных из API.

После того, как мы решили проблему аутентификации, нам пришлось потрудиться, чтобы завершить наши ключевые функции и собрать пакет CSS, который мы сочли подходящим.

Мы контролировали большую часть авторизации наших функций через хранилище user.id в браузере и использовали различные тернарные операторы для отображения/скрытия кнопок и функций.

Без сомнения, моя группа и я узнали огромное количество информации о планировании и стратегическом отображении нашего более сложного проекта. Было так приятно видеть, как наш бэкэнд, который мы создали с нуля, оживает в React, я очень рад продолжить работу над нашим проектом и создавать другие приложения, используя этот процесс.