A modern team management application designed for daily standup meetings and team coordination. This project helps teams manage their daily routines with random member selection and time tracking capabilities.
This application is specifically created for team basic daily setup where you can:
- Manage team members with presence tracking
- Randomly select team members to give updates during standups
- Track time with built-in timer functionality
- Organize daily meetings efficiently
- Add/remove team members with custom avatars
- Track daily presence (present/absent)
- Visual indicators for team member status
- Persistent team data storage
- Matrix-style winner selection with animated interface
- Fair selection ensuring each member can only be selected once
- Only present team members are eligible for selection
- Manual selection/unselection capabilities
- Customizable countdown timer (minutes/seconds)
- Start, pause, and stop controls
- Timer state management with Pinia store
- Integration with selection system (clear only when timer stopped)
- Clean, responsive design
- Matrix-themed selection interface
- Smooth animations and transitions
- Mobile-friendly layout
- Node.js (v16 or higher)
- npm or yarn
npm installnpm run devnpm run buildsrc/
โโโ components/ # Reusable UI components
โ โโโ MatrixWinner/ # Random selection component
โ โโโ Spinner/ # Animated spinner component
โ โโโ common/ # Common components (navigation)
โโโ features/ # Feature-specific components
โ โโโ TeamSettings/ # Team management sidebar
โ โโโ TimerSettings/ # Timer controls
โโโ pages/ # Page components
โ โโโ dashboard/ # Main dashboard view
โโโ stores/ # Pinia state management
โ โโโ teamStore.ts # Team member data
โ โโโ timerStore.ts # Timer state
โโโ composables/ # Reusable composition functions
โโโ configuration/ # App configuration
- Navigate to the Dashboard
- Use the left sidebar to add team members
- Mark members as present/absent for the day
- Customize avatars and roles
- Click "SELECT" to randomly choose a team member
- Watch the Matrix-style animation reveal the winner
- Selected members are excluded from future selections
- Use "CLEAR" to reset selections (only when timer is stopped)
- Set custom time limits for meetings
- Use start/pause/stop controls
- Timer state affects selection clearing capabilities
- Vue 3 - Progressive JavaScript framework
- TypeScript - Type-safe development
- Pinia - State management
- Vite - Build tool and dev server
- CSS3 - Modern styling with animations
- Vue Router - Client-side routing
npm run test:unit# Install browsers for the first run
npx playwright install
# Run E2E tests
npm run test:e2enpm run lintThe application is fully responsive and works seamlessly across:
- Desktop computers
- Tablets
- Mobile devices
- VSCode + Volar extension recommended
- Disable Vetur extension for Vue 3 support
- Full TypeScript support for
.vuefiles - Type checking with
vue-tsc - Editor integration with Volar
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For support or questions, please open an issue in the GitHub repository.