-
Notifications
You must be signed in to change notification settings - Fork 54
Open
Labels
P0Highest Priority ProjectHighest Priority Project
Description
Slack Bot MVP Development
Project Overview
Develop a Slack bot that facilitates feedback, recognition, and tracking of team performance using commands, buttons, and reactions. The MVP will include features for sending and receiving praise, viewing history and stats, and displaying a public wall of praise.
-
We already have a Slackbot that you'll be adding this feature into
-
You can likely start from this Slack example and modify it to fit our needs
Core Features for MVP
- Send and Receive Praise Messages
- Customize Messages and Emojis
- View Praise History and Stats
- Public Wall of Praise
Task Distribution
-
Engineer 1:
- Set up the Slack app and bot.
- Implement the
/praisecommand and backend service. - Develop the settings interface for message customization.
-
Engineer 2:
- Create the web dashboard for viewing praise history and stats.
- Implement the public wall of praise web page.
- Integrate the backend service with the dashboard and public page.
Detailed Requirements
1. Send and Receive Praise Messages
Description: Allow users to send and receive praise messages within Slack.
- User Stories:
- As a user, I want to send a praise message to a colleague using a Slack command.
- As a user, I want to receive a praise message from a colleague.
- Acceptance Criteria:
- Users can type
/praiseto send praise. Then you select who to send praise to with a UI. - The praised user receives a notification with the praise message.
- Users can type
- Implementation Steps:
- Set up a Slack app and bot user.
- Implement a Slack command
/praise. - Create a backend service to handle praise messages and store them in a database.
2. Customize Messages and Emojis
Description: Allow users to customize praise messages and emojis.
- User Stories:
- As a user, I want to customize the message format and emojis used in praise messages.
- Acceptance Criteria:
- Users can set their preferred message format and emojis via a simple interface.
- Implementation Steps:
- Develop a settings interface for users to customize their messages and emojis.
- Store user preferences in the database.
- Apply user preferences when sending praise messages.
3. View Praise History and Stats
Description: Allow users to view the history and stats of praise messages.
- User Stories:
- As a user, I want to view my received praise messages and statistics.
- As a manager, I want to view the praise history and stats of my team.
- Acceptance Criteria:
- Users can access a web dashboard to view their praise history.
- Managers can view team praise stats.
- Implementation Steps:
- Develop a web dashboard to display praise history and stats.
- Integrate the dashboard with the backend to fetch data.
- Implement role-based access control for managers.
4. Public Wall of Praise
Description: Display a public wall of praise on a web page.
- User Stories:
- As a user, I want to see a public wall of praise showcasing all praise messages.
- Acceptance Criteria:
- A web page displays a real-time feed of praise messages.
- Implementation Steps:
- Create a public web page.
- Integrate the page with the backend to fetch and display praise messages in real-time.
Additional Guidelines
- Security & Privacy:
- Ensure compliance with Slack's security and data protection standards.
- Implement user authentication and authorization.
- Performance & Scalability:
- Use a scalable database to store messages and user data.
- Optimize the backend for performance to handle multiple requests simultaneously.
- User Experience:
- Design a simple and intuitive user interface.
- Ensure the bot works seamlessly with Slack's native features and commands.
Tools and Technologies
- Backend: TypeScript is what the Slack uses - you'll be doing something very similar to this example
- Database: Instead of storing something directly from this service into a database, call our Python backend that uses Firestore. This is how we did it with the news-gen bot.
- Frontend: React for the web dashboard, see this frontend repo
- Deployment: We just use
slack deployto update our bot
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
P0Highest Priority ProjectHighest Priority Project