Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

article clustering #14

Closed
jaesivsm opened this issue Feb 26, 2016 · 0 comments
Closed

article clustering #14

jaesivsm opened this issue Feb 26, 2016 · 0 comments
Assignees
Milestone

Comments

@jaesivsm
Copy link
Owner

jaesivsm commented Feb 26, 2016

Cluster Feature

The idea here is to provide a way of grouping article from different feeds or from the same feed on a criteria.

The base implementation criteria will be "article have the same link". It's the simplest form of criteria I could think of while being quite useful since duplicate articles from different feeds are a recurring things in my day to day feeds reading.

Cluster will be created automatically on the server side. It should happen at the article creation.

Each article will have its cluster. Several informations from the article will be de-normalized on the cluster such as title, feed.icon, date.

The first article of the cluster is to be that cluster main article. It shall be displayed first. If another article is added to the cluster, it shall remain secondary unless the feed it comes from is marked as a primary information source in which case articles from it will automatically become main articles in their cluster.
If two feed are primary then appearance order will prevail.

If an article is attached to an existing cluster, informations from that article will be considered as second hand and dismissed unless the feed it comes from is marked as primary source. In that case only, the cluster will be updated.

Current database schema

             +------+
             | user |
             +------+
               ^ ^ ^
               | | |
      +--------+ | |
      |          | |
+----------+     | |
| category |     | |
+----------+     | |
     | ^         | |
     | |         | |
     | +-------+ | +-----+
     |         | |       |
     |       +------+    |
     |       | feed |    |
     |       +------+    |
     |           ^       |
     |           |       |
     |           +-----+ |
     +---------------+ | |
                     | | |
                  +---------+
                  | article |
                  +---------+

Proposed database schema

              +--------+
              |  user  |
              +--------+
               ^ ^ ^ ^
               | | | |
      +--------+ | | |
      |          | | |
+----------+     | | |
| category |     | | |
+----------+     | | +----------+
   ^  ^ ^        | |            |
   |  | |        | |            |
   |  | +------+ | +-----+      |
   |  |        | |       |      |
   |  |      +------+    |      |
   |  |      | feed |    |      |
   |  |      +------+    |      |
   |  |        |  ^      |      |
   |  |        |  |      |      |
   |  |        |  +------+----+ |
   |  |        +-------+ |    | |
   |  +--------------+ | |    v |
   |                 | | |  +---------+
   +-----------------+-+-+->| cluster |
                     | | |  +---------+
                     | | |      ^
                  +---------+   |
                  | article |---+
                  +---------+

The cluster table will be referenced by each article which belongs to it, and, has category will only have a user_id as foreign key.

Depending on usage, various de-normalization may be possible :

  • main article feed icon
  • main article title
  • main article date

UX and UI handling

The UI has three column : menu, middle panel with the article list and right panel with article content.

Menu

Not much will change here on the outside. Filtering will be altered though.

Selecting category / feed should filter cluster displaying only those pointing towards articles that belong to those category / feed. That should be through relation table (many to many).

Middle Panel

Middle panel will from that point only display clusters. It should not be any different from before since icon, feed title and article title will be copied from the main article.

The Right Panel

Only the article view would have to change.
If the cluster only has one article, the view should remain the same.
If the cluster has more than one article, each article should be available through a tab inside the right panel.
It is important to think of large cluster containing more articles that what can be displayed in the width of the page. Decision will be made later in development about either horizontal scrolling, a drop down list, or a better options than the two precedent one.

@jaesivsm jaesivsm added this to the 2.X milestone Feb 26, 2016
@jaesivsm jaesivsm removed this from the 2.X milestone Apr 22, 2016
@jaesivsm jaesivsm changed the title article grouping article clustering Jul 26, 2016
@jaesivsm jaesivsm self-assigned this Jul 26, 2016
jaesivsm added a commit that referenced this issue Oct 2, 2016
jaesivsm added a commit that referenced this issue Oct 2, 2016
@jaesivsm jaesivsm added this to the 2.0.0 milestone Oct 2, 2016
jaesivsm added a commit that referenced this issue Oct 2, 2016
@jaesivsm jaesivsm closed this as completed Mar 6, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant