Code Monkey home page Code Monkey logo

phrg-cli-scraping-gem-project's Introduction

Build a CLI Application with External Data

Overview

For this project, you are going to build an application that provides a Command Line Interface (CLI) to an external data source. The CLI will be composed of an Object Oriented Ruby application.

Requirements

  1. Provide a CLI that exposes data scraped from a web page.

  2. The application must allow the user to learn more based on their input. This will be done by showing the user a list of options, allowing them to choose a specific option, and then showing them more info based on their choice.

  3. After the user enters input, your CLI should reach out to the web page again to scrape additional data. Write your code in such a way that it outputs useful instructions if one submits invalid input.

  4. Use the example domains below for inspiration, but the web page you choose to scrape will guide how your CLI can be built. Check your domain with your instructor before starting your project.

  5. Use Object Oriented design patterns. You should be creating instances of objects that relate to one another. Attempt to make your code as "DRY" (Don't Repeat Yourself) as possible.

  6. The application should conform to Nitro's Ruby linting conventions. The .rubocop.yml file included in this repo must be copied over to your application, it is not exactly the same as the generic file copied over to your system from the Ruby Linting lesson. Running rubocop from your application's root should return a no offenses detected message.

Instructions

  1. Decide on the web page you will scrape. Use the example domains and repos at the bottom of this README for inspiration. Before making your choice, be sure to test your page with Javascript turned OFF in your browser. Ask Google to learn how to turn off JS, because the logistics of changing browser settings updates regularly.

  2. Create a new repository on GitHub with a descriptive name that communicates the subject matter of your application.

  3. As you build your application, make sure to commit early and often. Commit messages should be meaningful and accurate. Clearly describe what you're doing in the commit and note that there should be nothing in it that doesn't match the commit subject and description. A good rule of thumb is to commit every 3-7 mins of actual coding time. This is important and you will be graded on it.

  4. Create a README.md with a short description and installation instructions.

  5. Add the requirements.md file to your project. Address all items by describing how you have met that requirement under each line and by checking each box. USE CORRECT TECHNICAL VOCABULARY

Project Review

Your project review will be with a Nitro System Architect. If necessary, after the review, you may need to extend the application and submit an improved version.

Project reviews are focused on preparing you for speaking technically with other Power developers. Treat Project Reviews as if they were technical interviews, in both attitude and technical presentation. The only way to get better at using new vocabulary is practicing. Practice presenting your application before the review.

Be Prepared to

  1. Walk through your requirements.md and comment on how you have fulfilled each criterion.
  2. Explain your code from execution point to exit point.
  3. Demonstrate multiple successful workflows and what happens when you enter invalid input.
  4. Refactor your code.

Final Advice

  • If you make a mistake, correct yourself. We all make mistakes.
  • Be open to feedback.
  • Ask questions! Curiosity and willingness to learn are hugely valued in our industry.

Example Domains

Refrain from using Kickstarter since that was used for the scraping 'code along'. Some other possibilities include:

  • Movies opening soon - Enter your zip code and receive a list of movies and their details.
  • Libraries near you - Enter your zip code and receive a list of libraries and their details.
  • Programming meetups near you, list details.
  • News reader - List articles, read article.

Example repos by PCA graduates

phrg-cli-scraping-gem-project's People

Contributors

garettarrowood avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

eabousaif kfad11

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.