{"id":30202819,"url":"https://github.com/workos/se-interview-nextjs-app","last_synced_at":"2025-08-13T11:08:06.084Z","repository":{"id":303865189,"uuid":"1015644358","full_name":"workos/se-interview-nextjs-app","owner":"workos","description":"Take home challenge for SE candidates","archived":false,"fork":false,"pushed_at":"2025-07-07T23:45:19.000Z","size":347,"stargazers_count":1,"open_issues_count":3,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-08T12:01:39.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":false,"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/workos.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-07-07T20:23:11.000Z","updated_at":"2025-07-15T12:44:29.000Z","dependencies_parsed_at":"2025-07-10T05:38:42.711Z","dependency_job_id":"80c3f292-c06f-4f69-9767-3957a6f55ac4","html_url":"https://github.com/workos/se-interview-nextjs-app","commit_stats":null,"previous_names":["workos/se-interview-nextjs-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/workos/se-interview-nextjs-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workos%2Fse-interview-nextjs-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workos%2Fse-interview-nextjs-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workos%2Fse-interview-nextjs-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workos%2Fse-interview-nextjs-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workos","download_url":"https://codeload.github.com/workos/se-interview-nextjs-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workos%2Fse-interview-nextjs-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270228408,"owners_count":24548821,"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","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"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-08-13T11:08:03.495Z","updated_at":"2025-08-13T11:08:06.055Z","avatar_url":"https://github.com/workos.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Take-Home Challenge: User Management Widget Implementation\n\nThis is a Next.js application that demonstrates authentication with AuthKit and the WorkOS Node SDK. Your challenge is to implement the **User Management Widget** from WorkOS to allow users to manage team members within their organization.\n\n## Challenge Overview\n\nYou will be implementing the [WorkOS User Management Widget](https://workos.com/docs/user-management/widgets/user-management) to provide a complete user management interface. This widget allows organization admins to:\n\n- Invite new users to the organization\n- Remove users from the organization\n- Manage user roles and permissions\n- View all organization members\n\n## Prerequisites\n\nCreate a fork of this repository to use for this challenge.\n\nYou will need a [WorkOS account](https://dashboard.workos.com/signup) to complete this challenge.\n\n## Setup Instructions\n\n1. In the [WorkOS dashboard](https://dashboard.workos.com), head to the Redirects tab and create a [sign-in callback redirect](https://workos.com/docs/user-management/1-configure-your-project/configure-a-redirect-uri) for `http://localhost:3000/callback` and set the app homepage URL to `http://localhost:3000`.\n\n2. After creating the redirect URI, navigate to the API keys tab and copy the _Client ID_ and the _Secret Key_. Rename the `.env.local.example` file to `.env.local` and supply your Client ID and API key as environment variables.\n\n3. Additionally, create a cookie password as the private key used to encrypt the session cookie. Copy the output into the environment variable `WORKOS_COOKIE_PASSWORD`.\n\n   It has to be at least 32 characters long. You can use https://1password.com/password-generator/ to generate strong passwords.\n\n4. Verify your `.env.local` file has the following variables filled.\n\n   ```bash\n   WORKOS_CLIENT_ID=\u003cYOUR_CLIENT_ID\u003e\n   WORKOS_API_KEY=\u003cYOUR_API_SECRET_KEY\u003e\n   WORKOS_COOKIE_PASSWORD=\u003cYOUR_COOKIE_PASSWORD\u003e\n\n   NEXT_PUBLIC_WORKOS_REDIRECT_URI=http://localhost:3000/callback\n   ```\n\n5. Run the following command and navigate to [http://localhost:3000](http://localhost:3000).\n\n   ```bash\n   npm run dev\n   ```\n\n## Implementation\n\nUse the [WorkOS documentation](https://workos.com/docs) as a guide for completing this challenge.\n\n### Your Task\n\nImplement the User Management Widget in this application. You'll need to:\n\n1. Research and install the required dependencies for the WorkOS Widgets\n2. Create a new page or component that implements the `UsersManagement` widget\n3. Handle authentication properly - you'll need to generate a widget token on the backend\n4. Ensure the widget integrates well with the existing application\n\n### Submission\n\nDeploy the finished application using Vercel and provide:\n\n- The deployed application URL\n- Login credentials to access the app\n- Any additional setup instructions if needed\n\n## Evaluation Criteria\n\nYour implementation will be evaluated on:\n\n- **Functionality**: The widget should work correctly for inviting, removing, and managing users\n- **Integration**: Proper integration with the existing authentication flow\n- **Code Quality**: Clean, well-structured, and maintainable code\n- **User Experience**: Intuitive interface and proper error handling\n- **Documentation**: Clear comments and any additional documentation you provide\n\n## Bonus\n\n- Implement additional widgets on top of the User Management widget\n\n## Resources\n\n- [WorkOS Widgets Documentation](https://workos.com/docs/user-management/widgets/user-management)\n- [WorkOS User Management Guide](https://workos.com/docs/user-management)\n- [Next.js Documentation](https://nextjs.org/docs)\n\nGood luck with your implementation!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkos%2Fse-interview-nextjs-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkos%2Fse-interview-nextjs-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkos%2Fse-interview-nextjs-app/lists"}