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

https://github.com/fmanimashaun/school_library

School Library App is a Ruby project focused on implementing classes and objects to manage a school library. This initial step involves creating classes to represent students and teachers.
https://github.com/fmanimashaun/school_library

ruby ruby-gem ruby-oop

Last synced: 7 months ago
JSON representation

School Library App is a Ruby project focused on implementing classes and objects to manage a school library. This initial step involves creating classes to represent students and teachers.

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)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Usage](#usage)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [📝 License](#license)

## 📖 School Library command-Line App

**School Library App** is a Ruby project focused on implementing classes and objects to manage a school library. This initial step involves creating classes to represent students and teachers.

## 🛠 Built With

- Ruby

### Tech Stack

Server


  • Ruby

### Key Feature

- Create class `Person` with the following:
- Instance vars: `@id`, `@name`, and `@age`.
- Constructor with `name`, `age`, and `parent_permission` as parameter. `name` and `parent_permission` are optional and have default values of `"Unknown"` and `true`.
- Getters for `@id`, `@name`, and `@age`.
- Setters for `@name` and `@age`.
- Private method `of_age?` that returns `true` if `@age` is greater or equal to 18 and `false` otherwise.
- Public method `can_use_services?` that returns `true` if person is of age or if they have permission from parents.
- Create class `Student` with the following:
- Inherits from `Person`.
- Constructor extends parent's constructor by adding `@classroom` and a parameter for it.
- Method `play_hooky` that returns `"¯\(ツ)/¯"`.
- Create class `Teacher` with the following:
- Inherits from `Person`.
- Constructor extends parent's constructor by adding `@specialization` and a parameter for it.
- Override `can_use_services?` so it always returns `true`.
- Each class are be saved in a separate file.

👆

## 💻 Getting Started

To get started with the project, follow the steps below.

### Prerequisites

To run this project, ensure you have the following installed:

- [Git](https://git-scm.com/)
- [Ruby](https://www.ruby-lang.org/en/)
- A code editor (e.g., [VsCode](https://code.visualstudio.com/))

### Setup

Clone the repository to your local machine:

```bash
git clone https://github.com/fmanimashaun/school_library.git
```

### Usage

To run the program, you can use a Ruby interpreter. For example, to interact with the code, use the following:

```ruby
irb
```

Then, load the required files and start using the classes.

👆

## 👥 Authors

👤 **Fisayo Michael Animashaun**

- GitHub: [@fmanimashaun](https://github.com/fmanimashaun)
- Twitter: [@fmanimashaun](https://twitter.com/fmanimashaun)
- LinkedIn: [Fisayo Michael Animashaun ](https://linkedin.com/in/fmanimashaun)

👆

## 🔭 Future Features

- [Add your future feature ideas here.]

👆

## 🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

https://github.com/fmanimashaun/school_library/issues

👆

## ⭐️ Show your support

If you like this project leave a start for it.

👆

## 🙏 Acknowledgments

I'd like to thank Microverse for helping us in the journey to become a Fullstack developer.

👆

## 📝 License

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

👆