Giter Site home page Giter Site logo

brhanuhailu / ruby-capstone Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 70 KB

[Catalogue_Of_My_Things] is a console app that will help to keep a record of different types of things one owns: books, music albums, movies, and games. Everything is based on the UML class diagram. The data is stored in JSON files but we also prepare a database with tables

Home Page: https://github.com/brhanuhailu/ruby-capstone

License: MIT License

Ruby 100.00%
ruby-capstone

ruby-capstone's Introduction

๐Ÿ“— Table of Contents

๐Ÿ“– [Catalogue_Of_My_Things]

[Catalogue_Of_My_Things] is a console app that will help to keep a record of different types of things one owns: books, music albums, movies, and games. Everything is based on the UML class diagram. The data is stored in JSON files but we also prepare a database with tables structure analogical the program's class structure.

๐Ÿ›  Built With

Tech Stack

Server
Database

Key Features

  • [User Interface]
  • [Add Database to store the whole data]
  • [preserve data in json format]

(back to top)

๐Ÿš€ Video Link

(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:

  install  sudo apt-get install ruby-full

Setup

Clone this repository to your desired folder:

  cd my-folder
  git clone  https://github.com/brhanuhailu/ruby-capstone.git

Install

Install this project with:

  cd project
  bundle install

Usage

To run the project, execute the following command:

  ruby main.rb

Run tests

To run Linter tests, run the following command:

  rubocop

Run unit tests

To run unit tests, run the following command:

  Rspec

Deployment

Not applicable.

(back to top)

๐Ÿ‘ฅ Authors

๐Ÿ‘ค Daniel Matama

๐Ÿ‘ค Brhanu Hailu

๐Ÿ‘ค Yodit Abebe

(back to top)

๐Ÿ”ญ Future Features

  • [Add more unit tests]
  • [Create complete databases]

(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 give a โญ๏ธ and We are so excited to accept you feedback to improve our profession.

(back to top)

๐Ÿ™ Acknowledgments

we would like to thank Microverse

(back to top)

๐Ÿ“ License

This project is MIT licensed.

ruby-capstone's People

Contributors

brhanuhailu avatar yodit93 avatar danielmatama avatar

Stargazers

George M'sapenda avatar

Watchers

 avatar

ruby-capstone's Issues

[0.5pt] Create a Label class. TeamM1

  • Create a Label class with an association to the Item class (in a separate .rb file).
  • 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)

[0.5pt] Implement startup actions #4

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.

[0.5pt] Create Item class in a separate .rb file. # 3

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

[0.5pt] Create a Book class.TeamM1

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

Implement methods:

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

[1pt] Create a schema.sql file for MusicAlbum and Genre

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

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.