Git Product home page Git Product logo

catalog-of-my-things's Introduction

๐Ÿ“— Table of Contents

๐Ÿ“– [Catalog Of My things]

[Catalog Of My things] is a ruby console app that allows the user to store different types of item like games and music albums and retrive them

๐Ÿ›  Built With

Tech Stack

Server
Database

Key Features

  • [Create music album]
  • [Create book]
  • [Create game]

(back to top)

๐Ÿš€ Live Demo

  • N/A

(back to top)

๐Ÿ’ป Getting Started

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

Prerequisites

In order to run this project you need:

Setup

Clone this repository to your desired folder:

  cd my-folder
  git clone https://github.com/Abdessittir/catalog-of-my-things.git

Install

Install this project with:

  • Note: make sure that you have bundle installed on your machine

  cd my-project
  bundle install

Usage

To run the project, execute the following command:

  • Note: make sure that you have ruby installed on your machine

  ruby main.rb

Run tests

To run tests, run the following command:

  rspec

Deployment

  • N/A

(back to top)

๐Ÿ‘ฅ Authors

๐Ÿ‘ค Author1

๐Ÿ‘ค Author2

(back to top)

๐Ÿ”ญ Future Features

  • [Create source]
  • [Create movie]
  • [Create genre]

(back to top)

๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

โญ๏ธ Show your support

If you like this project consider giving it a star

(back to top)

๐Ÿ™ Acknowledgments

  • Thanks to the Microverse team for the great curriculum.
  • Thanks to the Code Reviewer(s) for the insightful feedback.
  • Hat tip to anyone whose code was used.
  • Thanks to my coding partner for contribution.

(back to top)

๐Ÿ“ License

This project is MIT licensed.

NOTE: we recommend using the MIT license - you can set it up quickly by using templates available on GitHub. You can also use any other license if you wish.

(back to top)

catalog-of-my-things's People

Contributors

mujeeb4582 avatar

Watchers

AHP avatar

catalog-of-my-things's Issues

[4pt] Team member 1

  • Create a Book class in a separate .rb file.
  • Create a Label class with an association to the Item class (in a separate .rb file).
  • All Book class properties visible in the diagram should be defined and set up in the constructor method.
  • All Label class properties visible in the diagram should be defined and set up in the constructor method.
  • Implement methods:
  • 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
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • List all books
  • List all labels (e.g. 'Gift', 'New')
  • Add a book
  • All data should be preserved by saving collections in .json files.
  • Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
  • books table (add all properties and associations from the parent Item class as table columns)
  • labels table

[4pt] Team member 2

  • Create MusicAlbum class in a separate .rb file.
  • Create Genre class with an association to the Item class (in a separate .rb file).
  • All MusicAlbum class properties visible in the diagram should be defined and set up in the constructor method.
  • All Genre class properties visible in the diagram should be defined and set up in the constructor method.
  • Implement methods:
  • 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
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • List all music albums
  • List all genres (e.g 'Comedy', 'Thriller')
  • Add a music album
  • All data should be preserved by saving collections in .json files.
  • Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
  • music_albums table (add all properties and associations from the parent Item class as table columns)
  • genres table

[4pt] Group Task

  • Create a Game class in a separate .rb file.
  • Create an Author class with an association to the Item class (in a separate .rb file).
  • All Game class properties visible in the diagram should be defined and set up in the constructor method.
  • All Author class properties visible in the diagram should be defined and set up in the constructor method.
  • Implement methods:
  • 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
  • Add unit tests for all implemented methods.
  • The following options should be available:
  • List of games
  • List all authors (e.g. 'Stephen King')
  • Add a game
  • All data should be preserved by saving collections in .json files.
  • Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
  • games table (add all properties and associations from the parent Item class as table columns)
  • authors table

[4pt] Group Task

  • 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.
  • Implement methods:
  • 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
  • Create a main.rb file that will serve as your console app entry-point.
  • Implement startup actions:
  • Present the usCreate 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.
  • Implement methods:
  • 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
  • Create a main.rb file that will serve as your console app entry-point.
  • Implement startup actions:
  • Present the user with a list of options to perform.
  • Let users choose an option.
  • If needed, ask for parameters for the option.
  • Have a way to quit the app.er with a list of options to perform.
  • Let users choose an option.
  • If needed, ask for parameters for the option.
  • Have a way to quit the app.

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.