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

https://github.com/nitbravoa92/oop-school-library

"OOP School Library" is a program made in ruby ​​for a University library, which was created using the object-oriented programming paradigm. The program allows users to register new students and teachers, manage book information, and more efficiently control books borrowing.
https://github.com/nitbravoa92/oop-school-library

object-oriented-programming rspec-testing ruby solid-principles

Last synced: 8 months ago
JSON representation

"OOP School Library" is a program made in ruby ​​for a University library, which was created using the object-oriented programming paradigm. The program allows users to register new students and teachers, manage book information, and more efficiently control books borrowing.

Awesome Lists containing this project

README

          


OOP School Library | Ruby Project


# 📗 Table of Contents

- [📗 Table of Contents](#-table-of-contents)
- [OOP School Library ](#oop-school-library-)
- [🛠 Built With ](#-built-with-)
- [Tech Stack ](#tech-stack-)
- [Key Features ](#key-features-)
- [💻 Getting Started ](#-getting-started-)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Install](#install)
- [Usage](#usage)
- [Run tests](#run-tests)
- [👥 Authors ](#-authors-)
- [🔭 Future Features ](#-future-features-)
- [🤝 Contributing ](#-contributing-)
- [⭐️ Show your support ](#️-show-your-support-)
- [🙏 Acknowledgments ](#-acknowledgments-)
- [📝 License ](#-license-)

---

# OOP School Library

**"OOP School Library"** is a program made in ruby ​​for a University library, which was created using the object-oriented programming paradigm. The program allows users to register new students and teachers, manage book information, and more efficiently control books borrowing.

---

## 🛠 Built With

### Tech Stack

Ruby

---

### Key Features


  • Ruby

  • Linters

    • Rubocop



  • Apply SOLID principles

  • Data persistent in JSON files

  • Follow Microverse's list of best practices

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


  • A code editor (we recommend Visual Studio Code)



  • Git and a GitHub account


### Setup

Clone this repository to your desired folder by using this 👇️ command :

```
git clone https://github.com/NitBravoA92/oop-school-library.git
```

### Install

Go to the project directory:

```
cd oop-school-library
```

Before to run the program, verify that you have Ruby installed on your OS running the following command:

```
ruby -v
```

It should show you the version of ruby ​​installed. If this does not happen and only an error message is displayed, then you should either verify your installation or install Ruby from scratch.

[Download and Install Ruby](https://www.ruby-lang.org/en/downloads/)

### Usage

Run the following command inside the project folder:

```
ruby main.rb
```

This will display the main application menu:

```
Welcome to School Library App!

Please choose an option by enterin a number:
1. List all books
2. List all people
3. Create a person
4. Create a book
5. Create a rental
6. List all rentals for a given person id
7. Exit
```

You can navigate through the program's options menu to create books, students, teachers, and book rentals. You can also see the list of all the records you have previously added.

### Run tests

- Not aplicable.

(back to top)

---

## 👥 Authors

👤 **Nitcelis Bravo**

- GitHub: [Nitcelis Bravo](https://github.com/NitBravoA92)
- Twitter: [@softwareDevOne](https://twitter.com/softwareDevOne)
- LinkedIn: [Nitcelis Bravo Alcala](https://www.linkedin.com/in/nitcelis-bravo-alcala-b65340158)

👤 **Ahmed Eid**

- GitHub: [Ahmed Eid](https://github.com/ahmedeid6842)
- Twitter: [@ahmedeid2684](https://twitter.com/ahmedeid2684)
- LinkedIn: [Ahmed Eid](https://www.linkedin.com/in/ameid/)

(back to top)

---

## 🔭 Future Features

Upcoming improvements:

- [x] Implement the "Decorator" design pattern to extends the functionalities of the classes
- [x] Implement the association relationships
- [x] Add basic UI to the program
- [x] Apply SOLID principles
- [x] Preserve data
- [ ] Create unit tests

(back to top)

---

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the [issues page](https://github.com/NitBravoA92/decode-morse-code-message/issues).

(back to top)

---

## ⭐️ Show your support

If you like this project and know someone who might find it helpful, please share it.
Or give it a **star** ⭐️ if you like this project!

(back to top)

---

## 🙏 Acknowledgments

I thank Microverse for this fantastic opportunity, and the code reviewers for their advice and time.

(back to top)

---

## 📝 License

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

(back to top)

---