Giter Site home page Giter Site logo

cli-data-gem-project-v-000's Introduction

Build a CLI RubyGem with External Data

Overview

In this lesson you're going to build a RubyGem that provides a CLI interface to an external data source. Your code will be packaged as a RubyGem and install a CLI for the user. The CLI will be composed of an Objected Oriented Ruby application.

Requirements

  1. Package as a gem
  2. Provide a CLI on gem installation.
  3. CLI must provide data from an external source, whether scraped or via a public API.
  4. Data provided must go at least a level deep, generally by showing the user a list of available data and then being able to drill into a specific item.

Example Domains

  • 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.

now-playing is an example of a gem that would meet these requirements.

Instructions

  1. Create a new repository on GitHub for your gem, ie: name-cli-gem.
  2. On Learn, use the textbox in the right rail to submit the URL of your repo.
  3. Build your gem. Make sure to commit early and commit often.
  4. While you're working on it, record a 30 min coding session with your favorite screen capture tool. During the session, either think out loud or not. It's up to you. You don't need to submit the video, but we may ask for it at a later time.
  5. Prepare a video demo (narration helps!) describing how a user would interact with your working gem.
  6. Write a blog post about the project and process.
  7. When done, e-mail both your video demo and link to your blog post to [email protected] and hit "I'm done" in the right rail to wrap it up.
  8. We'll reach out to you soon to schedule a pairing process. If you don't hear from us in 48 hours after submission, get in touch!

Be Prepared to:

  1. Explain your code from execution point to exit point. We're making sure you wrote it and understand how it works, nothing else. 5-10 minutes
  2. Write tests together. You'll be responsible for making tests pass, not writing test code. However, you'll be expected to provide expected return data of methods. You'll need to know how your code should work, not rspec or testing. 20-30 minutes
  3. Refactor code. 20-30 minutes
  4. Extend the application with a new feature, more data, a different domain etc. 20-30 minutes
  5. Submit an improved version.
  6. Write a README.md.

What to expect from the pairing session

  • Use the best vocabulary you can. Technical terms allow for you to be more precise which makes conversations about code much easier.
  • If you make a mistake, correct yourself! We all make mistakes, I promise.
  • Trust yourself
  • Trust us
  • Think on your feet. Feel free to look things up while you're pairing with us. You'll be asked to expand on concepts you implemented and you will be pushed to the edge of your knowledge.
  • Explain the details. We're curious!
  • You're going to learn a ton. We will give pointers and show you ways to improve your code. This isn't telling you that your code is wrong, it's simply us teaching. Whatever you don't quite understand will be explained

What won't happen:

  • You won't be told you're ever wrong
  • You won't be yelled at, belittled, or scolded
  • You won't be put on the spot without support
  • There's nothing you can do to instantly fail or blow it.

Resources

cli-data-gem-project-v-000's People

Contributors

aviflombaum avatar drewprice avatar jmburges avatar loganhasson avatar matbalez avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.