{"id":21012560,"url":"https://github.com/igeligel/workplacify","last_synced_at":"2025-10-24T23:02:39.863Z","repository":{"id":211639884,"uuid":"722541717","full_name":"igeligel/workplacify","owner":"igeligel","description":"The #1 desk reservation/scheduling solution for hybrid workplaces, fully open-source","archived":false,"fork":false,"pushed_at":"2024-11-17T12:16:10.000Z","size":2337,"stargazers_count":18,"open_issues_count":21,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-17T13:23:39.503Z","etag":null,"topics":["next-auth","nextjs","open-source","postgresql","prisma","trpc","typescript","zod"],"latest_commit_sha":null,"homepage":"https://workplacify.com","language":"TypeScript","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/igeligel.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":"2023-11-23T11:22:12.000Z","updated_at":"2024-11-17T12:14:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ae7b1e7-4f0f-4217-8261-ba1692e05c2d","html_url":"https://github.com/igeligel/workplacify","commit_stats":null,"previous_names":["igeligel/workplacify"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igeligel%2Fworkplacify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igeligel%2Fworkplacify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igeligel%2Fworkplacify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igeligel%2Fworkplacify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igeligel","download_url":"https://codeload.github.com/igeligel/workplacify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225327806,"owners_count":17457171,"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":["next-auth","nextjs","open-source","postgresql","prisma","trpc","typescript","zod"],"created_at":"2024-11-19T09:37:36.482Z","updated_at":"2025-10-24T23:02:39.856Z","avatar_url":"https://github.com/igeligel.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# workplacify\n\nThe open-source desk scheduling app for your office. [Learn more](https://workplacify.com).\n\n\u003cdiv align=\"center\"\u003e\n\n[Discord](https://discord.gg/MeNJDkKmBb) · [Website](https://workplacify.com) · [Issues](https://github.com/igeligel/workplacify/issues)\n\n\u003c/div\u003e\n\n![Banner for the GitHub repository, showing application screenshots](./docs/github-banner.png)\n\n## About the Project\n\nWe are the first open-source desk scheduling app for your office. Ever had conflicting desk schedules or an employee not getting their favorite desk? Tracking your desks in an Excel sheet? Use workplacify to manage your office desks and make your employees happy. A perfect alternative to Envoy, UnSpot, Flexopus or desk.ly.\n\n### Built With\n\n- [Next.js](https://nextjs.org/?ref=workplacify.com)\n- [tRPC](https://trpc.io/?ref=workplacify.com)\n- [React.js](https://reactjs.org/?ref=workplacify.com)\n- [Chakra UI](https://chakra-ui.com/?ref=workplacify.com)\n- [Prisma](https://prisma.io/?ref=workplacify.com)\n\n## Contact us\n\nMeet us on [Discord](https://discord.gg/m6EQptpj) or [schedule a meeting](https://calendar.app.google/8pcg6kcqXvuyVPyq8) with the founder.\n\n## Development\n\n### Setup\n\n1. Fork the repository: https://github.com/igeligel/workplacify/fork and clone it to your local machine:\n   ```sh\n   git clone https://github.com/\u003cyour_username\u003e/workplacify\n   ```\n1. Go to the project directory:\n   ```sh\n   cd workplacify\n   ```\n1. Install packages with npm\n   ```sh\n   npm install\n   ```\n1. Set up your `.env` file:\n   - Duplicate `.env.example` to `.env`\n   - Create a new `NEXTAUTH_SECRET`, for example via: https://bitwarden.com/password-generator/\n   - Generate the `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` via https://console.cloud.google.com/apis/credentials\n   - If you want to use Microsoft as a login method, generate the `MICROSOFT_ENTRA_CLIENT_ID`, `MICROSOFT_ENTRA_CLIENT_SECRET`, and `MICROSOFT_ENTRA_TENANT_ID` via https://portal.azure.com/\n   - Generate the `CLOUDINARY_API_SECRET`, `CLOUDINARY_API_KEY`, and `CLOUDINARY_NAME` via https://cloudinary.com/console\n1. Setup Node If your Node version does not meet the project's requirements as instructed by the docs, \"[nvm](https://github.com/nvm-sh/nvm)\" (Node Version Manager) allows using Node at the version required by the project. You can also use [nvm-windows](https://github.com/coreybutler/nvm-windows). We are currently using Node.js 20.\n1. Start the database \u0026 development server:\n   ```sh\n   npm run db-up\n   npm run dx\n   ```\n1. Once starting you also should see an example organization id which you can join which has some static data already.\n\n## Deployment\n\nDeployment is done via [render.com](https://render.com). You can deploy your own instance by clicking the button below:\n\n[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy)\n\n## Contributing\n\nWe are still working on our contributing guide but feel free to open a PR or issue if you see something or want to request a feature.\n\n\u003c!-- ### Hacktoberfest\n\nWe will be active maintainers during the [Hacktoberfest](https://hacktoberfest.com/). In 2024 we will focus on this. --\u003e\n\n## Integrations\n\nWe are having some integrations of which some are necessary to run the application.\n\n### Google OAuth\n\nWe use Google as the main auth provider. You can create your own OAuth credentials via https://console.cloud.google.com/apis/credentials. These credential can be then added to the `.env` file.\n\n### Microsoft Entra OAuth\n\nYou can use Microsoft Entra as an auth provider.\n\nYou can create all the necessary credentials via the [Azure Portal](https://portal.azure.com). Check for `Microsoft Entra ID` in the search bar and select it.\n\n![Entra id search in the Azure Portal](./docs/entra-id-search.png)\n\nOn the next page, select \"Add\" and then \"App Registrations\" and then fill out the details. In the \"Supported account types\" section, choose:\n\n- Accounts in this organizational directory only (Standardverzeichnis only - Single tenant) or\n- Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)\n\nFor the \"Redirect URI (optional)\", select \"Web\" and enter the following URL: `https://127.0.0.1:3000/api/auth/callback/microsoft-entra-id`. Or when you self-host: `https://your-domain.com/api/auth/callback/microsoft-entra-id`. The path is the important part here: `/api/auth/callback/microsoft-entra-id`.\n\nOnce created you need to find certain values and add them to the `.env` file:\n\n| Environment Variable            | Microsoft Entra ID lookup                                                                                                                   |\n| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| `MICROSOFT_ENTRA_CLIENT_ID`     | `Application (client) ID`                                                                                                                   |\n| `MICROSOFT_ENTRA_CLIENT_SECRET` | Under `Client credentials`, you will see `0 certificate, 1 secret` or similar. If not click on it and get a client secret.                  |\n| `MICROSOFT_ENTRA_ISSUER`        | This is an URL that includes your `Directory (tenant) ID`. Its the format `https://login.microsoftonline.com/{Directory (tenant) ID}/wsfed` |\n\n### Cloudinary\n\nWe are using cloudinary to save images of the floor. We currently do not have other providers to save the image, but we might work on this in the future. You can create your own Cloudinary credentials via https://cloudinary.com/console. These credential can be then added to the `.env` file.\n\n### Discord (for notifications)\n\nDiscord is fully optional but we use it to notify the team around issues, or events that are happening on the platform, to interact with new users for example. You can create your own Discord bot via https://discord.com/developers/applications. These credential can be then added to the `.env` file.\n\n## License\n\nThe code is licensed under the [MIT License](./LICENSE) mostly. Some parts are currently licensed under different licenses because they are commercial projects:\n\n- Chakra Starter: [PolyForm Strict License 1.0.0](./src/chakra-starter/LICENSE.MD)\n\n## Acknowledgements\n\nNone so far!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figeligel%2Fworkplacify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figeligel%2Fworkplacify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figeligel%2Fworkplacify/lists"}