Git Product home page Git Product logo

everfeeds's People

Contributors

alari avatar

Stargazers

 avatar

Watchers

 avatar  avatar

everfeeds's Issues

Научиться пушить. Начать с твиттера

Для каждого доступатора, который может публиковать, нужно научиться это делать, для начала -- простой текст с заголовком, плюс текущие настройки фильтра ленты -- указание тегов и одной категории.
Начнём с твиттера.
По сути, апи уже есть -- Accessor.push(IEntry entry).

Настроить логгирование на лайве

Вообще оно работало раньше, но почему-то перестало.

Задача: логи приложения начиная с уровня debug должны записываться в собственный файл аппликейшна.

Фильтры как домены

После выбора тегов и категорий в правой колонке, должно появляться поле -- назвать фильтр. Если назвал, можешь сохранить как новую вкладку.
Там будет этот фильтр с уже настроенными параметрами. Если начинаешь изменять параметры, предлагает создать новый фильтр или изменить параметры текущего.
Нужно создать домен фильтра, плюс создать FilterEnvelop instanceof IFilter для единообразия методов поиска Entries.

Автор записей должен быть воспроизводим

Нужно переделать систему хранения авторов в записях.

  • Нужно сохранять identity автора в формате, как мы аккаунтам идентити даём. То есть "тип провайдера:неменяемый айди". Это может пригодиться после для отслеживания консистентности, поиска френдов и тп.
  • Нужно сохранять human-readable поле имени, которое после и показывать.

Соответственно модифицировать все доступаторы.

Mongo migration

Надо перейти на монго, когда будет RC1 хотя бы у плагина. Это планируется на неделе.

Доступ к Evernote

  • Доступ к Evernote не работает на production
  • С новым ключом нужно на production сделать провайдер апи не для песочницы -- токены соотв. получил

Шаринг полученного контента

Должна быть возможность выбрать доступы, в которые расшарить полученную в ленте entry, и расшаривать её. Прямо в ленте!

Обновление табов

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

Апдейт данных записей

  1. Когда подсасываются записи, которые уже есть в базе (по идентифаеру), они должны обновляться.
  2. Хорошо бы совсем старые записи тоже обновлять там, где это имеет смысл. Например, в evernote это должно быть вполне регулярно.

Поле Request A Feature

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

i18n

Все сообщения и тексты должны быть вынесены в i18n.

Новые доступы

Нужно сделать список социальных медиа, к которым можем и хотим сделать доступы, и потихоньку эти доступы пилить. Минимум для добавления доступа и открытия нового релиза -- авторизация + пулл.

Обфускаторы

Нужно встроить YUI Compressor, чтобы он обжимал жаваскрипт и css в момент запуска на продакшне.
Может быть, какое-то такое решение уже есть.

Linking contacts

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

Разобраться с полями доступатора FB

Поле заголовок -- точно не заголовок.

Конкатенация описания и сообщения -- вряд ли панацея.

Нужно аккуратнее создавать записи.

Кроме того, работает ли категория "events"?

Доделать LinkedIn Accessor

Доступ в Linked In сейчас даёт только авторизацию. Нужно разобраться, какими лентами пользуется народ в линкедине, можем ли мы подсосать личные сообщения и тд, сделать категории (ленты или-не) и теги (или-и), научиться парсить сообщения.

Entries scrolling

Когда докручиваешь до конца странички с записями, если есть ещё записи, подходящие по фильтру, должна быть кнопка типа "load more entries", которая подсосёт ещё страничку и добавит в конец ленты в табе.

Названия табов

Сейчас при создании доступа возвращается screen -- уникальный идентификатор в системе.

  • Он должен быть уникален и неизменяем. Логин в evernote подходит, screen_name в twitter -- нет.
  • Уникальность ограничевает читаемость человеком. Нужно отдельное поле title в домене Access, чтобы хранить там имена табов. Это поле нужно давать аутентификацией.

Доделать Facebook Accessor

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

Полный рендеринг записей

Записи в лаконичном виде должны рендериться кратко: заголовок, метки какие-то, источник, мб хедлайн.
Должно быть можно внутри ленты раскрыть запись полностью и посмотреть её содержимое.
Наверное, при этом должен происходить expand контейнера записи -- простейший вариант.

Подумать-сделать аннотацию для доступов

Во многих accessor-ах есть методы, которые выбрасывают exception, если доступ просрочен. Сейчас обработка такого кейса не сделана или поражает уродством. Если можно это как-то сделать аннотациями, было б классно.

Титульная страница после авторизации

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

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

свой облачный деплоймент -- ресёрч

http://blog.springsource.com/2011/04/12/one-step-deployment-with-grails-and-cloud-foundry/

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

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

Introduce Kinds subsystem

Многие ленты дают контент конкретного набора типов.

Например, твиттер: личные сообщения, твиты.

Фейсбук: фоточка, хтмль-текст, статус, видео, и тд.

Это константный набор, свой для каждого провайдера. Он по-разному возвращается АПИ, по-разному сохраняется в EntryEnvelop и рендерится.

Нужно создать подсистему, которая будет это обслуживать. Возможно, с помощью отдельных enum'ов.

Реорганизовать лейблы

Так как теперь есть ассигнейшн и майлстоуны, нужно реорганизовать лейблы. Они должны отражать:

  • Тип и приоритет задачи (баг, блокер, ...)
  • Структурная часть системы (ui, db, deployment, ...)
  • Подпродукт, на который направлен тикет

Все лейблы должны иметь расшифровку в вики.

Links to _blank

Нужно ссылкам из записей добавлять target="_blank" в автоматическом режиме. Может быть, жаваскриптом.

Introduce Kinds subsystem

Многие ленты дают контент конкретного набора типов.

Например, твиттер: личные сообщения, твиты.

Фейсбук: фоточка, хтмль-текст, статус, видео, и тд.

Это константный набор, свой для каждого провайдера. Он по-разному возвращается АПИ, по-разному сохраняется в EntryEnvelop и рендерится.

Нужно создать подсистему, которая будет это обслуживать. Возможно, с помощью отдельных enum'ов.

Починить mash

Страничка mash не работает, так как запоминает настройки последнего доступа

Предпросмотр

У нас есть прекрасная возможность делать тамбнейлы хтмль-страничек. С одной стороны.

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

Нужно разработать и реализовать концепцию эффективных предпросмотров.

Настроить логгирование на лайве

Вообще оно работало раньше, но почему-то перестало.

Задача: логи приложения начиная с уровня debug должны записываться в собственный файл аппликейшна.

Проблемы с I18n

У нас есть класс I18n, предназначение которого -- упростить ввод сообщений локализованных. Он позволяет сократить их в несколько раз, до I18n."message.code"()

  • Почему-то иногда после простоя сайта это не работает. Заявленный в I18nBoot перехватчик отцепляется. Соответственно, ложится весь сайт.
  • Почему-то I18n.metaClass.'static'.getProperty не работает, хотя было бы удобно не писать круглые скобки вообще.

Сделать Gmail/IMAP (можно и SMTP)

Gmail даёт возможность юзать IMAP без логина-пароля, по специальному OAuth. Мне кажется, это обалденная штука, которую маст хэв.

Обработка файлов

Нужно уметь обрабатывать файлы. Надо будет закачивать картинки во фликр, фейсбук, пикасу, эверноут и тп. И не только картинки.
Нужно организовать инфраструктуру и архитектуру хранения, обработки и доступа к файлам. Научиться сжимать файлы, определять их типы (например, чтобы закачивать что угодно в эверноут, например)

Очистить абстракцию авторизации

В контроллере Access и в сервайсе AuthService не должно быть уверенности, что мы авторизуемся через OAuth. весь код, зависимый от метода авторизации, должен быть вынесен в... эээ... авторизаторы. По аналогии с тем, как сейчас объект сессии им передаётся для совершения OAuth авторизации.

Апи должно быть аккуратно описано в главном предке.

Лаконичный рендеринг

Все entries, когда в лентах, должны форматироваться, с одной стороны, однотипно: имя, заголовок, ссылка, дата, значок источника, картинка и тп. С другой стороны, различно: твиттер накладывает свои ограничения, что-то другое -- свои.
Нужен простой метод организации рендеринга entry. Дёшево добавлять, сопровождать фрагменты.
Сейчас это набор <g:if>.

Сообщения Твиттера

У твиттера есть разные типы сообщений: это обычные твиты и личные мессаги.
Это как-то должно отражаться на базе данных. Сообщения должны обрабатываться по-разному, иметь разное identity, адрес, по-разному рендериться.

Сделать набор kinds

Доступ (и доступатор) должен уметь давать список всех kind'ов, чтобы по ним можно было фильтровать. (мб как enum)

Соотв. образом нужно изменить фильтр. Kind обрабатывать как KindEnvelop, без домена.

Сделать список emails

Гугл отдаёт емейл. Фейсбук тоже может.
Это априори подтверждённые адреса.
Нужно их коллекционировать в какую-нибудь табличку (или в список строчек, если монго поднимем)

Текст оригинала из веба

Нужно уметь не только подсосать текст, который даётся в записи (например, аннотацию RSS), но и, если это возможно, страничку оригинала. Резать ей head, script, iframe и тд, чистить, оформлять для удобного чтения, возвращать юзеру.

Делать только по запросу, по возможности -- на клиент-сайд.

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.