Coder Social home page Coder Social logo

newsapp's Introduction

d0-checkpoint1-newsapp

Code Climate Build Status Coverage Status

Introduction

NewsApp is an open source application that enables users view news by selecting preffered sources and it also enables users to share news on social media. The application is easy to use and it provides users with latest news, users can also save fovorite news. Click here to access the application

Features

  • User can search for available news sources
  • User can view all articles on a page
  • User can search for articles
  • User can sort Articles based on available sort type
  • User can login via Google
  • User can save news to favorite
  • User can delete favorite news
  • User can share articles on social media

Technology

  • React - A JavaScript library for building user interfaces
  • Express - Express is Node.js web application framework
  • JQuery - This a javascript library
  • Enzyme - Enzyme is used together with mocha, chai and expect.js to test this application
  • axios - Used to make GET requests to external API's
  • webpack - Used to bundle the app's js and scss files for usage in the browser
  • react-google-login - Enables authentication with Google
  • flux - It enables the app to implement the flux architecture
  • jest - Used with mocha for test coverage report
  • express - Used as the web server for this application

Development Dependencies

  • The following depencies are required by the app during developmment
  • eslint - This is a javascript syntax highlighter used to highligh syntax error during the development of this app
  • jsdom, jsdom-global, mocha-jsdom, mock-local-storage - Used to emulate web browser during application testing.
  • node-sass, sass-loader - This enables the app to use sass (.scss) directly in scripts
  • sinon - Used with mocha and enzyme for mocking React components during test.

Dependencies

  • babel-cli - It enables the app scripts to be tested with babel from the command line
  • babel-core - It compiles es6 used in the app to es5
  • babel-eslint - Used with ESlint to lint syntax errors
  • babel-loader - Used with Webpack to transpile javascript codes
  • babel-plugin-react-html-attrs - It help convert JSX class attribute into className
  • Babel-register - This framework helps to compile from es6 to es5
  • css-loader - The css-loader is used with webpack and it interprets @import and url() like import/require()
  • coveralls - Display test coverage
  • dotenv - To protect secret ID
  • events - Use to create emiter fir flux implementation
  • history - Allows the app to implement history in routes.
  • json-loader - Enables the app to inport json files.
  • json-loader - Enables the app to inport json files.
  • keymirror - used to create an object with values equal to its key names in constant files
  • nodemon - to watch the files in the directory for any files change
  • path - to get paths during production
  • prop-type - used to document the intended types of properties passed to components
  • react-loading - used to add animation while app is loading
  • react-router-dom - Used to perform app routing
  • sass-loader - Used for loading sass style
  • webpack-dev-server - Serves as the server during development.

Front End Dependencies

  • Charisma CSS - Some part of the app was styled with this css framework.
  • Font Awesome Icons - All font used were from Font Awesome library
  • JQuery - Charisma css framework requires JQuery library for some actions.

Installation

- clone the project to new folder, copy and paste the commands below on your terminal
$ git clone https://github.com/omedale/d0-checkpoint1-newsapp.git

-install dependencies
$ npm install

-start the project
$ npm run serve

Tests

  • The tests have been written using Jest and Enzyme.

  • They are run using the coverage tool in order to generate test coverage reports.

    -To run test

      $ npm test
    

Limitations

News saved to favorite can only be view on the browser used to save the news, user cannot view favorite news on another browser.

License

(The MIT License)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

newsapp's People

Contributors

omedale avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.