Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/m-anwar-hussaini/catalog-of-things

Catalog of Things, a versatile Ruby command-line application designed for efficient item management. This powerful tool allows you to easily organize and categorize groups of items. It allows you to create, and store item data effortlessly. With the ability to save your information in JSON files, you can ensure data persistence and accessibility.
https://github.com/m-anwar-hussaini/catalog-of-things

command-line database gem json rspec rubocop ruby

Last synced: 9 days ago
JSON representation

Catalog of Things, a versatile Ruby command-line application designed for efficient item management. This powerful tool allows you to easily organize and categorize groups of items. It allows you to create, and store item data effortlessly. With the ability to save your information in JSON files, you can ensure data persistence and accessibility.

Awesome Lists containing this project

README

        



Catalog Of Things

# ๐Ÿ“— Table of Contents

- [๐Ÿ“– About the Project](#about-project)
- [๐Ÿ›  Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [๐Ÿ’ป Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Install](#install)
- [Run tests](#run-tests)
- [Deployment](#deployment)
- [๐Ÿ‘ฅ Authors](#authors)
- [๐Ÿ”ญ Future Features](#future-features)
- [๐Ÿค Contributing](#contributing)
- [โญ๏ธ Show your support](#support)
- [๐Ÿ™ Acknowledgements](#acknowledgements)
- [๐Ÿ“ License](#license)

# ๐Ÿ“– Catalog Of Things

**Catalog Of Things** is a Ruby-based project that is combined of several classes like `Item` with its relevant children such as `Book`, `MusicAlbum`, `Movie`, and `Game`, which is related together using _Inheritance_ relationship. The **Item** class is also related some other classes like `Author`, `Genre`, `Source`, and `Label` that has the **composition** one-to-many relationship.

The project is a command-line project that prompts the user to first create the characteristics of an item and based on them, and then prompt the user to create the item of its desired substance.

## ๐Ÿ›  Built With

### Tech Stack

- โœ… **Ruby**.
- โœ… **PostgresSQL**
- โœ… **Rubocop**
- โœ… **Rspec**

### Key Features

- **Create 4 main characteristics for the item.**
- **Link the Item with some classes using composition relationship.**
- **Relate 4 other subitem for the Item class using inheritance.**
- **Run the program using a command-line interface.**

(back to top)

## Vedio Represntation
- In this [vedio](https://youtu.be/zlEN-XIbZO4?si=7LJvpYQOOXANHLet) you can see that how the project works.

## ๐Ÿ’ป Getting Started

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

1. Clone or download this repository in your desired local directory.

```sh
git clone https://github.com/M-Anwar-Hussaini/Catalog-Of-Things.git
```

2. Navigate to the project directory

```sh
cd Catalog-Of-Things
```

3. Open a terminal or command-prompt interface on the directory.

4. Install the dependencies of project

```sh
bundle install
```

5. Run the main file

```
ruby main.rb
```

### Prerequisites

In order to run this project you need:

- [ ] [Ruby installer](https://www.ruby-lang.org/en/downloads/)
- [ ] Command Line interface.

### Setup

Clone this repository to your desired folder:

```sh
cd my-folder
git clone https://github.com/M-Anwar-Hussaini/Catalog-Of-Things.git
```

### Install

Install this project with:

- โœ… Rubocop

```sh
cd my-project
gem install Rubocop
```

- โœ… Rspec

```sh
cd my-project
gem install rspec
```

### Run tests

To run tests, run the following command go to the root directory of the project:

```sh
rspec spec/*.rb
```

## ๐Ÿ‘ฅ Authors

๐Ÿ‘ค **Mohammad Anwar Hussaini**

- GitHub: [@M-Anwar-Hussaini](https://github.com/M-Anwar-Hussaini/)
- LinkedIn: [Anwar Hussaini](https://www.linkedin.com/in/anwar-hussaini/)

๐Ÿ‘ค **Abdelaziz Mahdi**

- GitHub: [@Abdelaziz-Mahdi](https://github.com/Abdelaziz-Mahdi)
- Twitter: [@_AbdelazizMahdi](https://twitter.com/_AbdelazizMahdi)
- LinkedIn: [in/abdelaziz-mahdi](https://www.linkedin.com/in/abdelaziz-mahdi)

๐Ÿ‘ค **lRebornsl**

- GitHub: [@lRebornsl](https://github.com/lRebornsl)
- Twitter: [@RebornsDev](https://twitter.com/RebornsDev)
- LinkedIn: [Anthony Vรกsquez](https://www.linkedin.com/in/avvm98/)

(back to top)

## ๐Ÿ”ญ Future Features

- [ ] **Create GUI interface**
- [ ] **Make more validations on the methods.**
- [ ] **Provide more features using user story.**

(back to top)

## ๐Ÿค Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/M-Anwar-Hussaini/Catalog-Of-Things/issues).

(back to top)

## โญ๏ธ Show your support

If you like this project kindly drop a star to this project.

(back to top)

## ๐Ÿ™ Acknowledgments

I would like to thank Microverse for providing the opportunity to creat this project.

(back to top)

## ๐Ÿ“ License

This project is [MIT](./MIT.md) licensed.