Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benawi/oop-school-library
Imagine that you are the librarian of OOP University, and you need a tool to record what books are in the library and who borrows them. The app that you will create will allow you to: Add new students or teachers. Add new books. Save records of who borrowed a given book and when.
https://github.com/benawi/oop-school-library
abstr enca inheri polymo ruby
Last synced: 13 days ago
JSON representation
Imagine that you are the librarian of OOP University, and you need a tool to record what books are in the library and who borrows them. The app that you will create will allow you to: Add new students or teachers. Add new books. Save records of who borrowed a given book and when.
- Host: GitHub
- URL: https://github.com/benawi/oop-school-library
- Owner: Benawi
- Created: 2023-08-01T19:27:40.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2024-02-27T08:23:05.000Z (11 months ago)
- Last Synced: 2024-05-17T15:54:48.930Z (9 months ago)
- Topics: abstr, enca, inheri, polymo, ruby
- Language: Ruby
- Homepage:
- Size: 656 KB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
###
π°OOP school libraryπ# π Table of Contents
- [π About the Project](#about-project)
- [π Built With](#built-with)
- [Tech Stack](#tech-stack)
- [Key Features](#key-features)
- [π» Getting Started](#getting-started)
- [Setup](#setup)
- [Prerequisites](#prerequisites)
- [Install](#install)
- [Usage](#usage)
- [Run tests](#run-tests)
- [π₯ Authors](#authors)
- [π Future Features](#future-features)
- [π€ Contributing](#contributing)
- [βοΈ Show your support](#support)
- [π Acknowledgements](#acknowledgements)- [π License](#license)
# π OOP school library
This repository includes files with Ruby that can be used to recreate an OOP school library app.
### OOP school library
- [x] Create Person class with:
- Instance vars: @id, @name, @age
- Constructor with optional name, parent_permission
- Getters/setters for @name, @age
- Private of_age? method
- Public can_use_services? method
- [x] Create Student subclass with:
- Constructor adding @classroom
- play_hooky method
- [x] Create Teacher subclass with:
- Constructor adding @specialization
- Override can_use_services? to always return true
- [x] Prepare CapitalizeDecorator and TrimmerDecorator
- [x] set up associations
- [x] preserve data
- [x] Add unit test
### Prerequisites
To run this project you need:
- [Ruby](https://www.ruby-lang.org/en/) installed and running. To get more information, read the [installation instructions](https://github.com/microverseinc/curriculum-ruby/blob/main/simple-ruby/articles/ruby_installation_instructions.md).
- You should be able to use [IRB](https://en.wikipedia.org/wiki/Ruby_(programming_language)#Features).
### Setup
Clone this repository to your desired folder:
```
git clone [email protected]:rabayarabu/OOP-school-library.git
cd OOP-school-library
```
### Install
Install project dependencies with:
```
bundle install
```
To run the project, instantiate the class files in `main. rb` and execute the following command:
```
ruby main.rb
```
### π€ **Habtamu Alemayehu**
- GitHub: [Benawi](https://github.com/Benawi)
- Linkdin: [Habtamu](https://www.linkedin.com/in/habtamualemayehu/)
### π€ **Abel Morara**
- GitHub: [@ProgramKingAbel](https://github.com/ProgramKingAbel)
- Twitter: [@CEOAbel1](https://twitter.com/CEOAbel1)
- LinkedIn [LinkedIn](https://www.linkedin.com/in/abelmatundamorara-451340250)
### π€ **Sahalu Aminu**
- GitHub: [@sahlminkok](https://github.com/sahlminkok)
- Twitter: [@sahlminkok](https://twitter.com/sahlminkok)
- LinkedIn [sahlminkok](https://linkedin.com/in/sahlminkok)
## π Future Features
- [ ] Optimize the performance of the system.π
Contributions, [issues](https://github.com/Benawi/OOP-School-Library/issues), and feature requests are welcome!
Give me βοΈ If you like this project!
- I thank the Microverse program for giving us this great chance.
This project is [MIT](./MIT.md) licensed.