Команда

  • Название - "Старые Леопарды"
  • Состав
    • Косницкий Александр @Sanerins
    • Победоносцев Кирилл @Pobedos
    • Коваленко Павел @PaaavelZ
    • Щередин Артём @ArtyomScheredin
    • Галеев Артур @coradead
    • Трофимов Артём @artem24630
  • Ментор - Малков Павел

1. Цель проекта

Цель проекта — разработать приложение для обработки заказов клиентов из различных ресторанов и столовых. Клиент может создавать корзину товаров, где будут находиться все выбранные им товары (учитывать их наличие и запрещать увеличение количества товаров при их отсутствии). Если всё хорошо, открывается окно с транзакцией, где пользователь вводит свои данные, и с его карты списываются деньги. Клиент указывает адресс, на который купленные товары будут впоследствии доставлены.

2. Описание системы

  1. Система регистрации и авторизации
  2. Система баллов в соответствие с потраченной суммой, начисляемой за каждую покупку
  3. Меню с категориями товаров для всех ресторанов
  4. Меню с категориями товаров для конкретного ресторана
  5. Меню с предложениями ресторанов конк
  6. Корзина
  7. Профиль с историей покупок
  8. Система обработки безналичных платежей

2.1. Регистрация

логин + пароль

2.2. Система баллов

За каждую покупку пользователю начисляется 5% в виде баллов от суммы заказа (1 балл = 1 рубль). Впоследствие эти баллы можно потратить на любые другие покупки в системе

Каждый пользователь - сущность:

  • логин
  • пароль
  • баллы

2.3. Меню

Каждый товар - сущность:

  • id
  • фотография
  • цена
  • описание
  • название на нескольких языках (культурная адаптация)

Добавить скролл, хранение товаров в базе, откуда они подгружаются по мере необходимости; присутствует кнопка "добавить в корзину" (плюсик с указанием количества товара)

2.4. Подсчёт всех товаров

  • cуммарная стоимость
  • кнопка оплатить
  • кнопка удалить

2.5. Корзина

  1. Если корзина пуста, то ничего не происходит (кнопка "оплатить" неактивна)
  2. Если не пуста, то после нажатия на кнопку "оплатить" открывается отдельное окно, где нужно будет ввести данные карты; банковскому серверу передаётся суммарная стоимость товаров - он проведёт транзакцию
  3. После успешной транзакции добавить в таблицу "orders" запись о сформированном заказе
  4. Во время прибытия заказа клиенту присылается push-уведомление об этом
  5. После получения заказа пользователь подтверждает получение в своём профиле (заказы тогда разделяются на подтверждённые и неподтверждённые)

Каждный заказ - сущность:

  • id
  • статус
  • содержимое заказа

2.6 Экраны

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

3. Этапы работы

  1. Создание дизайна приложения (прототипирование экранов)
  2. Вёрстка переходов между основными экранами
  3. Наполнение экранов контентом
  4. Написание базы данных
  5. Реализация возможности добавления товаров в корзину
  6. Реализация авторизации пользователей
  7. Реализация бальной системы
  8. Реализация системы оплаты

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

Бэкенд:

  • PHP
  • PostgreSQL

Фронтенд:

  • Java/Kotlin