Giter VIP home page Giter VIP logo

lawsrb's Introduction

Кодексы РБ

Кодексы РБ - это простое и удобное приложение для просмотра кодексов Республики Беларусь.

Основные функции:

  • Поиск по заголовкам разделов, глав, статей и их содержимому
  • Возможность добавления статей в избранное
  • Удобная навигация: при нажатии на главу откроются статьи этой главы
  • Темная тема :)

На данный момент в приложении присутствуют четыре кодекса:

  • Уголовный Кодекс
  • Уголовно-Процессуальный Кодекс
  • Кодекс об Административных Правонарушениях
  • Процессуально-Исполнительный Кодекс

Планируется добавление еще нескольких:

  • Гражданский Кодекс
  • Трудовой Кодекс
  • Налоговый Кодекс
  • Банковский Кодекс

Лицензионное соглашение

GNU General Public License v3.0

lawsrb's People

Contributors

alexandersimakov avatar tokyolem avatar

Watchers

 avatar

lawsrb's Issues

Отсутствие последних элементов кодексов

Описание
Отсутствие на веб-странице в конкретных кодексах названия последней главы и/или статьи, однако содержимое данной главы и/или статьи существует
(пример: РАЗДЕЛ, далее СТАТЬЯ, далее КОНТЕНТ СТАТЬИ или РАЗДЕЛ, далее КОНТЕНТ СТАТЬИ )

Как воспроизвести?
Получить веб-версию кодекса, используя встроенный в приложение парсер

Возможные причины
Взаимоисключающие пункты:

  1. Ошибка создателей веб-страницы кодексов
  2. Отсутствие в реальных печатных изданиях кодексов данных глав и/или статей

(Оба пункта нарушают иерархию хранения кодексов в базе данных приложения)

Возможные решения
Вручную добавить недостающие главы и/или статьи с сохранением их родительского id и контента

Дополнительная информация
Из имеющихся в приложении на данный момент кодексов, проблема существует исключительно в Уголовном и Административном кодексах

Рефакторинг: цвета

Описание
Необходимо вынести все цвета, заданные в коде жестко (#FFFFFF), в colors.xml

Изменить содержимое хедера меню

Описание
Хедер должен содержать название приложения и его иконку. Иконку можно добавить позже.

Причины
Изменение стандартного кода.

Настройка меню для темной темы

Описание
В светлой теме текст и фон выбранного пункта меню окрашивается в синий цвет, то же самое необходимо сделать и для темной темы, но желтым цветом.

Причины
Поддержание общего стиля приложения.

Соединить парсер и приложение

Описание
Необходимо соединить парсер с приложением.

Что нужно сделать?

  • Добавить базы данных в assets
  • Добавить кнопки обновления
  • Добавить возможность просмотра версии кодекса
  • Добавить проверку на наличия изменений в кодексах и где-то отобразить эту информацию

Страница настроек

Описание
Необходимо добавить на страницу настроек следующее:

  • #7
  • Кнопки обновления кодексов

Другое

Правильная смена темы

Описание
При смене темы должна открываться та, страница, которая была открыта до этого, и в том месте, в котором она была открыта.

Оптимизация навигации

Описание
Сделать так, чтобы первой открывалась страница глав.

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

Сохранение избранных статей при обновлении кодексов

Описание
Статьи добавленные в избранное, должны быть там и после обновления кодексов.

В данный момент избранное зависит от индекса статьи в базе данных. Если добавятся новые статьи, то индексы старых будут смещаться, соответственно и избранные статьи сместятся.

Вылет при смене темы

Описание
При смене темы иногда приложение вылетает.

Как воспроизвести?
Точно неизвестно, необходимо переключать кодексы, их страницы и менять тему.

Возможные причины
Неизвестно.

Возмножные решения
Неизвестно.

Дополнительная информация
Была ошибка IndexOfBoundary, возможно как попытка открыть несуществующую страницу какого-то кодекса.

Класс для проверки доступа к Интернету

Описание
Необходимо написать простой object класс для проверки доступа к Интернету.

Причины
Этот класс будет использоваться для корректной работы приложения без Интернета.

Кнопка поиска

Что нужно сделать?

  • Связать кнопку поиска с поисковой строкой
  • Скрывать/показывать кнопку поиска в зависимости от скролла

Некорректное отображение статей

Описание

При раскрытии содержимого статьи так-же раскрывается содержимое и некоторых других статей лежащих выше или ниже.

Как воспроизвести

  1. Перейти в раздел статей любого из кодексов
  2. Раскрыть одну или несколько статей

Возможные причины

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

Возможные решения

В классе ArticlePageAdapter можно хранить список раскрытых статей и сверятся с ним при настройке каждого layout.

Добавить шаблоны для issue

Причины

Шаблоны позволят структурировать информацию в issue и поддерживать общий стиль.

Что делать?

  1. Добавить шаблон для отчета об ошибке или баге
  2. Добавить шаблон для предложения идеи или изменений

Значок смены темы

Описание
Изменить значок смены темы.

Причины
Текущий не соответствует стилю приложения.

Изменение навигации?

Описание
Пользователь будет заходить в приложение чаще всего, чтобы найти какую-либо статью какого-либо кодекса, используя поиск.

  1. Стоит ли делать страницу глав стартовой?
  2. Стоит ли изменять порядок отображения страниц (статьи/главы/разделы)?

Найти плюсы и минусы каждого варианта, включая текущий.

Размер шрифта

Описание
Возможность менять размер шрифта на странице настроек.

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

Некорректное отображение номеров статей

Описание
Некорректное отображение дробных частей статьи при парсинге веб-старницы
(пример: Статья 46^1 отображается как Статья 461)

Как воспроизвести?
Спарсить определённый кодекс, в котором присутствуют дробные части статей

Возможные причины

  1. Метод библиотеки Jsoup .text() преобразует полученную с веб-страницы информацию в текст, не учитывая символы степеней
  2. Кодировка не позволяет хранить в переменных типа String символы степеней

Возможные решения
В тех статьях, где в названии присутствует степень, изменить её на: номер/степень
(пример: Статья 46^1 будет иметь название Статья 46/1)

Дополнительная информация
Из имеющихся в приложении на данный момент кодексов, проблема существует исключительно в Уголовном и Уголовно-процессуальном кодексах

Поведение хедера на странице обновления кодексов

Описание
При повторном открытии страницы обновления кодексов, в хедере отображается поисковая строка, избранное, а так же снизу кнопка поиска.

Как воспроизвести?

  1. Перейти на страницу обновления кодексов.
  2. Открыть меню и снова нажать на страницу обновления кодексов.

Возможные причины
При повторном открытии не срабатывает тот метод, в котором происходит сокрытие лишней информации хедера.

Возможные решения

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

Добавить кнопку проверки обновлений

Описание
Необходимо добавить кнопку проверки обновлений кодексов.

Причины
Пользователь может захотеть убедиться, что на данный момент обновлений нет.

Темная тема

Описание
Необходимо иметь возможность переключать приложения в темную цветовую схему.
Кнопка переключения должна находится в настройках. Так же она может находится в левом меню приложения.

Причины
Все современные приложения поддерживают такую функцию, так чем мы хуже?)

Парсер информации об изменениях в кодексах

Описание
Внедрение парсинга версий кодексов

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

Как можно сделать?
Необходимо внедрить в приложение парсер, который будет считывать с веб-страницы информацию об изменении в том или ином кодексе

Оптимизация поиска

Описание
Сделать так, чтобы при поиске, если не найдено ничего на страницах разделов или глав, открывалась страница статей (если на ней что-нибудь найдено).

Причины
Пользователь с большей вероятностью будет искать статью, при этом ему не надо будет на нее свайпать, так как она будет сразу открываться.

Переработка парсера версий

Описание
Переработка парсера версий

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

Как можно сделать?

  1. Каждый кодекс должен иметь свое поле для хранения в нём количества элементов с изменениями
  2. Каждый кодекс должен иметь свое поле для хранения в нём даты последнего изменения
  3. Добавить геттеры на такие поля
  4. Добавить метод update для обновления таких полей
  5. Исключить редактирование файла параметров (за это будет отвечать отдельный класс)

Сообщение о том, что ничего не найдено

Описание
Если ни на одной из страниц ничего не найдено, то надо выводить сообщение об этом.
В тексте необходимо сообщить, что что-нибудь может быть найдено в других кодексах.

Причины
Пользователю не надо будет заходить на каждую страницу, чтобы узнать, что ничего не найдено.

Баг при добавлении статьи в избранное и удалении оттуда

Описание
Если изменить отметку избранного статьи, проскроллить пока она не исчезнет с экрана, затем вернутся, то у нее будет стоять значение, которое было изначально.

Как воспроизвести?

  1. Перейти на страницу статей любого из кодексов
  2. Изменить отметку избранного любой из статей
  3. Проскроллить вниз или вверх, чтобы эта статья скрылась
  4. Снова найти эту статью, значение избранного будет старое

Возможные причины
Класс ArticlePageAdapter не обновляет свои списки, когда срабатывает setOnClickListener для кнопки избранного.

Возмножные решения
Обновлять статью (в списке класса ArticlePageAdapter), для которой был вызван setOnClickListener кнопки избранного.

Дополнительная информация
В базе данных все сохраняется корректно.

Анимация кнопок обновления кодексов

Описание
Добавить анимацию кнопок обновления кодексов (анимация смены цвета и, возможно, прокрутака колесика).

Причины
Поддержание единого стиля приложения.

Класс для SharedPreferences

Описание
Необходимо написать класс, предоставляющий доступ к SharedPreferences из любой точки приложения.

Причины
Повышение надежности и дальнейшего удобвства разработки.

Некорректное отображение статей в их контенте

Описание
Некорректное отображение номеров статей в контенте, ссылающемся на статью, имеющую в названии дробную часть
(пример: Статья 46^1 отображается как Статья 461)

Как воспроизвести?
Спарсить контент определённого кодекса, в котором присутствуют ссылки на дробные части статей

Возможные причины

  1. Метод библиотеки Jsoup .text() преобразует полученную с веб-страницы информацию в текст, не учитывая символы степеней
  2. Кодировка не позволяет хранить в переменных типа String символы степеней

Возмножные решения
В тех статьях, где в названии присутствует степень, изменить её на: номер/степень
(пример: Статья 46^1 будет иметь название Статья 46/1)

Дополнительная информация
Из имеющихся в приложении на данный момент кодексов, проблема существует исключительно в Уголовном и Уголовно-процессуальном кодексах

Анимированная смена темы

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

Причины
Красиво и современно)

Переименовать страницу настроек

Описание
Необходимо переименовать страницу настроек и сменить иконку.

Причины
Сейчас на этой странице только обновление кодексов, странно, что она называется настройками.

Сообщение о доступности обновления

Описание
Необходимо, чтобы пользователь знал, что доступно обновление не заходя на страницу обновления.

Причины
Поддержание актуальной информации.

Как можно сделать?
Можно сделать красный кружочек, в меню для страницы обновлений.

Рефакторинг ...Database классов

Причины

Дублирование кода в классах CodexOfCriminalProcedureDatabase, CriminalCodexDatabase, KoAPDatabase, PIKoAPDatabase.

Что нужно сделать?

Создать singleton класс (похожий на BaseCodexProvider), который будет предоставлять методы инициализации баз данных и доступа к их экземплярам.

Поиск и смена темы

Описание
Поисковая строка скрывается после запроса и смены темы. Чтобы отобразились все кодексы необходимо заново открывать и закрывать поиск.

Как воспроизвести?

  1. Отправить какой-либо поисковой запрос
  2. Сменить тему
    То, что нашлось будет выведено, а поисковая строка закроется.

Возможные причины
При пересоздании MainActivity поиск скрывается вне зависимости от состояния CodexProvider, из которого как раз и берется информация для вывода.

Возможные решения
Изменить процесс инициализации поисковой строки. Учитывать состояние CodexProvider.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.