The cloud for physical experimentation.
WD CloudLab is a polished hackathon prototype marketplace for monetizing unused laboratory capacity. Customers can discover services and submit experiments; employees can operate the lab and publish new services; administrators can inspect and export the complete prototype state.
The application uses Next.js App Router, TypeScript, Tailwind CSS, Recharts, Lucide icons, and a typed browser localStorage layer. It has no backend, secrets, database, or required environment variables.
| Role | Name | Password | |
|---|---|---|---|
| Customer | Mainak Mondal | customer@cloudlab.demo |
demo123 |
| Employee | Jacob Konnick | employee@cloudlab.demo |
demo123 |
| Administrator | Kelly Xiao | admin@cloudlab.demo |
demo123 |
The sign-in screen also provides one-click access for every role.
This project is intended to be installed, tested, and deployed in an isolated online environment. The end user does not need Node.js, Git, Docker, VS Code, or any other local software.
- Push or import this repository into GitHub.
- On the repository page, choose Code → Codespaces → Create codespace on main.
- In the Codespaces terminal, run
npm installandnpm run dev. - Open the forwarded port shown by Codespaces to test the app in the browser.
- Before committing, run
npm run typecheck,npm run lint, andnpm run buildinside Codespaces. - Commit and push from the Codespaces Source Control panel or terminal.
- In Vercel, import the GitHub repository. Keep the detected Next.js settings and leave environment variables empty.
- Deploy, open the production URL, and test each demo role.
StackBlitz, CodeSandbox, Replit, or another cloud container can be used instead of Codespaces.
- Sign in as the customer and browse AFM or XRR services.
- Inspect week/month equipment availability.
- Submit the eight-step request wizard.
- Open a second tab, sign in as an employee, claim the incoming request, and add a note.
- Return to the customer tab and watch the one-minute timeline unlock a technique-specific result.
- Download CSV/JSON or print the report.
- Open the administrator dashboard to show revenue, utilization, export, and reset controls.
- As the employee, publish a new service and see it appear immediately in the customer catalog.
- All persisted keys begin with
wd-cloudlab-. - State is seeded on first load and validated with a schema version.
- Corrupted or incompatible data is safely replaced with seed data.
- The browser
storageevent synchronizes separate tabs on the same browser profile. - Uploaded file contents are never stored—only name, MIME type, size, and simulated status.
- Submitted requests generate and store results immediately, but results remain hidden until the timestamp-derived 60-second workflow completes.
- Data does not synchronize across devices or browsers.
The build is static-client friendly and needs no API routes. Browser-generated downloads and localStorage are accessed only in client components, preventing server-side storage access and hydration mismatches.