Skip to content

NFT (Non-fungible Token) market based on a mock server

Notifications You must be signed in to change notification settings

shishmakovaDaria/NFTMarket

 
 

Repository files navigation

NFTMarket

Приложение помогает пользователям просматривать и покупать NFT (Non-Fungible Token). Функционал покупки иммитируется с помощью мокового сервера. Цели приложения:

  • просмотр коллекций NFT;
  • просмотр и покупка NFT (иммитируется);
  • просмотр и редактирование профиля;
  • просмотр рейтинга пользователей.

Ссылки

Дизайн Figma

Ссылка на скринкаст эпика "Профиль"

Ссылка на скринкаст эпика "Корзина"

Ссылка на скринкаст эпика "Статистика"

Описание приложения

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

Стек технологий

  • Swift
  • UIKit
  • MVVM
  • SPM
  • Kingfisher
  • ProgressHUD
  • WebKit
  • REST API
  • UserDefaults
  • AutoLayout programmatically
  • Localization
  • Dark Mode

Функциональные требования

1. Каталог

Экран каталога

  • На экране каталога отображается таблица, показывающая доступные коллекции NFT.

  • Также на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.

  • При нажатии на одну из ячеек таблицы пользователь попадает на экран выбранной коллекции NFT.

Экран коллекции NFT

  • Экран отображает информацию о выбранной коллекции NFT.

  • При нажатии на имя автора коллекции открывается его сайт в вебвью.

  • При нажатии на сердечко производится добавление NFT в избранное / удаление NFT из избранного.

  • При нажатии на кнопку добавления NFT в корзину / удаления NFT из корзины производится добавление или удаление NFT из заказа (корзины). Изображение кнопки при этом меняется.

  • При нажатии на ячейку открывается экран NFT.

Экран NFT

2. Корзина

Экран заказа

  • На экране таблицы отображается таблица со списком добавленных в заказ NFT.

  • При нажатии на кнопку удаления из корзины показывается экран подтверждения удаления.

  • Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.

  • Внизу экрана расположена панель с количеством NFT в заказе, общей ценой и кнопкой оплаты. При нажатии на кнопку оплаты происходит переход на экран выбора валюты.

Экран выбора валюты

  • Экран позволяет выбрать валюту для оплаты заказа.

  • Сверху экрана находится заголовок и кнопка возврата на предыдущий экран. Под ним - коллекция с доступными способами оплаты.

  • Внизу находится текст со ссылкой на пользовательское соглашение (открывается вебвью).

  • Под текстом - кнопка оплаты, при ее нажатии посылается запрос на сервер. Если сервер ответил, что оплата прошла успешно, то показывается экран с информацией об этом и кнопкой возврата в корзину. В случае неуспешной оплаты показывается соответствующий экран с кнопками повтора запроса и возврата в корзину.

3. Профиль

Экран профиля

  • Экран показывает информацию о пользователе.

  • В правом верхнем углу экрана находится кнопка редактирования профиля. Нажав на нее, пользователь видит всплывающий экран, на котором может отредактировать имя пользователя, описание, сайт и ссылку на изображение.

Экран Мои NFT

  • Представляет собой таблицу c NFT.

  • Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.

  • В случае отсутствия NFT показывается соответствующая надпись.

Экран Избранные NFT

  • Содержит коллекцию c NFT, добавленными в избранное (лайкнутыми).

  • Нажатие на сердечко удаляет NFT из избранного, содержимое коллекции при этом обновляется.

  • В случае отсутствия избранных NFT показывается соответствующая надпись.

4. Статистика

Экран рейтинга

  • Экран отображает список пользователей. Он представляет собой таблицу.

  • Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.

  • При нажатии на одну из ячеек происходит переход на экран информации о пользователе.

Экран информации о пользователе

  • Экран отображает информацию о пользователе.

  • Также он содержит кнопку перехода на сайт пользователя (открывается в вебвью) и возможность перехода на экран Коллекции пользователя.

Экран коллекции пользователя

  • Содержит коллекцию c NFT пользователя.

Сортировка данных

На экранах «Каталог», «Корзина», «Мои NFT», «Статистика» есть настройка сортировки. Выбранный пользователем порядок сортировки должен сохраняться локально на устройстве. После перезапуска приложения восстанавливается предыдущее значение.

Над проектом работали:

"Sbat2000"
"shishmakovaDaria"
"RdDevi1"

About

NFT (Non-fungible Token) market based on a mock server

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 78.4%
  • Swift 21.6%