https://github.com/abdussattar-70/oop-school-library
The OOP-School-Library project demonstrates the principles of data abstraction, inheritance, encapsulation, and polymorphism, which are fundamental concepts in object-oriented programming(OOP).
https://github.com/abdussattar-70/oop-school-library
abstraction data encapsulation inheritance polymorphism rubocop-configuration ruby
Last synced: about 1 year ago
JSON representation
The OOP-School-Library project demonstrates the principles of data abstraction, inheritance, encapsulation, and polymorphism, which are fundamental concepts in object-oriented programming(OOP).
- Host: GitHub
- URL: https://github.com/abdussattar-70/oop-school-library
- Owner: AbdusSattar-70
- License: mit
- Created: 2023-05-29T13:24:06.000Z (about 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-06-08T11:04:36.000Z (almost 3 years ago)
- Last Synced: 2025-02-03T12:28:08.597Z (over 1 year ago)
- Topics: abstraction, data, encapsulation, inheritance, polymorphism, rubocop-configuration, ruby
- Language: Ruby
- Homepage:
- Size: 65.4 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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)
- [👥 Authors](#authors)
- [🔭 Future Features](#future-features)
- [🤝 Contributing](#contributing)
- [⭐️ Show your support](#support)
- [🙏 Acknowledgements](#acknowledgements)
- [❓ FAQ](#faq)
- [📝 License](#license)
> ## The **OOP-School-Library** project consists of three classes: Person, Student, and Teacher. The Person class has attributes for identification, name, and age, along with getters and setters. It also has a method to check if a person is of age or has parental permission.The Student class inherits from Person and adds a classroom attribute. It includes a method called play_hooky to represent skipping class.The Teacher class also inherits from Person and includes a specialization attribute. It overrides the can_use_services. method to always return true.Each class is saved in a separate file for better organization. The project provides a foundation for a library management system in a school environment.
Client
Ruby: The primary programming language for the project.
Server
- none
Database
- none
- Simple command-line interface.
- Support for IRB input formats.
### To get a local copy up and running, follow these steps.
### Prerequisites
In order to run this project you need:
- A Computer (MAC or PC)
- Code editor (VSCode,Atom etc...)
- A browser (Chrome,Mozilla,Safari etc...)
- Version Control System (Git and Github)
- Ruby installed: To run a Ruby project, users must have Ruby installed on their system. You can include the minimum required version of Ruby needed to run the project.
### Setup
Clone this repository to your desired folder:
```sh
cd my-folder
git clone github.com/AbdusSattar-70/oop-school-library
```
## Install
Install this project with:
- Install RubyInstaller [Win](https://rubyinstaller.org/)
- Install Ruby for [macOS](https://www.ruby-lang.org/en/documentation/installation/#homebrew)
- Install Ruby for [Linux](https://www.makeuseof.com/install-ruby-on-linux/)
## Usage
To run a Ruby file in the command line, follow these steps:
Open a command prompt or terminal window on your computer.
Navigate to the directory where the Ruby file is stored using the cd command.
Type the following command to run the Ruby file:
```sh
ruby filename.rb
```
### - where filename.rb is the name of the Ruby file you want to run.
- GitHub: [AbdusSattar-70](https://github.com/AbdusSattar-70)
- Twitter: [Abdus Sattar](https://twitter.com/Abdus_Sattar70)
- LinkedIn: [Abdus Sattar](https://www.linkedin.com/in/abdus-sattar70/)
- GitHub: [Tshobohwa](https://github.com/Tshobohwa)
- Twitter: [@SalomonTshoboh1](https://twitter.com/SalomonTshoboh1)
- LinkedIn: [Tshobohwa Salomon](https://www.linkedin.com/in/tshobohwasalomon/)
- [ ] Project 2: use the "Decorator" design pattern.
- [ ] Project 3: set up associations.
- [ ] Project 4: add basic UI.
- [ ] Project 5: refactor the code.
- [ ] Project 6: preserve data.
- [ ] Project 7: unit tests.
Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](https://github.com/AbdusSattar-70/oop-school-library/issues).
> If you like this project rate it and give it a star...
> We would like to thank the [Microverse team](https://www.microverse.org/) for allowing us to work on this Morse Code Decoder ruby project.
- **How do I install and run the project?**
- To install and run the project, you will need to have Ruby installed on your computer. Once you have Ruby installed, you can download the project files and run the program from the command line using the following command:
- **What technologies and libraries are used in the project?**
- The project is written in Ruby and does not require any external libraries or dependencies.
- **How can I contribute to the project?**
- Contributions to the project are welcome! Please feel free to submit bug reports, feature requests, or pull requests on the project's GitHub repository.
This project is [MIT](./LICENSE) licensed.