{"id":14975544,"url":"https://github.com/timeoffthescheduler/server","last_synced_at":"2025-07-15T16:09:53.387Z","repository":{"id":42322583,"uuid":"208158685","full_name":"timeoffthescheduler/server","owner":"timeoffthescheduler","description":"Server Side Implementation of TimeOff TS, A Scheduler","archived":false,"fork":false,"pushed_at":"2022-12-22T09:07:02.000Z","size":11389,"stargazers_count":9,"open_issues_count":14,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-08T09:47:44.270Z","etag":null,"topics":["express","express-js","expressjs","mongo","mongodb","mongoose","mongoosejs","node-js","nodejs","nosql","saas","scheduler","vacations"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timeoffthescheduler.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-09-12T22:48:51.000Z","updated_at":"2022-10-23T00:38:45.000Z","dependencies_parsed_at":"2023-01-30T06:31:31.911Z","dependency_job_id":null,"html_url":"https://github.com/timeoffthescheduler/server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timeoffthescheduler/server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timeoffthescheduler%2Fserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timeoffthescheduler%2Fserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timeoffthescheduler%2Fserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timeoffthescheduler%2Fserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timeoffthescheduler","download_url":"https://codeload.github.com/timeoffthescheduler/server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timeoffthescheduler%2Fserver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265444856,"owners_count":23766436,"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":["express","express-js","expressjs","mongo","mongodb","mongoose","mongoosejs","node-js","nodejs","nosql","saas","scheduler","vacations"],"created_at":"2024-09-24T13:52:11.373Z","updated_at":"2025-07-15T16:09:53.343Z","avatar_url":"https://github.com/timeoffthescheduler.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\r\n  \u003cimg src=\"screenshots/logo.png\" /\u003e\r\n\u003c/p\u003e\r\n\r\n[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Your%20employees%20want%20to%20set%20vacation%20before%20taking%20their%20time%20off?%20Here%20is%20an%20open%20source%20project%20that%20can%20help%20you%20to%20set%20their%20vacations\u0026url=https://github.com/zafar-saleem/timeoff-server)\r\n\r\n\u003cp align=\"center\"\u003e\r\n  \u003ca target=\"_blank\" href='https://www.facebook.com/TimeOff-325473081302189'\u003eFacebook\u003c/a\u003e |\r\n  \u003ca target=\"_blank\" href='https://twitter.com/TimeOff72858529'\u003eTwitter\u003c/a\u003e |\r\n  \u003ca target=\"_blank\" href='https://www.reddit.com/user/timeoffts'\u003eReddit\u003c/a\u003e |\r\n  \u003ca target=\"_blank\" href='https://medium.com/@zafarsaleem/how-i-built-my-own-open-source-project-a876c6d6b720'\u003eMedium\u003c/a\u003e\r\n\u003c/p\u003e\r\n\r\n### Note: This project is no longer maintained on this repository. It is moved to private repository.\r\n\r\n**Note**: To use this project with built in user interface then use its client side implementation which could be found [here](https://github.com/timeoffthescheduler/app)\r\n\r\n\r\nTimeOff is an application that allows companies and organizations to allow their employees to set vacations before they take their time off. TimeOff is an easy to use vacation setter with just few clicks.\r\n\r\nTimeOff is completely open source meaning companies can use this project and set it up either internally or in the cloud for their use.\r\n\r\nIn addition, it is completely customizable i.e. companies can customize its user interface as well as can add new features or remove for their use both\r\non client and serverside.\r\n\r\n### Set up is as easy as it can be\r\nSetting up of this project is simply `clone it`, `npm install` for dependency installation and deploy.\r\n\r\n### Architecture\r\nVery simple and easy to scale architecture. All it needs is implementation of new services for new features and you are good to go.\r\n\r\n## Technology stack\r\nThe technology stack used is below\r\n* Node.js\r\n* Express.js\r\n* MongoDB\r\n* Passport\r\n\r\n## Client side of this project\r\nThe client side of this project could be found [here](https://github.com/timeoffthescheduler/app)\r\n\r\n## Usage\r\nTo run this project locally, use `nodemon` package. Run `nodemon index.js` in timeoff-server folder which will run its server. Then use the client side and run its server using `npm start` command and visit the url mentioned in terminal of the client side.\r\n\r\n![Video](screenshots/timeoff-setup.gif)\r\n\r\n**Note**: Don't forget to setup database before following above video to setup this project.\r\n\r\n## Database\r\nThis project requires setting up your own database on your machine. Please follow below links.\r\n* [Windows](https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-windows/)\r\n* [MacOS](https://www.code2bits.com/how-to-install-mongodb-on-macos-using-homebrew/) Make sure that homebrew is already installed on your machine.\r\n\r\nOnce you have that setup, make one admin account in Users collection, with properties username, password, email and role(which should be set to admin).\r\n\r\nTo create an admin user, go to `http://localhost:PORTNUMBER/register` and enter admin's details. Click register. Then go to mongodb CLI. use timoff database and use below query to update user's role to Admin.\r\n\r\n`db.users.update({\"username\": \"root\"}, {$set:{\"role\":\"Admin\"}})`\r\n\r\n![Video](screenshots/timeoff-admin-account.gif)\r\n\r\n# Contributions\r\nIn order to contribute, please open issues and make pull requests.\r\n\r\n# Contact\r\nzsaleem@protonmail.com\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimeoffthescheduler%2Fserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimeoffthescheduler%2Fserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimeoffthescheduler%2Fserver/lists"}