Code Monkey home page Code Monkey logo

slackpoint's Introduction

This is an image DOI

License: MIT Github 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!

SlackPoint.mp4

Built with

Flask
Python
PostgreSQL

How the Hell 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
  • Ask for help

lets 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. 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.

6. 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. Same sh*t this section is doing.

Project documentation

The docs folder incorporates all necessary documents and documentation in our project.

Tools used

Code formatter: black and flake8

Tech stack: Flask, PostgreSQL

πŸ“– Getting started:

Run Locally

Create a virtual environment:

  python3.x -m venv test_env

Activate the virtual environment: Linux/MacOS:

  source test_env/bin/activate

Windows:

  ./test_env/Scripts/activate

Clone the project

  git clone https://github.com/nehakale8/slackpoint.git

Go to the project directory

  cd Slackpoint

Install dependencies

  pip install -r requirements.txt

Log on to api.slack.com and create your own slack bot.

On ngrok shell run 'ngrok http 5000' to get the public IP address in your local machine.

Add all the /commands in the bot configuration and paste the url from ngrok shell to requesting url section in the bot configuration.

Finally, change the URL in interactivity and shortcuts, URL: /slack/interactive-endpoint.

Start the server

  flask run
 - Site will be hosted at:
   `http://127.0.0.1:5000/` 

Before creating the database,

(1) Create a database in PgAdmin with any name convention.

(2) Change the local path of PostgreSQL in .env file (DATABASE_URL= 'postgresql://postgres:(password)@localhost/(database name from PgAdmin')

(3) Provide the Slack sigining secret and Slack bot token from the bot you created.

To create tables in the database,

First run the command 'flask shell'
Next command to create the database - 'db.create_all()'

Project Dependencies

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

Future of this project

  • Assign users to tasks while creating each task
  • Add a command to reassign users
  • Add a command to edit an existing task
  • Progress of a task is currently binary. It can be improved to allow a percentage progress improvement
  • Deploy the service on the cloud
  • Improve code coverage
  • UI/UX: Improve leaderboard command response to show gifs/graphs to further make the leaderboard more attractive and gamify it

Developed by RoachPack

Heyy! 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! πŸ˜‰

Why RoachPack?

Good question! We are international students, visiting the United States for the first time. We all live near the Centinnial campus of NC State University. Our eyes ready to take in the grandeur and technological advancements of the United States, we were rather welcomed by a group of Anthropods which we all are afraid of. Yup, you guessed it right. Cockroaches! To overcome this fear and to take on challenges, we have named our group RoachPack! πŸ’ͺ

Chat Channel

Meet our team

  • @MithilDani A studious nearsighted bespectacled charming individual who is an expert at building Django applications, designing optimal solutions and has an extensive work experience of 2 years in the IT industry.
  • @NehaKale A hardworking bespectacled Machine Learning expert who has multiple AI and ML projects and research paper contributions. She is an expert at providing out-of-the-box solutions and always has an unique perspective. She also provides our group with the much needed diversity πŸ˜…
  • @RishikeshYelne An old, very old, almost ancient bespectacled individual (so many bespectacled members πŸ€“) with a work experience of 5 years in the IT industry. He is proficient and well-versed with the .NET Framework, which he claims to be highly relevant and at par with the newer technologies. Let's just respect his ancient age and agree with him for now. -laughs in Python-
  • @VanshMehta A self-proclaimed charming good-looking handsome individual who is a Java enthusiast. A constant source of good jokes and efficient code, he has charmed his way into our group, just like Shah Rukh Khan does it in Bollywood movies.
  • @RitwikVaidya A no-nonsense serious and dedicated prankster / comedian of the group, with an unique knack at solving programming questions and a strong supporter of C++ programming language.

Reach out to us!

For any doubts or queries, reach out to our Developer Team @ [email protected]

slackpoint's People

Contributors

nehakale8 avatar mithildani avatar ritwik4690 avatar vanshmehta-7 avatar rishikesh-yelne avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.