Track, celebrate, and reward your team culture โ all in the browser, no backend required.
CultureHub is a zero-server team culture event tracker built with vanilla HTML, CSS, and JavaScript. Manage events, check in attendees, run a live leaderboard, and share photo galleries โ everything stored in your browser's localStorage.
- Create and manage events with title, date, type, location, and description
- Six color-coded event types: Game ๐ฎ, Social ๐ฅ, Team Building ๐ค, Holiday ๐, Charity โค๏ธ, General ๐
- Live check-in counters, attendance tracking, and photo galleries per event
- Add team members manually or bulk-import from JSON
- Supports native format and Microsoft Teams/Azure AD exports
- Automatic duplicate detection
- Tracks name, team affiliation, and email
- Tap to check in (1 point) or mark winner (3 points)
- Bulk check-in entire registered attendee lists
- Simple, transparent scoring system with no caps
- Undo functionality
- TV Mode for fullscreen lobby displays
- Animated rank rows with gold/silver/bronze highlights
- Scrolling ticker of top scores and recent events
- Event attendance progress bars
- Auto-refresh every 30 seconds
- Per-event photo management with drag-drop support
- Slideshow view
- Quick gallery grid browsing
- Search across people and events
- Fast, client-side searching
- Customize organization name
- Dark/light theme toggle (persisted)
- Backup and restore data
- Export/import functionality
-
Clone the repository:
git clone https://github.com/yourusername/culturehub.git cd culturehub -
Open in browser:
- Simply open
index.htmlin your web browser - Or use a local server:
python3 -m http.server 8000 # Visit http://localhost:8000
- Simply open
- Go to Settings to customize your organization name
- Visit Roster to add team members (manual or bulk import)
- Create your first event in Events
- Use Check-In at the event to track attendance
- View results on the Dashboard or in TV Mode
โโโ index.html # Dashboard home โ stats, leaderboard, upcoming events
โโโ events.html # Create and manage events
โโโ roster.html # Add people / bulk import
โโโ checkin.html # Day-of attendance tracking
โโโ dashboard.html # Live leaderboard with TV mode
โโโ search.html # Global search across data
โโโ gallery.html # Per-event photo management
โโโ settings.html # Configuration, backup, restore
โโโ data.js # Shared data layer (localStorage)
โโโ utils.js # Helper functions and navigation
โโโ style.css # Styling (dark/light theme support)
โโโ docs/ # Documentation
โ โโโ hashnode-post.md
โ โโโ index.html
โโโ README.md # This file
All data is stored locally in your browser's localStorage under the key culturehub_data. This means:
- โ No server required โ runs entirely client-side
- โ Offline capable โ works without internet
โ ๏ธ Per-browser storage โ data doesn't sync across devices- ๐ก Backup/restore โ use Settings to export/import JSON
{
version: 1,
people: [
{ id, name, team, email, avatar }
],
events: [
{ id, title, date, type, description, location, gallery:[], attendees:[{personId, checkedIn, points, isWinner}] }
],
settings: { orgName, theme }
}| Key | Action |
|---|---|
Alt+T or F11 |
Toggle TV Mode (Dashboard) |
Esc |
Exit TV Mode |
CultureHub includes built-in dark and light themes, toggled from Settings. Theme preference is persisted to localStorage.
| Action | Points |
|---|---|
| โ Check-in (attending) | 1 pt |
| ๐ Winner | 3 pts |
| Tiebreaker | # of events attended |
- HTML5 โ Semantic markup
- CSS3 โ Grid, flexbox, CSS variables for theming
- Vanilla JavaScript โ No frameworks or dependencies
- localStorage โ Client-side data persistence
Contributions are welcome! Please feel free to:
- ๐ Report bugs
- ๐ก Suggest features
- ๐ Improve documentation
- ๐ง Submit pull requests
This project is open source and available under the MIT License.
Have suggestions or found a bug? Please open an Issue on GitHub.
Made with โค๏ธ for building better team culture.