Skip to content

prabhuignoto/newsquirrel

Repository files navigation

Newsquirrel

TravisCI style: styled-components Redux Typescript

A Refreshingly simple News reader.

Website Front

Features

  • Read News Headlines from 7 different countries( US, UK, IN, FR, DE, AU, CA).
  • Switch between news categories easily.
  • Three different reading Modes (Comfortable, Compact and Image free).
  • Night mode for a pleasant news reading experience.
  • Responsive and built from the ground up to run seamlessly on mobiles, tablets and desktop.
  • QuickPreview for instantly viewing News articles.
  • Powered by News API, Search for articles from over 30,000 news sources and blogs.

Getting Started

Clone the project locally and the follow the steps below for dev/build.

Installing

Get started by installing the project dependencies. You can alternatively use npm for dev & build.

yarn install

Running in dev mode

yarn run start

To generate a production build

yarn run build

Built With

The Newsquirrel is built using some of the best in class tools and frameworks

  • React - JavaScript library for building user interfaces.
  • Typescript - Typings System.
  • Emotion - The Next Generation of CSS-in-JS
  • Apollo - Build a universal GraphQL API on top of your existing REST APIs
  • Prisma - Build a GraphQL server with any database
  • Graphql - A query language for your API
  • Docker - Build, Manage and Secure Your Apps Anywhere. Your Way
  • Kubernetes - Production-Grade Container Orchestration

Architecture

  • Web - This is the front end app hosted on NGINX and is where all the action starts.
  • Newsapi - Apollo-Server is responsible for handling all the requests coming from the web app. The server talks to the news API and caches the data on a MYSQL db for a faster data retrieval.
  • Prisma Service - A GraphQL endpoint which the newsapi uses for storing the data on MYSQL db. It acts a ORM layer for the MYSQL db.
  • Database - A MYSQL database used for caching purpose.

Architecture Diagram

Site

Docker Ready

Both the front-end app as well as the application server are Dockerized and can easily be deployed to any Orchestration engine of choice. The App (http://squirrel.prabhumurthy.com) is currently deployed to a Kubernetes Cluster on Google's Cloud platform.

What is coming next

  • Ability to share news articles on Social Media.
  • Integration with Pocket API to save news for later reading.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details