Build an app for Screens, Envoy's upcoming digital signage platform.
- Make sure you have a GitHub account (https://github.com/signup)
- Fork this repository (https://github.com/envoy/hack-night-2025/fork)
- Fill in the team/app form below
- Start hacking!
- You have only 2 hours to build the entire app
- You can use any technology, frameworks, etc. you're comfortable with
- You may use AI to assist you, but remember you'll be graded on quality
- Bonus points for leveraging a hardware API (camera, flashlight, etc.)
- _
- _
- _
A real-time monitoring dashboard built for Envoy Screens, displaying GitHub commits, Slack shoutouts, and weather forecasts.
- Node.js (v18 or higher)
- npm or pnpm
- GitHub account (for OAuth)
- Slack workspace access (optional)
- Convex account
- Clone the repository
git clone <your-repo-url>
cd envoy-screens-dashboard- Install dependencies
npm install- Set up Convex
npx convex dev- Follow the prompts to create a new Convex project
- This will create a
.env.localfile withVITE_CONVEX_URL
- Configure Google OAuth
- Go to Google Cloud Console
- Create OAuth credentials
- Add authorized redirect URIs:
http://localhost:5173/api/auth/callback/googlehttps://your-deployment.convex.site/api/auth/callback/google
- Add environment variables in Convex Dashboard:
AUTH_GOOGLE_ID=your-google-client-id
AUTH_GOOGLE_SECRET=your-google-client-secret
SITE_URL=http://localhost:5173
- Configure GitHub API (in Convex Dashboard)
GITHUB_ACCESS_TOKEN=your-github-token
- Configure Slack API (in Convex Dashboard)
SLACK_BOT_TOKEN=xoxb-your-token
SLACK_CHANNEL_ID=C1234567890
- Start Convex backend
npm run dev:backend- Start frontend (in another terminal)
npm run dev:frontend- Or run both together
npm run dev- Open your browser
http://localhost:5173
npm run build- Frontend: React, TypeScript, Vite, Tailwind CSS
- Backend: Convex (database, auth, serverless functions, cron jobs)
- APIs: GitHub API, Slack API, Open-Meteo Weather API
- Auth: Convex Auth with Google OAuth
- ✅ Real-time GitHub commit monitoring
- ✅ Slack shoutouts from team channels
- ✅ Weather forecasts with 3-day outlook
- ✅ User authentication with Google
- ✅ Customizable settings per user
- ✅ Automatic data syncing via cron jobs
Create these in the Convex Dashboard (Settings → Environment Variables):
| Variable | Description |
|---|---|
AUTH_GOOGLE_ID |
Google OAuth Client ID |
AUTH_GOOGLE_SECRET |
Google OAuth Client Secret |
SITE_URL |
Your site URL (http://localhost:5173 for dev) |
GITHUB_ACCESS_TOKEN |
GitHub Personal Access Token |
SLACK_BOT_TOKEN |
Slack Bot User OAuth Token |
SLACK_CHANNEL_ID |
Slack Channel ID to monitor |
