{"id":17467408,"url":"https://github.com/fherrerao/acme_exercise","last_synced_at":"2026-02-09T05:31:58.295Z","repository":{"id":104389777,"uuid":"544625004","full_name":"fherrerao/acme_exercise","owner":"fherrerao","description":"Exercise Acme is a console application that, given a .txt file with the employees and their respective hours, should return the names of the employees and the number of times they have been in the office.","archived":false,"fork":false,"pushed_at":"2022-10-28T19:27:18.000Z","size":25,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-06T17:51:56.873Z","etag":null,"topics":["kanban","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fherrerao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-02T23:32:50.000Z","updated_at":"2022-10-04T16:33:40.000Z","dependencies_parsed_at":"2023-03-13T14:57:35.800Z","dependency_job_id":null,"html_url":"https://github.com/fherrerao/acme_exercise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fherrerao/acme_exercise","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fherrerao%2Facme_exercise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fherrerao%2Facme_exercise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fherrerao%2Facme_exercise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fherrerao%2Facme_exercise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fherrerao","download_url":"https://codeload.github.com/fherrerao/acme_exercise/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fherrerao%2Facme_exercise/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269653987,"owners_count":24454317,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-09T02:00:10.424Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kanban","ruby"],"created_at":"2024-10-18T14:24:07.508Z","updated_at":"2026-02-09T05:31:58.267Z","avatar_url":"https://github.com/fherrerao.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\r\n![](https://img.shields.io/static/v1?label=BY\u0026message=fherrerao\u0026color=purple)\r\n\r\n# Acme app\r\n![Rails](https://img.shields.io/badge/ruby-%23CC0000.svg?style=for-the-badge\u0026logo=ruby\u0026logoColor=white)\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./MIT.md)\r\n![ruby version](https://img.shields.io/badge/Ruby-3.1.2-orange)\r\n\r\n## Preview\r\n![Screenshot from 2022-10-03 16-04-40](https://user-images.githubusercontent.com/91301423/193682688-25a72de1-271c-44da-ab41-3a9795d6a3a9.png)\r\n\r\n\u003chr\u003e\r\n\r\n## Table of Contents\r\n\r\n- [Description](#description)\r\n- [Built With](#built-with)\r\n- [Getting Started](#getting-started)\r\n  - [Clone Repo](#clone-repo)\r\n  - [Prerequisites](#prerequisites)  \r\n- [Setup](#setup)\r\n  - [System Dependencies](#system-dependencies)  \r\n- [Usage](#usage)\r\n  - [Run script](#run-script)\r\n  - [Testing RSpec](#testing-rspec)\r\n- [How To Contribute?](#how-to-contribute)\r\n- [Collaborators](#collaborators)\r\n- [Show Your Support](#how-your-support)\r\n- [Acknowledgments](#acknowledgments)\r\n- [License](#license)\r\n\u003chr\u003e\r\n\r\n## Description\r\n\u003e Exercise Acme is a console application that, given a .txt file with the employees and their respective hours, should return the names of the employees and the number of times they have been in the office.\r\n\u003chr\u003e\r\n\r\n## Solution\r\n\u003e It was built with the `Ruby` language, using the `Singleton` design pattern, a single instance of the Employee class was created. The first step was to create a [Kanban](https://github.com/users/fherrerao/projects/2) board with all tasks needed to complete the project. The solution used was to separate the data of each line to obtain the day, the start time, and the end time of each employee and create an array of objects to iterate it and manage the data obtaining the hours that two employees coincided in the office. \r\n\u003chr\u003e\r\n\r\n## Built With\r\n\r\n- Major languages: Ruby.\r\n- Tools \u0026 Methods: RSpec, Rubocop.\r\n\u003chr\u003e\r\n\r\n## Getting Started\r\n\r\nWe'll need to prepare your computer to handle Ruby an approach you can find in the official [site](https://www.ruby-lang.org/en/documentation/installation/) of Ruby.\r\n\r\n\u003chr\u003e\r\n\r\n## Clone Repo\r\n\r\nFirst clone this repo by running this command in your terminal:\r\n~~~ bash\r\ngit clone https://github.com/fherrerao/acme_exercise.git\r\n# wait a couple seconds for it to download\r\n# ...\r\n# ...\r\n# then move into the new directory\r\ncd acme_exercise\r\n~~~\r\n\r\n\u003chr\u003e\r\n\r\n## Prerequisites\r\n\r\nThe following technologies must be installed before hand in your local machine:\r\n\r\n - Ruby (ruby --version). Should be 3.1.2 or newer. \r\n\r\nThe commands in parenthesis `()` can be used to verify if they are installed and their corresponding versions.\r\n\r\nRefer to this [site](https://www.ruby-lang.org/en/documentation/installation/) for more detailed instructions on how to install this technology.\r\n\r\n\u003chr\u003e\r\n\r\n## Setup\r\n\r\nWe're getting there... trust me ;)\r\n\r\n## System Dependencies\r\n\r\nExecute this command to automatically install all the dependencies needed to view and work on this project:\r\n\r\n~~~ bash\r\nbundle install\r\n~~~\r\n\r\nThe full list of dependencies can be found within the [Gemfile](Gemfile).\r\n\r\nThis also installs PostgreSQL, which you'll need for the next step.\r\n\u003chr\u003e\r\n\r\n## Usage\r\nIf you got to this point, congratulations! You now have spent 2 hours in order to toy with my app. I appreciate your effort :P\r\n\r\n## Run Script\r\nPlease open a new terminal.\r\n\r\nThe following command should start the app\r\n\r\n\r\n~~~ bash\r\nruby main.rb\r\n~~~\r\n\r\n`Note:` Be sure to be in the acme_exercise directory\r\n~~~ bash\r\ncd acme_exercise\r\n~~~\r\n\u003chr\u003e\r\n\r\n## Testing RSpec\r\nIf you haven't installed the dependencies yet, please run the following command:\r\n\r\n~~~ bash\r\nbundle install\r\n~~~\r\n\r\nRSpec tests belong in another folder, which is [/spec](/spec/), all thanks to the ruby **magic** called `naming conventions`.\r\nAnyway, to run tests located in the spec folder run:\r\n~~~ bash\r\nbundle exec rspec spec\r\n~~~\r\n\u003chr\u003e\r\n\r\n## How To Contribute?\r\n\r\nAlways remember to commit your contributions on a different branch. You can create a new one by running `git checkout -b \u003cbranchname\u003e`.\r\n\r\nVisit [linters folder](.github/workflows/linters.yml) to learn how to setup linters.\r\n\r\nThen check linters locally before pushing by running:\r\n~~~ bash\r\n# ...\r\n# ...\r\nrubocop --color -A\r\n~~~\r\n\r\nFinally, once your changes have no linter errors and all tests are passing, try to merge your branch into  `development` by running:\r\n~~~ bash\r\ngit checkout development\r\ngit merge \u003cbranchname\u003e\r\n~~~\r\nContinue by solving any merge conflicts that may arise, test the functionality of the app once more, and you're changes are ready to be pushed with `git push origin \u003cbranchname\u003e`\r\n\u003chr\u003e\r\n\r\n# That's all folks!\r\n\r\n## Collaborators\r\n\r\n\u003chr\u003e\r\n\r\n👤 **Fernando Herrera**\r\n\r\nPlatform | Badge |\r\n --- | --- |\r\n **GitHub**  | [@fherrerao](https://github.com/fherrerao)\r\n **Twitter** | [Fernando Herrera](https://www.linkedin.com/in/fherrerao/)\r\n **LinkedIn** | [Fernando Herrera](https://twitter.com/fherrera0206)\r\n\r\n\u003chr\u003e\r\n \r\n## Show your support\r\n\r\nGive a ⭐️ if you like this project!\r\n\u003chr\u003e\r\n\r\n## Acknowledgments\r\n\r\n- The ideas and inspiration from this project are coming from:  [Ioet](https://www.ioet.com/)\r\n\r\n\r\n\u003chr\u003e\r\n\r\n## 📝 License\r\n\r\nThis project is [MIT](./LICENSE) licensed.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffherrerao%2Facme_exercise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffherrerao%2Facme_exercise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffherrerao%2Facme_exercise/lists"}