Giter VIP home page Giter VIP logo

catalogue-of-my-things's Introduction

catalogue-of-my-things

"Catalog of my things" should be a simple console app that allows users to manage collections of the things they own.

Video Application of application in action

Getting Started

Alt text

This repository includes files with plain SQL that can be used to recreate a database:

To run the ruby application follow the following simple steps

  • Ensure you have ruby installed and added to path.

  • clone the repo to local computer. Open your terminal and navigate to the folder you wish to clone your project at then run

git clone https://github.com/itsmraga-hub/catalogue-of-my-things

Move into the directory with

cd catalogue-of-my-things

Run Project

ruby main.rb

Install linter

bundle install

Run linter

rubocop .

Run tests

rspec spec
  • Enjoy the application and leave a star if you enjoy it.

Authors

๐Ÿ‘ค Milen Alebel

๐Ÿ‘ค Christian Iradukunda Byiringiro

๐Ÿ‘ค William Raga

๐Ÿค 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.

catalogue-of-my-things's People

Contributors

christianib003 avatar itsmraga-hub avatar milen-ale avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

milen-ale

catalogue-of-my-things's Issues

[2pt] Creating a Game class in a separate .rb file

  • All Game class properties visible in the diagram should be defined and set up in the constructor method.
  • 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

[1pt] CREATE MUSICALBUM CLASS

Implement the following in the MusicAlbum class.

  • All MusicAlbum class properties visible in the diagram should be defined and set up in the constructor method.

[1pt] ADD UNIT TESTES

  • add tests for all implemented methods and check The following options are available:
  • List all books
  • List all labels (e.g. 'Gift', 'New')
  • Add a book

[1.5pt] PRESERVE DATA

All data should be preserved by saving collections in .json files.
Any data i.e. Music Album or genre added should be persisted in a .json file. Different for each.

[2pt] Creating Author class

  • Create an Author class with an association to the Item class (in a separate .rb file).
  • All Author class properties visible in the diagram should be defined and set up in the constructor method.
  • 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)

[0.5pt] IMPLEMENT METHOD IN GENRE CLASS

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

[1pt] ADD UNIT TESTS

Add unit tests for Item class and methods:

  • can_be_archived?()
  • move_to_archive()

[1pt] IMPLEMENT STARTUP ACTIONS.

Implement the following 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.

[2pt] CREATE A SCHEMA.SQL FILE WITH TABLES

  • Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:
  • Create a schema.sql file with tables that will be analogical to the structure of the
  • classes that you created:

[2pt] CREATE DATABASE SCHEMA

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

[1pt] CREATE GENRE CLASS

  • Create a Genre class with an association to the Item class.
  • Ensure that all Genre class properties visible in the diagram should be defined and set up in the constructor method.

[1pt] CREATE BOOK CLASS #

  • 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

[1pt] 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)

[0.5pt] CREATE METHOD IN MusicAlbum class

  • can_be_archived?() in the MusicAlbum class
    • should override the method from the parent class
    • should return true if the parent's method returns true AND if on_spotify equals true
    • otherwise, it should return false

[2pt] IMPLEMENT OPTIONS

The following options should be available:

  • List all music albums
  • List all genres (e.g 'Comedy', 'Thriller')
  • Add a music album

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.