CATALOG OF MY THINGS

📗 Table of Contents

📖 Catalog Of My Things

Catalog Of My Things is an app that will help user to keep a record of different types of things they own: books, music albums, and games. The data is stored in JSON files. There is also a database with tables structure analogical to program's class structure. Everything will be based on the UML class diagram presented below. UML Diagram: Catalog of my things

Want to know more about the project? Click here

🛠 Built With

This project is built with Ruby.

Tech Stack

Database
Ruby

Key Features

  • Logic
    • Implementation of class: Item, Book, Label MusicAlbum, Genre, Game, and Author
    • Implementation of associations (1-to-many relationships) and aggregations (parent-child relationships) between classes
    • Implementation of methods: add_item, can_be_archived?, and move_to_archive
    • Unit tests for all implemented methods
  • User Interface
    • Has a console app that
      • 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
    • The following options are available:
      • List all books
      • List all music albums
      • List all movies
      • List of games
      • List all genres (e.g 'Comedy', 'Thriller')
      • List all labels (e.g. 'Gift', 'New')
      • List all authors (e.g. 'Stephen King')
      • List all sources (e.g. 'From a friend', 'Online shop')
      • Add a book
      • Add a music album
      • Add a movie
      • Add a game
    • All data are preserved by saving collections in .json files
  • Database
    • Has tables that is analogical to the structure of classes in the app

(back to top)

💻 Getting Started

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

Prerequisites

In order to run this project you need:

  • Download and Install Ruby for your OS.
  • Download and Install PostgreSQL
  • VS Code

Setup

Clone this repository to your desired folder:

git clone https://github.com/anita00001/Catalog-of-my-things.git
cd Catalog-of-my-things
psql

Install

Install this project with:

  gem install
  bundle install

Usage

To run the project, execute the following command:

  ruby main.rb

Run tests

To run linters check, run the following command:

  gem install rubocop
  rubocop
  gem install rspec
  rspec

👥 Authors

👤 Anita Sharma

👤 Isaac Ayodele

(back to top)

🔭 Future Features

  • Add more item in my Catalog (eg: Movie)
  • Add additional methods like: remove a selected book
  • Add additional methods like: sort music by 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, you can appreciate us by giving star ⭐

(back to top)

🙏 Acknowledgments

We would like to thank Microverse for providing this opportunity to build this project. Also, we extend my sincere gratitute to Code Reviewers who encourage and support to build this application more effieiently.

(back to top)

📝 License

This project is MIT licensed.

(back to top)