Skip to content

1. Introduction

Khushal Jobanputra edited this page Feb 26, 2018 · 4 revisions

This part of the document will provide you with an idea of everything that is written in this WiKi. Below is the purpose, application description, acronyms and abbreviations used in this wiki.

Purpose

The purpose of this document is to provide you with a detailed understanding of the "EntireNews" App for Android. It will explain how the App works and what goes on behind the scene e.t.c.

Application description

An app that will show current and recent news from all over the world. A nice, clean, simple and interactive user interface that is easy to use. The app will show user live news feed from various and trusted news sources (free API used from https://newsapi.org).

The app shall include the following features -

  • An interactive UI with Transitions & Animations for ease of use.
  • Login ability to get the same recommendations across all devices using the same account
  • Multiple news sources in one app (i.e. BBC, CNN, ABCNews, USA Today, Times).
  • Provide trending news and recommended news based on your viewing and saving behaviour
  • The ability to select/subscribe to certain news sources.
  • The ability to save and read news offline.
  • The ability to read news that the user saved for reading offline.
  • Notify the user on a fixed interval for checking the news.
  • The ability to share a news article with friends and family on social network.

The app should have the following features (future plan and improvements) -

  • A advanced recommendation system
  • Ability for a user to be able to use the app without login
  • Ability to have all the latest recommended news saved offline for reading when in no connectivity

Note: these features will be implemented if time permits.

Acronyms and abbreviations

Term Meaning
App Android mobile application
Activity An activity is a single, focused thing that the user can do. Almost all activities interact with the user, so the Activity class takes care of creating a window for you in which you can place your UI[1].
Fragment A Fragment represents a behavior or a portion of user interface in an Activity[2].
API Application Programming Interface is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components[3].
Scraping Web scraping is a technique of extracting information from websites.[4]
Open Source Denoting software for which the original source code is made freely available and may be redistributed and modified.
URL A Uniform Resource Locator, colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it
Slug URLs User-friendly URLs, or search engine-friendly URLs
NoSQL A NoSQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.[5]
Backend A computer service running on the server
FR Functional requirement
DESC Description
RAT Rational
DEP Dependencies
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate
Python Python is a widely used high-level programming language for general-purpose programming
Library A library is a collection of non-volatile resources used by computer programs, often to develop software
JWT JSON Web Token is a compact URL-safe means of representing claims to be transferred between two parties
Recommendation System A system that will run on the server and will process the views and the saves of a user to recommend them with more relevant news articles to them
Trending Something that is currently popular among the population similar to trending twitter hashtags, facebook trending posts, etc.

References

[1] https://developer.android.com/reference/android/app/Activity.html
[2] https://developer.android.com/guide/components/fragments.html
[3] Shaun Bebbington (2014). "What is coding". Retrieved 2014-03-03
[4] Boeing, G.; Waddell, P. (2016). "New Insights into Rental Housing Markets across the United States: Web Scraping and Analyzing Craigslist Rental Listings". Journal of Planning Education and Research
[5] "NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable"
[6] https://www.toptal.com/algorithms/predicting-likes-inside-a-simple-recommendation-engine

Overview

The remainder of this document includes 3 parts. The second part describes the complete project and how we are planning on achieving it. This part also introduces the various things we used to make the project and what those things exactly do in our project.

The third part has all the specific and functional requirements for the app.

The fourth part covers the parts of the project that are must and also the wants. In this part the prioritization of tasks is mentioned and also the plan for the project is elaborated.