Giter VIP home page Giter VIP logo

take365-android's People

Contributors

divere avatar juks avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

take365-android's Issues

Восстановление пароля

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

Интерфейс восстановления пароля должна вызываться кнопкой "Восстановить пароль", расположенной в активности входа.

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

  • Поле "Адрес email"
  • Кнопка восстановить пароль

В случае успешного ответа от метода API, следует отобразить текст "Иструкции по восстановлению пароля отправлены по указанному Вами email-адресу".

Метод API: https://take365.org/api/#!/Users/post_user_recover

Функционал «лента»

Для просмотра обновлений историй людей, выбранных пользователем, необходимо реализовать функционал «Лента».

Для этого нужно

  • Добавить в боковое меню пункт «лента».
  • Реализовать активность, отображающую список обновлений, получаемых через API.
  • В случае если список подписки пуст, в активности необходимо отображать сообщение «На данный момент у вас нет подписок. Найти интересных людей».
  • Ссылка «найти интересных людей» должна служить переходом в активность «люди».

Активность «лента»

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

Связанная задача: #7.

Метод API: https://take365.org/api/#!/Feed/get_feed_feed

Ошибка авторизации при возобновлении работы

При возобновлении работы приложения, свёрнутого на активности просмотра истории, возникает ошибка авторизации «You are requesting with invalid credential». Вероятно, при этом на происходит отправка заголовка авторизации.

Мотиватор мобильному пользователю

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

То есть, основные части функционала:

Интерфейс настроек уведомлений
Часть интерфейса общих настроек приложения, в котором есть раздел "Мотиваторы" и чекбокс "Напоминать мне о моих историях" и список выбора: 1 раз в день, 2 раза, 3 раза.

Функционал уведомлений
Функицонал реализует звуковое и графическое уведомление в панели событий мобильного устройства, работающее по следующей логике-расписанию.

График уведомления "1 раз в день": 16:00 текущего дня.
График уведомления "2 раза в день": 16:00, 20:00.
График уведомления "3 раза в день": 12:00, 16:00, 20:00.
При наличии особой мотивации в процессе разработки, возможность установки расписания пользователем можно реализовать в дальнейшем.

Условие уведомления и текст
Для определения списка историй, напоминание о которых актуально для текущего дня следует использовать соответствующий метод API: https://take365.org/api/#!/Stories/get_story_list_notify. Единственный параметр данного метода на момент написания задачи — значение текущей даты в формате YYYY-MM-DD.

Метод возвращает список активных историй, для которых нет изображений в заданный день.

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

Меню действий к фотографии в календаре

Необходимо реализовать меню действий для фотографии в календаре, доступное по long-tap.

Список действий следующий:

Заменить фотографию
Предлагает пользователю сделать новую фотографию с помощью камеры, либо выбрать файл из медиа-библиотеки

Метод: https://take365.org/api/#!/Media/post_media_upload

Добавить описание
Открывает интерфейс редактирования текста, связанного с фотографией. Решили постепенно отказаться от поля "Тема", поэтому редактировать нужно только поле многострочного ввода текста. Заголовок: "Рассказ".

Метод: https://take365.org/api/#!/Media/post_media_write

Удалить фотографию
Удаляет изображение за указанную дату.

Метод: https://take365.org/api/#!/Media/post_media_delete_recover

Изменение ориентации при загрузке

При изменении ориентации устройства, после перерисовки интерфейса, не возобновляется отображение прогресса загрузки. Сам процесс загрузки при этом продолжается.

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

Отображение и редактирование профиля

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

Для этого необходимо два интерфейса: просмотр профиля, редактирование профиля. Ниже описание начальной реализации.

Интерфейс просмотра профиля содержит элементы

  • Изображение пользователя (если нет, показать пиктограмму силуэта)
  • Имя учётной записи
  • Имя пользователя
  • Текст "О себе"
  • Кнопка "редактировать" для владельца профиля

Дополнительно для профиля другого пользователя

  • При просмотре профиля другого пользователя, интерфейс должен содержать кнопку с изменяемым состоянием подписаться/отписаться. Данный функционал позволяет следить за обновлениями историй пользователя.

Интерфейс редактирования профиля содержит элементы

  • Загрузка изображения (из библиотеки или изображение, полученное с помощью камеры)
  • Изменение имени учётной записи пользователя
  • Изменение имени пользователя
  • Редактирование текста "О себе"
  • Отдельно: изменение пароля учётной записи

Методы API
Получение данных профиля: https://take365.org/api/#!/Users/get_user_profile_id
Обновление общих параметров профиля: https://take365.org/api/#!/Users/post_user_update_profile
Обновление пароля учётной записи: https://take365.org/api/#!/Users/post_user_update_security
Подписки: https://take365.org/api/#!/Feed/post_feed_follow
https://take365.org/api/#!/Feed/post_feed_unfollow

Дополнительно
Вновь зарегистрированному пользователю неплохо предлагать заполнить свой профиль.

Функционал «люди»

В качестве минимальной возможности поиска участников проекта, необходимо реализовать функционал «люди».

Для этого нужно

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

Связанная задача: #2.

Метод API: https://take365.org/api/#!/Users/get_user_suggest

Отображение описания изображений

Необходимо реализовать отображение описаний историй при их просмотре в режиме «проигрывателя».

Способ отображения текста: tap по изображению выдвигает снизу слой с описанием. Если текст описания слишком велик, можно воспользоваться прокруткой. Повторный tap — скрывает описание.

Spinner для активностей, ожидающих данные

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

Исходя из этого, необходимо доработать интерфейс вывода списка историй и интерфейс календаря историй, таким образом, чтобы до момента загрузки и визуализации данных интерфейс отображал spinner, а само время загрузки было ограничено таймаутом. При достижении которого выводилось сообщение «Время ожидания выполнения операции истекло» и была доступна кнопка «попробовать ещё раз».

Визуализация ошибок при вызове методов API

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

Необходимо доработать приложение таким образом, чтобы в случае работы с конкретными формами сообщения об ошибках API вида

{"errors":[{"value":"Указанное имя пользователя уже используется","field":"username"}]}

Визуализировались интерфейсом с подсветкой соответствующего поля формы. А там где соответствие ошибки с полем ввода установить не представляется возможным — ошибки отображались в виде общего сообщения.

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.