Coder Social home page Coder Social logo

cli-project-planning's Introduction

CLI Project Planning

Introduction

The upcoming CLI project is a great chance for you to show off everything you’ve learned about Ruby so far and for many of us, make the first app that's all your own! This lesson is provided to help you tackle your first portfolio project. Tips on all aspects of the project are included here, so make sure to have a look through!

Use this lesson to help you complete this planning form

Note: Keep in mind that the Ask a Question is not permitted to help while you are building your projects. Use the internet and the resources provided in this document if you get stuck!

How to Get Started On a Successful Project Build

  1. The next lesson includes the project requirements for this project. Read through the requirements carefully before getting started.

  2. Come up with a project idea of your own, and devote some time to a planning session. Think about the following:

    a. What will your app do? What is the user experience? b. Where will get your data from? (This might be a website that you will scrape or if you prefer, an API.) c. What will you need to do with the data once you have got it? d. What classes will you be using? e. How will you display data one level deep to the user?

    Use this form to jot down your plans and submit it to us so we can see what you are planning! Check out the sections below on User Story and Flow Diagrams for help in filling out the form.

  3. Create a skeleton app and repository on Github. Here is a video that walks through how to do this. For more insight on how to plan out and get your project idea off the ground, you can watch this live build, which also shows how to use our Scraper Checker tool.

  4. Plan your schedule. Note that it takes most full time (40+ hrs/week) students between 3-7 days to complete, and can take up to 5 business days to schedule your project review after that.

  5. Join the Slack channel #cli-data-gem-project to connect with others who are working on their projects as well. Students often set up a peer review in advance of their project review as a way to practice talking through your code.

We are here to help! Each week, there are Open Office Hour study groups specifically designed to help with CLI project questions. Keep an eye out also for our OO Ruby study groups, What To Expect In Your First Project Review and the Live Coding Club.

Making a User Story

  • Who is your User?
  • What is their pain point?
  • How do they use our solution to overcome this problem?

Example: Gemma has dietary requirements which means that she can’t eat gluten or dairy. Her friends have invited her to dinner at the most excellent pizzeria Zozo. Her WiFi connection is a bit patchy and the graphic-heavy Zozo website is not loading - all she wants is to know what allergens are in the dishes! Now she can use the Zozo Menu CLI App:

  • She starts the app and is greeted with a list of dishes on the Zozo menu
  • She chooses a dish and is shown the allergens in that dish
  • She can then either go back to the list and choose another dish or exit the app

Choosing Your Classes

  • If this was a human-run business, what roles would I be hiring?
  • What responsibilities would they have?

Let’s take the Zozo Menu CLI App we’re building for Gemma. If this was a human-run service we may need:

A customer service specialist:

  • Responsible for asking Gemma questions and delivering her the answers.

An in-house expert on each of the MenuItems

  • Responsible for holding the information the runner has gone out to get. Our runner will complain if we ask them to go and get info they already retrieved!

A ‘runner’:

  • Responsible for going out into the world and getting data from the Zozo website when our in-house expert needs to know.

In the Zozo app, these might be called CLI, MenuItem, Scraper.

Making an app flow diagram

  • How is data passed around your app?
  • What classes are used? What are their responsibilities?
  • How can I avoid unnecessary duplication of actions?

We recommend using draw.io to put together a flow diagram. It doesn’t need to be over-complicated - just a visual idea of your app’s structure.

Here is an example of a flow for our Zozo Menu CLI App:

draw.io example flowchart

If your data requires two steps to get all the details, your chart could look more like this:

draw.io example flowchart 2

You don’t have to use software for this - a photo of a (legible) hand-drawn sketch on a napkin also works! The symbols used in the examples above follow basic flowchart conventions. If you’re interested in learning more, here is a great overview.

Please make sure the image or file you share with us is accessible. This gif shows how to make a shareable link on draw.io:

make shareable draw.io gif

Handy Tools

Requirements Checklist

Scraper Checker

draw.io

Demo Projects

Eden Events - CLI app with object relationships. Uses Nokogiri for scraping data.

London Spas - CLI app, no object relationships. Uses HTTParty for API calls.

Current Movies - CLI app, no object relationships. Uses Watir for scraping JS-loading data.

  • (Watir will NOT work in the Learn IDE - only use this if you are working in a local environment and are ready for some potential setup headaches!)

Videos

Getting Started

  • Using the bundle gem tool
  • Setting up your Github repository

Eden Events Live Build

  • First steps of approaching a CLI Project Build

cli-project-planning's People

Contributors

annjohn avatar maxwellbenton avatar sdcrouse avatar

Watchers

James Cloos 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.