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.
- Host: GitHub
- URL: https://github.com/nitbravoa92/oop-school-library
- Owner: NitBravoA92
- License: mit
- Created: 2023-08-28T15:32:51.000Z (almost 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-09-07T04:25:42.000Z (over 2 years ago)
- Last Synced: 2025-01-13T14:51:37.079Z (over 1 year ago)
- Topics: object-oriented-programming, rspec-testing, ruby, solid-principles
- Language: Ruby
- Homepage:
- Size: 74.2 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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"** 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.
---
Ruby
---
- Ruby
- Linters
- Rubocop
- Apply SOLID principles
- Data persistent in JSON files
- Follow Microverse's list of best practices
---
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.
---
👤 **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/)
---
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
---
Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](https://github.com/NitBravoA92/decode-morse-code-message/issues).
---
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!
---
I thank Microverse for this fantastic opportunity, and the code reviewers for their advice and time.
---
This project is [MIT](./LICENSE) licensed.
---