A comprehensive conference room utilization and analytics platform built for Dewey, Cheatham & Howe Law Firm. This Next.js application demonstrates enterprise-grade IoT sensor data processing, real-time monitoring, and advanced analytics capabilities using Supabase as the backend.
For more information, please refer to the FEATURES.md file.
- Node.js 18+
- npm/yarn/pnpm
- Supabase account with project setup
- Environment variables (see configuration below)
-
Clone and Install
git clone [email protected]:supabase/smart-office-demo.git cd smart-office-dashboard npm install
-
Environment Configuration
# Configure your Supabase project specific variables cp .env.example .env.local # add a functions .env.local file, add an OPENAI_API_KEY to it cp supabase/functions/.env.example supabase/functions/.env
-
Start a local Supabase dev environment
npx supabase start
-
Start the Next.js dev server
npm run dev
-
Access Application Open http://localhost:3000
-
Run the following command to generate rooms, users, tickets and associated images
npm run generate:all
-
Serve all the functions:
npm run functions:serve-all
-
Load some initial sensor data simulator:
npm run simulate:sensors # Run it every time you want to simulate new sensor data for the real-time floorplan viewer -
Load some initial booking data simulator:
npm run simulate:bookings
This project includes pgflow, a workflow engine for Supabase that helps with background jobs and queue processing. See PGFLOW.md for local development setup and examples.
- Fork this repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/smart-office-demo.git cd smart-office-demo
- Go to vercel.com and sign up/login
- Click "New Project"
- Import your GitHub repository
- Vercel will auto-detect Next.js - click "Deploy"
- In your Vercel project dashboard, go to Settings → Environment Variables
- Add these variables:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_service_role_key OPENAI_API_KEY=your_openai_api_key NEXT_PUBLIC_UNSPLASH_ACCESS_KEY=your_unsplash_access_key - Click "Redeploy" to apply the new variables
npm run functions:deploy-all- Go to supabase.com and sign up/login
- Click "New Project"
- Choose your organization and enter project details
- Wait for the project to be created (takes a few minutes)
- In your terminal, run:
(Find your project ref in the Supabase dashboard URL)
npx supabase link --project-ref YOUR_PROJECT_REF
- Push migrations and seed data:
npx supabase db push
In the SQL Editor of your project, run:
-- pg_net environment secrets
select vault.create_secret('https://[PROJECT-REF].supabase.co', 'supabase_url');
select vault.create_secret('[PROJECT-ANON-KEY]', 'supabase_anon_key');Deploy the secrets in your .env file
npx supabase secrets set --env-file .env- Copy your new Supabase credentials from the project dashboard
- Update your Vercel environment variables with the new hosted URLs and keys
- Redeploy your Vercel project
That's it! Your Smart Office Dashboard is now live on Vercel with a hosted Supabase backend.
For pgflow workflows in production, see Deploy to Supabase.com.
Ensure all environment variables are configured in your deployment platform with production Supabase credentials.
- Fork the repository
- Create feature branches (
feature/analytics-enhancement) - Follow TypeScript best practices
- Add tests for new features
- Submit pull request with detailed description
MIT License - see LICENSE file for details
This application is built for the fictional law firm "Dewey, Cheatham & Howe," serving as a sophisticated demonstration of modern office technology solutions. The firm's 57 conference rooms across multiple floors provide an ideal scenario for showcasing enterprise-scale IoT monitoring and analytics capabilities.
Built with ❤️ for enterprise IoT demonstrations Showcasing: Next.js 15, Supabase, Analytics Buckets, Real-time Data Processing