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 с ошибкой