{"id":14065060,"url":"https://github.com/wanderindev/hr-rest-api","last_synced_at":"2025-07-29T19:34:06.137Z","repository":{"id":121320666,"uuid":"113270400","full_name":"wanderindev/hr-rest-api","owner":"wanderindev","description":"RESTful API for Human Resources Database","archived":false,"fork":false,"pushed_at":"2023-05-01T20:35:24.000Z","size":454,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-30T21:46:10.727Z","etag":null,"topics":["flask","flask-jwt","flask-restful","flask-sqlalchemy","postgresql","unittest"],"latest_commit_sha":null,"homepage":"","language":"Python","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/wanderindev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2017-12-06T04:53:59.000Z","updated_at":"2023-10-28T17:21:20.000Z","dependencies_parsed_at":"2024-02-15T00:47:54.183Z","dependency_job_id":null,"html_url":"https://github.com/wanderindev/hr-rest-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanderindev%2Fhr-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanderindev%2Fhr-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanderindev%2Fhr-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wanderindev%2Fhr-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wanderindev","download_url":"https://codeload.github.com/wanderindev/hr-rest-api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228046040,"owners_count":17861084,"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","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":["flask","flask-jwt","flask-restful","flask-sqlalchemy","postgresql","unittest"],"created_at":"2024-08-13T07:04:16.010Z","updated_at":"2024-12-04T04:30:41.644Z","avatar_url":"https://github.com/wanderindev.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eRESTful API for our Human Resources Database 🕘 - 🕔\u003c/h1\u003e\r\n\u003cp\u003e\r\n  \u003cimg src=\"https://img.shields.io/badge/version-1.0-blue.svg?cacheSeconds=2592000\" /\u003e\r\n  \u003ca href=\"https://github.com/wanderindev/hr-rest-api/blob/master/README.md\"\u003e\r\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg\" target=\"_blank\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://github.com/wanderindev/hr-rest-api/graphs/commit-activity\"\u003e\r\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/badge/Maintained%3F-yes-brightgreen.svg\" target=\"_blank\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://htmlpreview.github.io/?https://github.com/wanderindev/hr-rest-api/blob/master/coverage/index.html\"\u003e\r\n    \u003cimg alt=\"Coverage\" src=\"https://img.shields.io/badge/coverage-99%25-yellowgreen.svg\" target=\"_blank\" /\u003e\r\n  \u003c/a\u003e  \r\n  \u003ca href=\"https://github.com/wanderindev/hr-rest-api/blob/master/LICENSE.md\"\u003e\r\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" target=\"_blank\" /\u003e\r\n  \u003c/a\u003e\r\n  \u003ca href=\"https://twitter.com/JavierFeliuA\"\u003e\r\n    \u003cimg alt=\"Twitter: JavierFeliuA\" src=\"https://img.shields.io/twitter/follow/JavierFeliuA.svg?style=social\" target=\"_blank\" /\u003e\r\n  \u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n\u003eRESTful API for performing CRUD operations in our Human Resources database.  The API was coded in Python\r\nusing Flask, Flask-RESTful, SQLAlchemy, and Flask-JWT.  For testing, I used UnitTest.\r\n\r\n## How to use in development\r\nClone the repository:\r\n```sh\r\ngit clone https://github.com/wanderindev/hr-rest-api.git\r\ncd hr-rest-api\r\n``` \r\nStart the application with docker-compose:\r\n```sh\r\ndocker-compose up --build\r\n```\r\nThis will create a database container, a RESTful API container, a backend network, and a volume\r\nmapping the ./rest directory in the repository with the working directory in the container.\r\n\r\n## Running tests\r\nFrom PyCharm, right-click in the `tests/system` or `tests/unit` directory and select \r\n\"Run tests with Coverage\" to run either system or unit tests.\r\n\r\n## Testing with Postman\r\n\r\nClone the [postman-hr-rest-api](https://github.com/wanderindev/postman-hr-rest-api)\r\nrepository:\r\n```sh\r\ngit clone https://github.com/wanderindev/postman-hr-rest-api.git\r\n``` \r\nOpen Postman and import `hr-rest-api.json` and `hr-rest-api-environment.json`.\r\n\r\nClick on Runner.\r\n\r\nIn the window that pops open, select the `hr-rest-api` collection and the `hr-rest-api`\r\nenvironment.\r\n\r\nClick on Run.\r\n\r\n## Deployment\r\nModify `rest/Dockerfile_prod`, adding the correct values for the environment variables.\r\n\r\nBuild the container image and push to Docker Hub:\r\n```sh\r\ncd rest\r\ndocker build -t wanderindev/hr-rest -f Dockerfile_prod .\r\ndocker push wanderindev/hr-rest\r\n``` \r\n \r\n Go to the [do-managed-kubernetes](https://github.com/wanderindev/do-managed-kubernetes) \r\n repository and re-deploy the pod.\r\n ```sh\r\nkubectl delete deployment hr-rest\r\nkubectl apply -f ./sites/hr-rest.yml\r\n``` \r\n\r\n ## Author\r\n\r\n👤 **Javier Feliu**\r\n\r\n* Twitter: [@JavierFeliuA](https://twitter.com/JavierFeliuA)\r\n* Github: [@wanderindev](https://github.com/wanderindev)\r\n\r\n## Show your support\r\n\r\nGive a ⭐️ if this project helped you!\r\n\r\n## 📝 License\r\n\r\nCopyright © 2019 [Javier Feliu](https://github.com/wanderindev).\u003cbr /\u003e\r\n\r\nThis project is [MIT](https://github.com/wanderindev/hr-rest-api/blob/master/LICENSE.md) licensed.\r\n\r\n***\r\n_I based this README on a template generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_\r\n ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanderindev%2Fhr-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwanderindev%2Fhr-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwanderindev%2Fhr-rest-api/lists"}