{"id":34527989,"url":"https://github.com/mes32/shift-scheduler","last_synced_at":"2026-05-27T12:04:53.506Z","repository":{"id":39526774,"uuid":"189604093","full_name":"mes32/shift-scheduler","owner":"mes32","description":"Create and view a work schedule. Managers/employees can view all employee shifts and create a shift.","archived":false,"fork":false,"pushed_at":"2023-01-03T23:13:44.000Z","size":3728,"stargazers_count":2,"open_issues_count":25,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-30T06:25:50.225Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mes32.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-31T14:06:20.000Z","updated_at":"2023-01-31T17:19:15.000Z","dependencies_parsed_at":"2023-02-01T12:46:23.526Z","dependency_job_id":null,"html_url":"https://github.com/mes32/shift-scheduler","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mes32/shift-scheduler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mes32%2Fshift-scheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mes32%2Fshift-scheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mes32%2Fshift-scheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mes32%2Fshift-scheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mes32","download_url":"https://codeload.github.com/mes32/shift-scheduler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mes32%2Fshift-scheduler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33564930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"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":[],"created_at":"2025-12-24T05:24:41.585Z","updated_at":"2026-05-27T12:04:53.501Z","avatar_url":"https://github.com/mes32.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shift Scheduler\nCreate and view an hourly work schedule. Managers/employees can view a list of all employee shifts and add new shifts.\n\nYou can view a live hosted instance of this project on Heroku: [https://mysterious-tundra-83088.herokuapp.com](https://mysterious-tundra-83088.herokuapp.com)\n\n## Utilized Web Stack\n- `User Interface` - React, CSS\n- `Client` - React, Redux, Redux-Saga\n- `Server` - Node.js, Express\n- `Database` - PostgreSQL\n\n## Requirements\n- Git\n- Web browser\n- Node\n- Nodemon\n- PostgreSQL\n- Heroku CLI (Optional for hosting on Heroku)\n\n## Setup and Run\n```bash\n# 1. Create PostgreSQL database named 'shift_scheduler'\ncreatedb shift_scheduler\n\n# 2. Create the database schema\npsql -E -f database_schema.sql -d shift_scheduler\n\n# 3. (Optional) Initalize database with mock data\npsql -E -f database_mockup.sql -d shift_scheduler\n\n# 4. Install Node dependencies/libraries using NPM\nnpm install\n\n# 5. Start the server\nnpm run server\n\n# 6. Start the client (runs locally on PORT 3000)\nnpm run client\n\n# 7. Optional run unit tests using Jest\nnpm run test\n```\n**See:** [localhost:3000](http://localhost:3000)\n\n## Deploying to Heroku\n\n```bash\n# 1. From the project directory run the following to setup Heroku\nheroku create\n\n# 2. Push the 'master' branch to the newly created 'heroku' remote\ngit push heroku master\n\n# 3. Add Heroku addon for PostgreSQL databases\nheroku addons:create heroku-postgresql:hobby-dev\n\n# 4. Create the database schema for the remote database\nheroku pg:psql -f database_schema.sql\n\n# 5. Insert mock data for the remote database\nheroku pg:psql -f database_mockup.sql\n```\n\n## Features\n\n### Completed Features\n- [x] Allows users to log new shifts\n- [x] The current shift schedule can be listed (ordered by the start time)\n- [x] An employee's shift cannot overlap with any existing shifts for the same employee\n- [x] Basic CSS styling and basic quality of life user experience\n- [x] When entering shift data start and end times, the user interface attempts to anticipate user desires and reduce the chance for non-valid entries \n- [x] Project hosted on Heroku. See [https://mysterious-tundra-83088.herokuapp.com](https://mysterious-tundra-83088.herokuapp.com/)\n\n### Planned Features\n- [ ] Unit/Functional testing\n- [ ] Postman file\n- [ ] API documentation\n- [ ] Calendar display for all shifts\n- [ ] Add an authentication/authorization system\n- [ ] Add a user system with manager and employee roles (restrict creation to only manager roles)\n\n## Authors\nMichael Stockman\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmes32%2Fshift-scheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmes32%2Fshift-scheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmes32%2Fshift-scheduler/lists"}