All Projects → fennifith → Feedage

fennifith / Feedage

Licence: Apache-2.0 license
A basic "news reader" that sorts posts from various RSS feeds into categories.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Feedage

change app package name
Change App Package Name with single command. It makes the process very easy and fast.
Stars: ✭ 72 (+278.95%)
Mutual labels:  android-app
nutrition-framework
Skripsi / TA of Muhammad Faisal Amir - Telkom University 2021
Stars: ✭ 30 (+57.89%)
Mutual labels:  android-app
EbookReader
The EbookReader Android App. Support file format like epub, pdf, txt, html, mobi, azw, azw3, html, doc, docx,cbz, cbr. Support tts.
Stars: ✭ 37 (+94.74%)
Mutual labels:  android-app
justBreathe
A minimal meditation app made with Flutter
Stars: ✭ 47 (+147.37%)
Mutual labels:  android-app
tracking-location-provider-android
Tracking the android mobile and animating marker smoothly in Google Maps. Tracking has been done both in foreground and background. Tested in Android Oreo 8.1, Android 6.0 and Android 5.0
Stars: ✭ 37 (+94.74%)
Mutual labels:  android-app
InstaSmart
A Flutter app to plan and beautify your Instagram feed
Stars: ✭ 18 (-5.26%)
Mutual labels:  android-app
o-fish-android
Android app for the Officer's Fishery Information Sharing Hub (O-FISH). The mobile app allows fisheries officers to document and share critical information gathered during a routine vessel inspection.
Stars: ✭ 19 (+0%)
Mutual labels:  android-app
JiaxingAcademy
嘉兴学院
Stars: ✭ 12 (-36.84%)
Mutual labels:  android-app
CurvedBottomNavigationView
we will learn How to draw custom shapes in Curved Bottom Navigation View
Stars: ✭ 42 (+121.05%)
Mutual labels:  android-app
geopackage-mapcache-android
GeoPackage MapCache Android App
Stars: ✭ 33 (+73.68%)
Mutual labels:  android-app
BestReview
Android面试题库,覆盖初级、中级、高级、资深工程师、架构师、专家等各级别,精选高质量文章,祝大家面试顺利。 附:Android各级别工程师技能图谱:https://blog.csdn.net/ddnosh/article/details/108172983
Stars: ✭ 123 (+547.37%)
Mutual labels:  android-app
currency-edittext
A Custom EditText implementation that allows formatting of currency-based numeric inputs.
Stars: ✭ 86 (+352.63%)
Mutual labels:  android-app
SuperToolbar
Android native Toolbar on steroids 💪
Stars: ✭ 52 (+173.68%)
Mutual labels:  android-app
Hibi
[No Active Development] An Android app for learning Japanese by keeping a journal.
Stars: ✭ 37 (+94.74%)
Mutual labels:  android-app
ReactAnuvaad
Localize your app in gloval languages
Stars: ✭ 20 (+5.26%)
Mutual labels:  android-app
sms antitheft
android anti-theft app to control your mobile when there is no internet
Stars: ✭ 21 (+10.53%)
Mutual labels:  android-app
LocationMapViewer
Android App to view Locations in a map with support for gpx, kml and kmz data
Stars: ✭ 31 (+63.16%)
Mutual labels:  android-app
MobilECG-II
Open source ECG holter
Stars: ✭ 375 (+1873.68%)
Mutual labels:  android-app
Food Ordering App
Using Firebase, It's a Real-Time food delivery App where user can order food from different restaurants menu
Stars: ✭ 30 (+57.89%)
Mutual labels:  android-app
Capturable
🚀Jetpack Compose utility library for capturing Composable content and transforming it into Bitmap Image🖼️
Stars: ✭ 365 (+1821.05%)
Mutual labels:  android-app

Feedage is a basic "news reader" app that sorts articles from various RSS feeds into categories. This project was created as a final project for my Computer Science class in high school.

Screenshots

Categories Article About
img img img

Contributing

Pull requests are welcome. Please see CONTRIBUTING.md for more information on steps to take before submitting a pull request.

Organization

This project is split into two sections, an "app" and a "library". The library handles all of the data processing, such as fetching articles from the server, parsing data, and organizing them into categories. The app module handles all of the UI, as well as bookmarks and caching.

Sorting Algorithm

The library module sorts the articles into categories by looking for common pairs of words between them. This process can be split into multiple steps as follows:

1. Getting a Threshold

The program takes the average of "difference values" resulting from the comparison of every possible combination of articles provided to it. The process of comparing one article to another is as follows:

A. String "Grouping"

The content of each article is split into groups of words and the amount they occur, accounting for duplicates and removing words deemed "useless". For example, the sentence

“Pudgy orangutans are a sign of good health and peace in the orangutan culture”

would be split into

("pudgy","orangutans") ("orangutans","are") ("are","a") ("a","sign") ("sign","of") ("of","good") ("good","health") ("health","and") ("and","peace") ("peace","in") ("in","the") ("the","orangutan") ("orangutan","culture")

but, after removing useless words (strings with a length less than 5, along with a few hardcoded strings to ignore), you are left with just ("pudgy","orangutans") and ("orangutan","culture").

B. Comparing Occurrences

The grouped strings of the two articles are then compared to each other to determine the relative "difference" between them. If ("pudgy","orangutans") occurs twice in one article and never in the second, the difference will increase by about two, accounting for the difference in length of the two articles.

2. Getting Another Threshold

The program then iterates through every possible article, and compares it to every other article in order to get another threshold difference for only that article. If the resulting threshold is less than the threshold of all the articles obtained in the first step, it will continue to create a category based on that article.

3. Adding Posts

In one final loop through all of the posts, the program will compare the current article to every other, adding it to a list if the difference is less than the current post's threshold. After checking that multiple articles are present and that they come from multiple sources, the category will be created.

4. Creating the Description

This part only exists to provide the user with a reason that the category was created. All of the word groupings used in step 1B will be added to the category such that:

  • if a grouping exists with the same first word, the new grouping will be added before it
  • if a grouping exists with the same last word, the new grouping will be added after it
  • if no such groupings exist, the new grouping will be added at the end of the list

These groupings will then be combined into fake "sentences" to display as the category description, so that ("have","smelly") ("orangutans","have") ("smelly,"hair") becomes "Orangutans have smelly hair.".

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].