Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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.

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.

## πŸ›  Built With

## Tech Stack

## πŸ”‘ Key Features

### 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

(back to top)

## πŸ’» Getting Started

### 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
```

### Usage

To run the project, instantiate the class files in `main. rb` and execute the following command:

```
ruby main.rb
```

(back to top)

## πŸ‘₯ Authors

### πŸ‘€ **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)

(back to top)

## πŸ”­ Future Features
- [ ] Optimize the performance of the system.πŸš€

(back to top)

## 🀝 Contributing

Contributions, [issues](https://github.com/Benawi/OOP-School-Library/issues), and feature requests are welcome!

(back to top)

## ⭐️ Show your support

Give me ⭐️ If you like this project!

(back to top)

## πŸ™ Acknowledgments

- I thank the Microverse program for giving us this great chance.

(back to top)

## πŸ“ License

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

(back to top)