Coder Social home page Coder Social logo

rbnd-udacitask-part2's Introduction

Udacitask 2.0

Project Overview

If you’re familiar with microblogging sites, you’ll know that they usually allow you to define different types of posts like “text”, “quote”, “image”, or “link”. All of the posts are then listed in one big stream, with different formatting depending on the type of post.

You’ve decided to keep up with the current trends, and add similar features to Udacitask. Rather than limiting users to just to-do lists, Udacitask 2.0 will allow users to create a UdaciList, which will support a variety of item types including links, events, and to-do items.

In this project, you will use your knowledge of Ruby gems and Modules to add new features to Udacitask and refactor your code to improve scalability and organization.

Why Does This Matter?

As projects get larger, and more complex, scalability and organization can become a challenge if it's not anticipated early on. Think about how the changes you make to your code in Udacitask 2.0 will help if you choose to expand the project even further.

Completing this Project

You should have completed all the necessary steps for finishing this project in Udacitask 2.0. Before submitting, ensure your program returns the correct values for all the sample code provided in app.rb, and meets the following requirements.

  • The Basics: add, delete, and all methods are written and functional. All code in app.rb returns expected output.
  • Errors: InvalidItemType, IndexExceedsListSize, and InvalidPriorityValue are used appropriately.
  • Modules: Formatting methods are in a module and included as a mixin. Error classes are organized in modules and called using the :: operator.
  • Gems: A minimum of 3 gems (you can use more!) are used in the project. Gemfile and Gemfile.lock are updated appropriately.
    • Chronic: Use the Chronic gem to parse dates such as “In 5 weeks”
    • Colorize: Use the Colorize gem to colorize the priority to-do symbols ⇩⇨⇧
    • Gem of your choice: Find a gem of your choice and incorporate it into Udacitask 2.0. You can check out this site for suggestions on gems for command-line apps.
  • Additional features:
    • Each item should display its item type along with the item description.
    • Write a method list.filter(item_type) that takes an item_type as input and returns only list items of that type if they exist, or alerts the user if there aren't any items of that type.
    • In addition to the two features listed above, add 2 more features of your choice: If you get stuck deciding on a new feature, here are some suggestions:
      • Creating a new item type
      • Using your third gem in an interesting way
      • Allow deletion of multiple items
      • Change the priority levels of items
  • Reflections.txt: Describe how you used the gem of your choice, and the two additional features you added to Udacitask 2.0.

Additionally, the following requirements have been met:

  • The project is submitted using GitHub, with regular commits
  • The reflection has been included in the top level directory
  • Code follows proper style and naming conventions

Submitting Your Project

Before submitting your project for evaluation, we recommend that you check that each of the following is true:

  • Your program runs without any errors
  • You are proud of your project and its output
  • You completed your project according to the instructions
  • You checked your project against the rubric
  • When you feel ready to submit, use the blue 'Submit Project' button below!

rbnd-udacitask-part2's People

Contributors

maxipombo avatar jmvx avatar

Watchers

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