Skip to content

A Slack bot that allows for task management amongst a team. Uses points to incentivize users with regards to the task completion process. This repository is an extension of the repository for a previous semester for CSC 510 at NCSU. Below is the repository in question.

License

Notifications You must be signed in to change notification settings

brianhhuynh38/slackpoint-v3

This is an image DOI

License: MIT Github GitHub contributors

build GitHub top language GitHub last commit codecov

Gamify your slack tasks! 💻

A lot of teams use Slack to get things done. However when you have ton of things to do with no short term rewards in sight, it gets difficult to check off those tasks. That's where SlackPoint comes to the rescue! SlackPoint aims to make work more fun and get people motivated to finish their tasks by gamifying Slack!

Check out Slackpoint v1 and v2

Our friends had started on this journey of making tasks easy and fun! We're continuing their work to make sure you don't slack off 😉

  • v1: Check them out here
  • v2: Check them out here
OldVideo.mp4

Demos

Demo of Commands

Selling Point Video

Built with

Flask
Python
PostgreSQL

How do you use this?

List of miracles that SlackPoint can perform✨:

  • Create a new task
  • Mark task as done
  • View pending tasks
  • View completed tasks
  • Check the leaderboard to see who's winning!
  • Edit an existing task
  • Get a daily summary delivered to you. Or view it when you want!
  • Ask for help

With the addition of v3, SlackPoint can also:

  • Create a player character
  • Allocate task points to strengthen your character

Let's go over these one by one...

1. Create new task:

You can create a new task by simple using the /create-task command. We ask for just a few more parameters in addition to that:

Command: /create

Create Task GIF

This particular command will create a new task with the description as Hey! This is my new task having 100 points and a deadline of 15th October 2022

2. Mark task as done:

Here you can mark a task as completed. You just need to give the task ID as a parameter

Command: /task-done [task ID]

Example: /task-done 10214

Task Done GIF

This will mark the task having task ID 10214 as completed. Further, updates records to show that this task is completed by user who posted this command

3. View pending tasks:

This command will return the list of incomplete tasks. Relax! no parameters required here

Command: /viewpending [no parameters]

View pending GIF

Above command will display a list of pending tasks

4. View completed tasks:

Like the above command this will return a list of completed tasks. No parameters here as well!

Command: /viewcompleted [no parameter]

View completed GIF

Above command will display a list of completed tasks

5. Filter Tasks by Tag:

This command will allow you to get only the tasks from a certain category. Need all "Programming" tasks? Simply follow the template below:

Command: /filtertasks [tag,tag,tag,tag,tag,...]

image

6. Leaderboard:

Want to get competitive? Take a peek at the leaderboard and try to beat the winner!

Command: /leaderboard [no parameters]

Leaderboard GIF

It displays the list of the top performers on the channel along with their points.

7. Edit a task:

Made a mistake while adding a task? No problem! Edit the task with values pre-populated as you had entered before.

Command: /edit-task [task ID]

Edit GIF

This particular command will edit your existing task with the description as Hey! This is my edited task having 4 points and a deadline of 15th December 2022

8. Summary:

Got too many tasks? Can't keep track of everything? Now use the summary command to get a summarized version of all tasks and the leaderboard! What's better? You get it delivered to your message box automatically every day!

Command: /summary [no parameters]

Summary GIF

This command will display a list of pending tasks, completed tasks, and the leaderboard.

9. Help:

Newbie at using SlackPoint? You could use some help...

Command: /help [no parameters]

Help GIF

This will provide you will all the available commands and how to use them.

Gamification Features

Looking to have some fun with your tasks? Need to take a break? Feel free to have some fun with the gamified features added into SlackPoint as of v.3! Use your Task Points towards improving your player character and watch as you slowly get stronger from completing work tasks.

10. Character Creation:

Create your starting character class with any stats that you may want. This is fully customizable to give the players as much freedom as they can have in creating their character and getting stronger. They can also choose their moveset through the character class that they choose, each class having its own style of attack.

Command: /create-character

Screenshot 2024-11-01 203209

11. Allocate and Reallocate Your Points:

Want to change classes or readjust your strategy for tackling some sort of challenge? Feel free to reallocate your stats at any point! You can even get extra points to allocate if you complete more tasks!

Command: /allocate-points

Screenshot 2024-11-01 224827

Project documentation

The docs folder incorporates all necessary documents and documentation in our project regarding its overall design. The sphinx documentation can be built by referencing our directions on the GitHub wiki regarding the compilation of the documentation: Documentation Compilation Guide

We have also defined much of our theoretical game design and database models in our GitHub Wiki pages as well under the Game Design section.

Project Dependencies

  • flask
  • slackclient
  • python-dotenv
  • slackeventsapi
  • flask-sqlalchemy
  • psycopg2
  • pytest
  • pytest-mock
  • black
  • pylint
  • coverage
  • pytest-cov

Future of this project

  • Progress of a task is currently binary. It can be improved to allow a percentage progress improvement
  • Improve code coverage
  • UI/UX: Improve leaderboard command response to show gifs/graphs to further make the leaderboard more attractive and gamify it
  • In-Depth Battle System: Currently, there is only a foundation for the battle system ready. This is free to be changed as per the wishes of any developer due to the implementation’s simplicity, in terms of game mechanics.
    • Delay-Based: Attacks use a delay-based battle system in which the type of attack determines how long it takes to take another action.
    • Type-Weakness + Dynamic Turn-Based Systems: Each player is able to take multiple turns and is able to expend turns to change their class. Turn count can be manipulated by exploiting weaknesses and resistances.
  • Task Delegation and Assignment:
    • While the task-tracking system is useful, introducing the ability to delegate them to specific people or teams would be very useful for team leaders to designate and organize tasks.
    • Introduce permissions that only allow some people to have the power to resolve tasks for other people to distribute points, allowing for more order within the chat group.
  • Team Formations and Tasks: The introduction of teams would be greatly beneficial as most software development operates in teams.
    • Assign tasks to a group of people and be able to distribute points across them all to make task delegation more accurate
    • Teams can also be added to battle formations within the game design aspect to introduce more advanced gameplay mechanics and features, increasing activity between teammates.

Developed by NC State students

Hey! We are a group of Graduate students at NC State University, or to be more specific, we are dreamers who want to be pioneers of the Computer Science world. Consider this homework to be one of our many steps at achieving our dreams! 😉

Chat Channel

Our team

  • Brian Huynh, Manav Kamdar, Shanmukh Chatadi

Reach out to us!

About

A Slack bot that allows for task management amongst a team. Uses points to incentivize users with regards to the task completion process. This repository is an extension of the repository for a previous semester for CSC 510 at NCSU. Below is the repository in question.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •