{"id":28461489,"url":"https://github.com/cleanlab/office-presence-dashboard","last_synced_at":"2025-08-07T23:13:34.284Z","repository":{"id":294489068,"uuid":"986776971","full_name":"cleanlab/office-presence-dashboard","owner":"cleanlab","description":"100% vibe coded 🏄‍♂️","archived":false,"fork":false,"pushed_at":"2025-05-24T16:06:00.000Z","size":798,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-07T03:41:05.934Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://office-presence.corp.cleanlab.ai","language":"TypeScript","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/cleanlab.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-20T05:39:49.000Z","updated_at":"2025-05-26T05:36:18.000Z","dependencies_parsed_at":"2025-05-20T17:39:12.699Z","dependency_job_id":"7338ff39-2e57-45b3-acf8-1740560c0061","html_url":"https://github.com/cleanlab/office-presence-dashboard","commit_stats":null,"previous_names":["cleanlab/office-presence-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cleanlab/office-presence-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleanlab%2Foffice-presence-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleanlab%2Foffice-presence-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleanlab%2Foffice-presence-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleanlab%2Foffice-presence-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cleanlab","download_url":"https://codeload.github.com/cleanlab/office-presence-dashboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cleanlab%2Foffice-presence-dashboard/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263290542,"owners_count":23443616,"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":[],"created_at":"2025-06-07T03:40:12.961Z","updated_at":"2025-07-03T08:32:14.169Z","avatar_url":"https://github.com/cleanlab.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cleanlab Office Presence Dashboard [![CI](https://github.com/cleanlab/office-presence-dashboard/actions/workflows/ci.yml/badge.svg)](https://github.com/cleanlab/office-presence-dashboard/actions/workflows/ci.yml)\n\n![App Screenshot](assets/app.png)\n\n## Development Process\n\nThe app was developed end-to-end in about three hours using [Goose](https://block.github.io/goose/).  \n\n- Initial scaffolding created with `create-next-app`.  \n- All other changes were vibe coded using Goose—from `git init` to `vercel deploy --prod`. I didn’t edit a single line of code directly, and I haven’t read most of the lines in this project.  \n- OpenAI models used: `o1`, `o3`, and `o4-mini`.  \n- Total development cost (API calls): \u003c $50. I experimented with different models; cost could be \u003c $5 if using `o4-mini` exclusively.  \n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/goose.png\" width=\"762px\" alt=\"Goose development process screenshot\" /\u003e\n\u003c/div\u003e\n\nI didn’t save all prompts used during development, but most commits represent the work done from a single prompt (with occasional follow-ups). Future commits will include prompts in the commit messages.\n\n## Overview\n\nThis Next.js app displays who plans to be in the office each day, using Google SSO (via NextAuth.js) and fetching data from the Forkable API.\n\n## Features\n\n- Google SSO restricted to a specific email domain (`cleanlab.ai`).  \n- Server- and client-side route protection.  \n- Forkable API integration with a 30-day cached session cookie.  \n- Responsive dashboard UI with modern styling.\n\n## Getting Started\n\nInstall dependencies and run the development server:\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen \u003chttp://localhost:3000\u003e in your browser.\n\n## Environment Variables\n\nCreate a `.env.local` file in the project root with the following:\n\n```bash\nGOOGLE_CLIENT_ID=...\nGOOGLE_CLIENT_SECRET=...\nNEXTAUTH_SECRET=...\nALLOWED_EMAIL_DOMAIN=cleanlab.ai\nFORKABLE_ADMIN_EMAIL=...\nFORKABLE_ADMIN_PASSWORD=...\nFORKABLE_CLUB_IDS=123,456\n```\n\n## Deployment\n\nDeploy on Vercel or any Node.js hosting platform. Ensure your environment variables are set in your deployment settings.\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE.md](LICENSE.md) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleanlab%2Foffice-presence-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcleanlab%2Foffice-presence-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleanlab%2Foffice-presence-dashboard/lists"}