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

SiddhiKhairee/slackpoint-v4

 
 

Repository files navigation

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
  • Create a player character
  • Allocate task points to strengthen your character

With the addition of v4, Slackpoint can:

  • Adopt a fun pet raising system to gamify all the tasks
  • Implement pomodoro timer
  • Allows assigning of tasks while creating a new task
  • Allows reassigning of tasks while editing a task

Let's go over some of these

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

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

9. Help:

Newbie at using SlackPoint? You could use some help... This will provide you will all the available commands and how to use them.

Command: /help [no parameters]

Help GIF

10. Pomodoro timer:

Create a Pomodoro timer to help you concentrate on the task!

Command: /pomodoro-timer Pomodoro timer PIC

11. Create Pet:

Create a new pet for yourself!

Command: /create-pet Create Pet PIC

12. Show Store and Buy product:

Show the product store and you can buy product used the point you got from finishing the task to feed your pet.

Command: /show-store show store  PIC

13. Show inventory:

Show the products you have already bought.

Command: /show-inventory show inventory PIC

14. Create Pet Status :

Check on your pet's HP and other information!

Command: /pet-status Check Pet Status PIC

15. Assign task to teammate :

Right now when you create the task you can assign the task to the specific teammate!

Assign task PIC

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.
  • Deeper Gamification:

    • Integrate deeper game mechanics into the system to provide more incentive to pursue Task Points.
    • Battle Systems: Encourage user interaction through text-based battles, building stats through experience from completing tasks and a predetermined character growth system. *Pet System: add more interaction with your pet add the actual picture of your pet your pet can join the battle system one user can have more than one pe
  • 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.

Chat Channel

Our team


Min-Ting Tu


Sidharth Shambu


Siddhi Khairee

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

Languages

  • Python 99.8%
  • Mako 0.2%