README.md

ТЗ DEMO spbgasu

Описание проекта:

Следует разработать простое приложение со страницей авторизации и сервисом Вуз в лицах. Все нужные референсы и стили указаны в проекте приложения Figma. Единственные отличия с макетом, это положение кнопки поиска в шапке приложения, а не среди нижних панелей.

Stack:

  • Android Studio - среда разработки.
  • Flutter - кроссплатформенный фреймворк.
  • Dart - скриптовой язык программирования.
  • Hive - нереалиционная база данных в формате отображения. Пример
  • Dio - библиотека для выполнения запросов. Работает в связке с json_serializable, json_annotation, build_runner.

Древо проекта

  • /lib:
    • /src
      • /models - Модели данных.
      • /services - Сервисы, которые взаимодействуют с внешними API или базами данных.
      • /utils - Служебные функции или классы.
      • /widgets - Повторно используемые виджеты.
      • /components - компоненты и виджеты, которые имеют состояние.
    • /views - все статичные компоненты пользовательского интерфейса вашего приложения. Они не должны отвечать за внутреннюю логику.
    • /global - компоненты и фабрики, которые могут использоваться внезапно в любой части программы.
      • /factories - фабрики для получения готовых шаблонов.
      • /components - вспомагательные компоненты
    • main.dart

Ветки разработки:

  • feature/global_info:

    • factories
      • message_factory.dart - класс со статичными методами для получения разных снейкбаров с ошибками и уведомлениями и обычных уведомлений. Возвращает имплементации следующих компонентов-интерфейсов:
    • components/messages
      • error_message.dart - всплывающее окно с ошибкой.
      • snake_message.dart - всплывающее простое уведомление.
      • info_message.dart - всплывающее информирующее уведомление.
      • question_message.dart - всплывающее окно с вопросом или подтверждением.
      • error_message_builder.dart - билдер окна с ошибками.
      • info_message_builder.dart - билдер уведомлений.
      • question_message_builder.dart - билдер окна с вопросом или подтверждением.
      • snake_message_builder.dart - билдер окна с простым уведомлением.
  • feature/global_inter:

    • factories
      • button_factory.dart - класс со статичными методами для получения кнопок.
      • pills_factory.dart - класс со статичными методами для получения ссылок, свичей и остальных элементов интерактива.
  • feature/global_content:

    • factories
      • icons_factory.dart - класс со статичными методами для получения иконок. Может быть адаптером для внешней библиотеки или подтягивать внутренние svg.
      • label_factory.dart - класс со статичными методами для получения заголовков и разной типографии. Может быть адаптером для внешней библиотеки или подтягивать внутренние svg.
    • components/const
      • COLORS.dart - класс с публичными константными переменнами, хранящими цвет.
  • feature/login_page:

    • views
      • login_view.dart - класс страницы логина.
    • services
      • login_service.dart - класс обработки запросов для логина.
    • components/forms
      • login_form.dart - класс реагирующий на действия пользователя.
    • models
      • user_model.dart - класс сущность данных о пользователе
  • feature/main_page:

    • views
      • main_view.dart - главный класс страницы, который будет использоваться в application.dart.
    • components/bars
      • main_page_header_app_bar.dart - верхнее меню, возможно будет app_bar.
      • main_page_footer_tabs_bar.dart - нижнее меню maybe tabs bar.
    • components/containers
      • main_page_container.dart - контейнер использующий классы с суффиксом “frame” взависимости от state.
  • feature/faces_and_deps:

    • components/frames
      • faces_and_deps_frame.dart - класс страница вуз в лицах состоит из статичного верхнего свича и контента.
    • widgets/face
      • faces_letters_list.dart - страница при сборе по фамилии с алфавитным скроллом.
      • faces_letter.dart - блок для одной буквы .
      • face.dart - блок для одной буквы .
    • widgets/deps
      • deps_list.dart - нижняя часть страницы при сборе по кафедре.
      • dep_block.dart - блок для одной кафедры.
      • dep_header.dart - шапка блока кафедры.
      • dep_persons_list.dart - список сотрудников кафедры.
    • models
      • person_in_faces_model.dart
      • person_in_deps_model.dart
  • feature/person

    • widget/person
      • person_modal.dart - страничка сотруднинка. Показывается как нижнее модальное окно. Обратите внимание на то, что кнопка Подробнее всегда остается внизу. То есть нужно разбить страничку на 3 части и раздвигать середину.
      • person_header.dart - блок с фотографией ФИО и должностью.
      • person_map_buttons_list.dart - компонент с кнопками-ссылками на карту гасу и на google maps.
      • person_body.dart - блок с факультетом, и кнопками.
      • person_footer.dart - блок с подробнее и лайками и избранным.
    • models
      • person_model.dart
  • feature/network

    • network_service.dart - сервис по отправке запросов.
    • url_builder.dart - класс строитель запроса.
    • …_converter.dart - классы конвертеры из json в соответствующие модели:
      • user_model.dart
      • person_model.dart
      • person_in_faces_model.dart
      • person_in_deps_model.dart

Поллезные ссылки:

Описание

Приложение спбгасу

Конвейеры
0 успешных
0 с ошибкой