Code Monkey home page Code Monkey logo

ruby-catalog-capstone's Introduction

Ruby Group Capstone Project - Catalog of my things

In this project, we create a console app that helps to keep a record of different types of things you have won: books, music albums, movies, and games. We base our app on a UML class diagram. Data is stored in JSON files and also in a database with tables structure analogical to our program's class structure. Built with RUBY | RSPEC | RUBOCOP | PostgreSQL

Enjoy!

Project Demo Video

Group Project Demo Video

Built With

  • Ruby
  • Terminal
  • IRB
  • Rubocop (linters)
  • TDD via RSPEC

Getting Started

To get a local copy up and running follow these simple example steps.

Install

In your terminal, navigate to your current directory and run this code

git clone [email protected]:medsonmoombe/Ruby-Catalog-capstone.git ruby-group-capstone

Locate the directory in your file explorer

cd ruby-group-capstone

Install Rubocop

bundle install

Run Linters:

To run rubocop we use:

rubocop

To autocorrect offenses with rubocop we use:

rubocop --auto-correct-all or rubocop -A

Usage

  • Navigate to the file directory ruby-group-capstone in your favorite terminal application
  • Type in the command ruby main.rb to start the Catalog App
  • Read through the list of options presented and type in the number of your desired action

Have fun cataloging your own 'Things' with our Ruby 'Things' Catalog Console App!

Testing

Install the testing library 'rspec' with the following command: gem install rspec

Then within the projects working directory run test using the command rspec in the terminal.

Author1

๐Ÿ‘ค Emirjeta Veisllari

Author2

๐Ÿ‘ค Emmanuel Moombe

Author3

๐Ÿ‘ค Stanley SIMEON

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a โญ๏ธ if you like this project!

Acknowledgments

  • Hat tip to anyone whose code was used
  • Inspiration
  • etc

๐Ÿ“ License

This project is MIT licensed.

ruby-catalog-capstone's People

Contributors

myelin0 avatar medsonmoombe avatar stanleysimeon avatar

Stargazers

Roman avatar Emmanuel Mensah avatar Yassine Omari avatar

Watchers

 avatar  avatar

Forkers

myelin0

ruby-catalog-capstone's Issues

[0.3pt] Implement methods: -#Team member 2

  • add_item method in the Genre class

  • should take an instance of the Item class as an input

  • should add the input item to the collection of items

  • should add self as a property of the item object (by using the correct setter from the item object)
    can_be_archived?() in the MusicAlbum class

  • should override the method from the parent class

  • should return true if parent's method returns true AND if on_spotify equals true
    otherwise, it should return false

[0.3pt] Implement methods: - #Teammember1

  • add_item method in the Label class
    should take an instance of the Item class as an input
  • should add the input item to the collection of items
  • should add self as a property of the item object (by using the correct setter from the item object)
    can_be_archived?() in the Book class
  • should override the method from the parent class
  • should return true if parent's method returns true OR if cover_state equals to "bad"
    otherwise, it should return false

[2pt] Implement methods - #GroupTasks

  • can_be_archived?() in the Item class
  • should return true if published_date is older than 10 years
    otherwise, it should return false
    move_to_archive() in the Item class
  • should reuse can_be_archived?() method
  • should change the archived property to true if the result of the can_be_archived?() method is true
  • should do nothing if the result of the can_be_archived?() method is false

[1pt]Implement methods: -#Temmember3

  • add_item method in the Author class
    should take an instance of the Item class as an input
    • should add the input item to the collection of items
      • should add self as a property of the item object (by using the correct setter from the item object)
        can_be_archived?() in the Game class
      • should override the method from the parent class
        should return true if parent's method returns true AND if last_played_at is older than 2 years
        otherwise, it should return false

[0.3pt] All Item class properties visible in the diagram should be defined and set up in the constructor method. Exception: properties for the 1-to-many relationships should NOT be set in the constructor method. Instead, they should have a custom setter method created. - #GroupTask

  • Create Item class in a separate .rb file.

  • All Item class properties visible in the diagram should be defined and set up in the constructor method. Exception: properties for the 1-to-many relationships should NOT be set in the constructor method. Instead, they should have a custom setter method created.

  • Add all methods visible in the diagram.

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.