Introduction

This is a simple app where you can add RSS feed to the "mix" and see all posts from all feeds mixed together and ordered by date.

When you code, please, value quality over quantity! You don't have to deliver all user stories. This test is time-boxed to 2 hours, don't spend more time than that.

Work on one story at a time and don't switch to the next one until the current story is 100% done - meaning: it's working, all acceptance criteria are confirmed, code quality achieved. (+ test coverage for back-end task)

User Stories

Acceptance criteria:
  • User can see input field with "Feed URL" label/placeholder
  • User can add a feed by pressing "Add Feed" button
  • If User enters a feed URL it will be saved
  • If feed URL is empty it won't be saved
  • The result of this form submission is obvious to the user
Acceptance criteria:
  • Every saved feed is displayed
  • User can see a URL of each saved feed
  • User can open a link to the feed in a new tab/window by clicking on it
  • Feeds list is updated when user opens the page
  • Feeds list is updated when user adds or deletes a feed
Acceptance criteria:
  • Every post or every feed is displayed
  • User can see a post title, summary, source and author
  • User can open a link to the source in a new tab/window by clicking on the source name
  • Posts are ordered by date
  • Posts list is updated when user opens the page
  • Posts list is updated when user adds or deletes a feed
Acceptance criteria:
  • User can see a delete icon next to each feed
  • User can see delete a feed by clicking on that icon
  • Feeds list is updated when user deletes a feed
  • Posts list is updated when user adds or deletes a feed

Task description

Prerequisites

Getting Started Doc Back-End files (Django project)

We don't need any javascript or Front-End coding here, just use django and existing UI mockup and make it dynamic.

For this test we're going to use django cache instead of DB (models). It's ok to use models instead but cache is preferred.

Requirements

  • The fuctionality of the user stories above is what we want to build. You should implement as many stories as you can within the time you have (2 hours) in order of priority.
  • For adding feeds use a Django Form that saves the data into basic django cache backend. You can use LocMem and any other configuration.
  • When we add a feed we should download and parse it to save the posts into the cache backend as well.
  • Posts are loaded from all feeds, mixed together and ordered by date.
  • Your code (form, view, utils) has to be covered with unit tests, ideally you should use TDD to develop the whole thing.
  • Your code should pass PEP-8 validation.

Posts (3)

France urges reform of 'remote' EU

France's president will tell Europe's leaders to focus on boosting the economy, as they prepare to discuss the fallout from the European polls.

Source: BBC | Author: Tina Fei


France urges reform of 'remote' EU

France's president will tell Europe's leaders to focus on boosting the economy, as they prepare to discuss the fallout from the European polls.

Source: BBC | Author: Tina Fei


France urges reform of 'remote' EU

France's president will tell Europe's leaders to focus on boosting the economy, as they prepare to discuss the fallout from the European polls.

Source: BBC | Author: Tina Fei