Django Project Blueprints
上QQ阅读APP看书,第一时间看更新

Requirements

For any complex application, it is always a good idea to know what features we need to work on before we jump into coding. Let's look at what we want to create in this chapter.

We want to have a Django-based link sharing and discussion site like Hacker News. The site should have user accounts, allow users to share links, have a page where these links are listed in some defined order, and allow users to vote and comment on those links.

Additionally, we'd like to have safeguards against spammers and malicious users who would degrade the content quality of our site if left unchecked.

In a list form, here are the features that we want our application to provide:

  • User registration and authentication (already provided in the code pack)
  • Link submission by users
  • Voting on links submitted by other users
  • Commenting on the submissions and replying to comments by other users
  • An algorithm to rank the submitted links in some defined order that depends on a number of factors including the votes for that link, number of comments, and age of the submission
  • A way to disallow spammers from creating scripts that can automatically flood our site with submissions