https://github.com/gorillab/reader
A microservices simple tech feed reader
https://github.com/gorillab/reader
Last synced: 6 months ago
JSON representation
A microservices simple tech feed reader
- Host: GitHub
- URL: https://github.com/gorillab/reader
- Owner: gorillab
- Created: 2017-05-20T16:26:54.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-01-05T18:25:11.000Z (over 8 years ago)
- Last Synced: 2025-01-20T20:34:50.416Z (over 1 year ago)
- Homepage:
- Size: 1.91 MB
- Stars: 1
- Watchers: 5
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [reader](https://reader.gorillab.co)
A customizable feeds reader on web, mobile, messenger bot and even terminal platforms.
## Inspiration
The idea is started from each [Gorillab](https://gorillab.co)'s members struggling to find a good, minimal & beautiful feeds reader. And to be inspired by a simple yet [reader.one](http://reader.one) app, we decide to create our own reader that not only meets our needs but also to develop new app development skills.

## Overview

User can read news on the web, mobile apps, messenger bot or even terminal.
The interesting parts are everyone can see each other's feeds & activities on there own wall (like facebook timeline). And that means there will be a place you can explore the world's activities, the reader homepage.
Interesting right! Keep moving to the Architecture of reader.
## Architecture

The following topics describe each part of the software architecture.
### Apps
Reader will be developed in several platforms:
- Web app: react
- Mobile app (iOS): react-native
- Chat bot: messenger platform
- CLI app (Terminal on Mac OS X): commander
### SDKs
SDKs that help Reader apps to work with the api to get/update data. Based on the platforms, we will develop:
- JS SDK: web & mobile apps
- Node SDK: messenger bot & CLI app
### API Service
Node/Express based API web service that serves feeds to user.
### Scraper Admin
The admin service that manages multiple scrapers. It will ask them periodically to scrap data from specified source and store responded data to the database.
### Scraper
The service that scrap data from specified source whenever the admin requests.
### Database
Feeds, user accounts and data storage.
## Database Design

### User
The user account with basic information.
### Source
The source entity is our news source such as Hacker News, GitHub Trending, Medium, Quora, etc. The user will subscribe source(s) to read news.
### Post
This is the news post from source that user subscribed. The user is not only able to read but also to share and save (bookmark) for later reading.
## Technologies
- Front-end: React, React-Native, Messenger Platform, Commander, Bootstrap, Sass
- Back-end: Express, Passport, Mongoose
- Database: MongoDB
- DevOps: Docker, Nginx, PM2, Travis-CI, Heroku
- Tools: swagger-node, feedparser, create-react-app, create-react-native-app
## Development Stages
### Development
Reader will be run in local at [https://reader.dev](https://reader.dev). Checkout the following repositories for development:
**Web**
- [reader-web](https://github.com/gorillab/reader-web): web-based app
- [reader-theme](https://github.com/gorillab/reader-theme): customized bootstrap theme
- [reader-js](https://github.com/gorillab/reader-js): js sdk
**Services**
- [reader-api](https://github.com/gorillab/reader-api): api service
- [reader-scraper-admin](https://github.com/gorillab/reader-scraper-admin): scrapers admin service
- [reader-scraper](https://github.com/gorillab/reader-scraper): base scraper service
- [reader-github-trending](https://github.com/gorillab/reader-github-trending): github trending scraper based on reader-scraper
- [reader-hn](https://github.com/gorillab/reader-hn): hacker news scraper
- [reader-medium](https://github.com/gorillab/medium): medium scraper
**Tools**
- [swagger-node](https://github.com/gorillab/swagger-node): for generating api, scrapers & scraper-admin services from openapi yaml file
### Staging
We use Heroku to run many instances of reader services:
- Web: [https://staging.reader.gorillab.co](https://reader.gorillab.co)
- API: [https://staging.reader.gorillab.co/api](https://reader.gorillab.co/api)
- Scraper Admin: [https://staging.reader.gorillab.co/admin](https://reader.gorillab.co/admin)
### Production
Reader web app will be lived at [https://reader.gorillab.co](https://reader.gorillab.co)
## Product Roadmap
Check this [GitHub Board](https://github.com/gorillab/reader/projects/1) for Reader's roadmap.
## Gorillab Team
Our members are on GitHub:
- [Chau Duong](https://github.com/orgs/gorillab/people/chauduong1192)
- [Khang Huynh](https://github.com/orgs/gorillab/people/khanghuynh92)
- [Phat Pham](https://github.com/orgs/gorillab/people/phatpham9)
- [Phu Tang](https://github.com/orgs/gorillab/people/tangkhanhphu)
Gorillab | [Website](https://gorillab.co) | [GitHub](https://github.com/gorillab) | [Say Hello!](mailto:hello@gorillab.co)