Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/iturres/catalog_manager

💎 Console app that helps you to keep a record of different types of things you own: books, music albums, and games.
https://github.com/iturres/catalog_manager

Last synced: 28 days ago
JSON representation

💎 Console app that helps you to keep a record of different types of things you own: books, music albums, and games.

Awesome Lists containing this project

README

        


Catalog Manager Logo

Catalog Manager


---

# 📗 Table of Contents

- [📖 About the Project](#about-project)
- [Learning objectives](#learning-objectives)
- [Project Demo](#project-demo)
- [🛠 Built With](#built-with)
- [Tech Stack](#tech-stack)
- [💻 Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Usage](#usage)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [📝 License](#license)

---

# 📖 Catalog Manager

- 💎 In this project, we created a console app that will help you to keep a record of different types of things you own: books, music albums, and games. Everything is based on the UML class diagram presented below. The data is stored in JSON files but we also prepared a database with tables structure analogical to our program's class structure.

#### Project Demo
Project Presentation Demo

#### Learning objectives

- Insert and query data in SQL.
- Use primary key & foreign key mechanisms for joining tables.
- Understand the different types of relationships between tables.
- Use Ruby syntax for basic programming operations.
- Apply Ruby best practices and language style guides in code.
- Implement the SOLID principles of OOP.
- Implement classes and objects in Ruby.
- Understand the four main principles of OOP.
- Implement encapsulation and inheritance with Ruby.
- Create app from a UML class diagram.
- Explain the difference between associations, aggregations, and composition in OOP.
- Set up associations between classes and objects.
- Store data in files.
- Build interactive console apps.
- Recognize the value of making equal contributions to group projects to produce the best outcome.

## 🛠 Built With

### Tech Stack

---

## 💻 Getting Started

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

### Prerequisites

In order to run this project you need:

- Have Ruby installed. If you need to install Ruby, follow the instructions on the [official page](https://www.ruby-lang.org/en/documentation/installation/).

### Setup

Clone this repository to your desired folder:

Example commands:

- With SSH:

```bash
cd my-folder
git clone [email protected]:ITurres/catalog_manager.git
```

- With HTTPS:

```bash
cd my-folder
git clone https://github.com/ITurres/catalog_manager/.git
```

- With GitHub CLI:

```bash
cd my-folder
gh repo clone ITurres/catalog_manager
```

### Usage

Within the project folder
```bash
cd catalog_manager/
ruby main.rb
```

(back to top)

---

## 👥 Authors

👤 **Arthur Iturres**

- GitHub: [@ITurres](https://github.com/ITurres)
- LinkedIn: [Arthur Emanuel G. Iturres](https://www.linkedin.com/in/arturoemanuelguerraiturres/)
- Angellist / Wellfound: [Arturo (Arthur) Emanuel Guerra Iturres](https://wellfound.com/u/arturo-arthur-emanuel-guerra-iturres)
- Youtube: [Arturo Emanuel Guerra Iturres - Youtube Channel](https://www.youtube.com/channel/UC6GFUFHOtBS9mOuI8EJ6q4g)
- Portfolio: [Arthur Iturres - Portfolio](https://iturres.github.io/iturres-reactive-portfolio/)

👤 **Demes Ameneshoa**

- GitHub: [@demesameneshoa](https://github.com/demesameneshoa)
- LinkedIn: [Demes Ameneshoa](https://www.linkedin.com/in/demesameneshoa/)
- Angellist / Wellfound: [Demes Ameneshoa](https://wellfound.com/u/demesameneshoa)
- Portfolio: [Demes Ameneshoa - Portfolio](https://demesameneshoa.github.io/Portfolio/)

(back to top)

---

## 🔭 Future Features

- [x] Class Definitions.
- [x] Method implementations.
- [x] UI.
- [x] Preserve data and create db schema.
- [x] unit tests.
- [ ] Preserve `authors`, `labels` and `genres` separated.

(back to top)

---

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/ITurres/catalog_manager/issues).

(back to top)

---

## ⭐️ Show your support

Give a ⭐ if you liked this project!

(back to top)

---

## 🙏 Acknowledgments

We thank the **Code Reviewers** for their advice and time 🏆

(back to top)

---

## 📝 License

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

(back to top)

---