{ "info": { "author": "Kelvin Jayanoris", "author_email": "kelvin@jayanoris.com", "bugtrack_url": null, "classifiers": [ "Framework :: Django", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# small-small-hr\n\n[![Build Status](https://travis-ci.org/moshthepitt/small-small-hr.svg?branch=master)](https://travis-ci.org/moshthepitt/small-small-hr)\n\n`small-small-hr` is a really really small and light-weight Django application that helps you (yes you!) to manage certain aspects of HR (human resource) in your small or large business/organization/whatever.\n\n## Installation\n\n```sh\npip install small-small-hr\n```\n\n## Features\n\nAt this time, `small-small-hr` supports the following:\n\n### Employee records\n\nYou can keep track of all your employee's details. This is achieved through a custom `StaffProfile` model attached to your `User` model via a `one-to-one` relationship. Some of the available fields on this model are:\n\n* first name\n* last name\n* gender\n* birth day\n* photo\n* number of allowed leave days per year\n* whether or not overtime is allowed for the employee\n* data - a JSON field that allows you to store any extra information\n\n### Employee Documents\n\nYou can keep track of an unlimited number of employee documents (think employment contracts, performance reviews, scans of identification documents, etc). This is achieved by an `StaffDocument` model that has a `one-to-many` relationship with the `StaffProfile` model (above).\n\nThe fields on this model are\n\n* staffprofile_id\n* name of document\n* description of document\n* dcoument file\n\n### Leave management\n\nAll employees can log in and make a request for leave. To achieve this, there exists a `LeaveRequest` model with these fields:\n\n* staffprofile_id\n* request date\n* start date\n* end date\n* reason for leave\n* status (pending approval/approved/rejected)\n* comments (made by the admin, e.g. reasons for refusal)\n\nOnce a LeaveRequest object is created, an administrator should review it and approve/reject it.\n\n### Overtime hours tracking\n\nEmployees who are allowed overtime can log in and record overtime hours. This is done by an `OvertimeHour` model with these fields:\n\n* staffprofile_id\n* date\n* start time\n* end time\n* reason for overtime\n* status (pending approval/approved/rejected)\n* comments (made by the admin, e.g. reasons for refusal)\n\nAdmins can download overtime hours reports for a particular period.\n\n## Contribution\n\nAll contributions are welcome.\n\nTo set up the project:\n\n1. Clone this repo\n2. `pipenv sync --dev`\n3. `pre-commit install`\n\n## Testing\n\n```sh\n\npip install -U tox\n\ntox\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/moshthepitt/small-small-hr", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "small-small-hr", "package_url": "https://pypi.org/project/small-small-hr/", "platform": "", "project_url": "https://pypi.org/project/small-small-hr/", "project_urls": { "Homepage": "https://github.com/moshthepitt/small-small-hr" }, "release_url": "https://pypi.org/project/small-small-hr/0.1.9/", "requires_dist": [ "Django (>=2.0.11)", "voluptuous", "psycopg2-binary", "sorl-thumbnail", "django-private-storage", "phonenumberslite", "django-phonenumber-field", "django-crispy-forms", "djangorestframework", "sorl-thumbnail", "Pillow" ], "requires_python": "", "summary": "Minimal human resource management app for Django", "version": "0.1.9" }, "last_serial": 5541790, "releases": { "0.1.6": [ { "comment_text": "", "digests": { "md5": "016ea09c7a5cb4021143f7d036e8e150", "sha256": "c39b1c74ff3b1fd253a90c56737fac838c5c2fd4da62b5f87c23edd402ab004d" }, "downloads": -1, "filename": "small_small_hr-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "016ea09c7a5cb4021143f7d036e8e150", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20584, "upload_time": "2019-04-16T18:03:25", "url": "https://files.pythonhosted.org/packages/6a/ef/3498f41f2b6e8ff84141007fa802b3e40c7271a0d5931a003dc8fe3e5b92/small_small_hr-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a05d16a7daff885a06422f672ff7cb1", "sha256": "f01e8034b53337641833a30b213ffd187b62fc222000cfd935389976e7c1ba6d" }, "downloads": -1, "filename": "small-small-hr-0.1.6.tar.gz", "has_sig": false, "md5_digest": "0a05d16a7daff885a06422f672ff7cb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15783, "upload_time": "2019-04-16T18:03:28", "url": "https://files.pythonhosted.org/packages/cf/09/4d7cc1508fc31e6052ebb1c8322f547907e7e2b4e65b0659d6d676927710/small-small-hr-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "bb2839d23c669694634854c14bfd167d", "sha256": "3c950ab1f36fc851bc9d20637a60a2aa1057258cb19d89930d563d55b0be3892" }, "downloads": -1, "filename": "small_small_hr-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "bb2839d23c669694634854c14bfd167d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21223, "upload_time": "2019-06-25T18:50:12", "url": "https://files.pythonhosted.org/packages/f2/1c/355aa9f8d7e07831b275541c0a04912cb7b44c516d680f8c3be79e1f46de/small_small_hr-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c6170f2730794d3c8c9526b19720825", "sha256": "07f71870ccb0362594ee6e5507eb904746503eb926d6e14c11837243ba1d7b80" }, "downloads": -1, "filename": "small-small-hr-0.1.7.tar.gz", "has_sig": false, "md5_digest": "7c6170f2730794d3c8c9526b19720825", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16167, "upload_time": "2019-06-25T18:50:13", "url": "https://files.pythonhosted.org/packages/5a/da/276551c52620111a17c81fc0337556dc9070bff11223c48fb624f8075a50/small-small-hr-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "837884ee93149006485da15a025354e7", "sha256": "ee70b36359439315da29f4de2f9ca131c50457fb2675f1ae2296a3306f24eba1" }, "downloads": -1, "filename": "small_small_hr-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "837884ee93149006485da15a025354e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21361, "upload_time": "2019-06-29T10:54:02", "url": "https://files.pythonhosted.org/packages/71/bf/a0d1576bf9ad3f9e29c79683d63bdd37fcd26a9e893d40c3e43d200cf418/small_small_hr-0.1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76180f8bc74bb73e9231aba363a08250", "sha256": "0f53bd400b58002a61757b38dbfcd83113c31a1b43ad6097883b3f03a5a2aec5" }, "downloads": -1, "filename": "small-small-hr-0.1.8.tar.gz", "has_sig": false, "md5_digest": "76180f8bc74bb73e9231aba363a08250", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16509, "upload_time": "2019-06-29T10:54:04", "url": "https://files.pythonhosted.org/packages/83/f7/0ae294e8dc0fcb5560e597e0d53eeb1024d604e969e60cbd75291fc8487f/small-small-hr-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "22cc3017826bf4b2aee21d08dca19e9a", "sha256": "b91f13bddce75e04767ef83395ac29e1ffc135e52e36f49157ffcaabd1139384" }, "downloads": -1, "filename": "small_small_hr-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "22cc3017826bf4b2aee21d08dca19e9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21357, "upload_time": "2019-07-16T17:24:21", "url": "https://files.pythonhosted.org/packages/7f/8f/cbab241933251488fff232e70739b1baec83519e7d98deb7fe52e4857e2e/small_small_hr-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "576451df4c958c1f6654e3e30181154f", "sha256": "b61741c3b2ec5ad60f3a6aa6da735a77e38d894fee3db9b63dfbef09a9e14bb9" }, "downloads": -1, "filename": "small-small-hr-0.1.9.tar.gz", "has_sig": false, "md5_digest": "576451df4c958c1f6654e3e30181154f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18144, "upload_time": "2019-07-16T17:24:23", "url": "https://files.pythonhosted.org/packages/6e/21/68d86923a9d7ca1f0f97ee4378320760361e5ce319fd05475d59ef8e0d2c/small-small-hr-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "22cc3017826bf4b2aee21d08dca19e9a", "sha256": "b91f13bddce75e04767ef83395ac29e1ffc135e52e36f49157ffcaabd1139384" }, "downloads": -1, "filename": "small_small_hr-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "22cc3017826bf4b2aee21d08dca19e9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21357, "upload_time": "2019-07-16T17:24:21", "url": "https://files.pythonhosted.org/packages/7f/8f/cbab241933251488fff232e70739b1baec83519e7d98deb7fe52e4857e2e/small_small_hr-0.1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "576451df4c958c1f6654e3e30181154f", "sha256": "b61741c3b2ec5ad60f3a6aa6da735a77e38d894fee3db9b63dfbef09a9e14bb9" }, "downloads": -1, "filename": "small-small-hr-0.1.9.tar.gz", "has_sig": false, "md5_digest": "576451df4c958c1f6654e3e30181154f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18144, "upload_time": "2019-07-16T17:24:23", "url": "https://files.pythonhosted.org/packages/6e/21/68d86923a9d7ca1f0f97ee4378320760361e5ce319fd05475d59ef8e0d2c/small-small-hr-0.1.9.tar.gz" } ] }