Giter Site home page Giter Site logo

node-tasks-app's Introduction

Tasks App

๐Ÿšจ This app is under active development. ๐Ÿšจ

Tasks App is a sample Task Management app built on the Slack Platform. To learn more about it, check out this blog post or watch this ongoing series of videos on YouTube.

As Tasks App is a tool designed to teach you about the Slack Platform, we don't currently offer a hosted version. If you're looking for a project management tool for your organisation, check out the many options available on our App Directory.

If you want to see the app in action, there's some screenshots below, or you can clone the repo and run it locally.

App code

Screenshots

Tasks list on App Home

Tasks list on App Home

Creating tasks with a Global Shortcut

Creating tasks with a global shortcut

Creating tasks from a message with a Message Shortcut

Creating tasks from a message with a Message Shortcut

node-tasks-app's People

Contributors

colmdoyle avatar dependabot[bot] avatar filmaj avatar illisan avatar jimray avatar seratch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

node-tasks-app's Issues

[FEATURE] Manifest config

Description

As a
Developer

I want to
Configure my sandbox environment

So that I can
Develop locally

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] GitHub issues integration

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a GitHub user, I want to view my assigned github issues inside the tasks app, so that I can centralize issues from multiple systems

[FEATURE] Ability to add tasks

Description

As a
User
I want to
Add tasks
So that I can
Track my work

Languages

This feature is now implemented in:

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Database migration testing

There was a bug introduced when running database migrations that would cause MySQL schemes changes to fail. We fixed it in #69, but to avoid it in the future we should figure out a way to automatically test DB migrations against a variety of DB types along the usual battery of unit tests.

I'm thinking we target

  • MySQL
  • Postgres
  • SQLite

Maximum task title length

When we render open tasks, we do so with a checkbox which is a type of option. Per the documentation, an option has a maximum text length of 75 characters, so we need to handle that somehow.

[FEATURE] Today view

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a user, I want to view all my tasks due today, so I can prioritise my day

[FEATURE] Org-aware app

Description

As a
Developer

I want to
Make my app aware of Slack Enterprise Grid

So that I can
Deploy it across my whole organisation

Languages

This feature is now implemented in:

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[BUG] Migrations not executing correctly

Is there an existing issue for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Current Behavior

Getting an error trying to setup the tasks app.

Created a MySQL database called "vztaskmaster" from MySQL
Attempted to run the database migration step according to the setup instructions...
Got an error that needed to install mysql2, so then ran the command "npm install mysql2"
Attempted the database migration command again, got the following error:

PS C:\Users\removed\Downloads\Slack Workflows\Applications\VZ Taskmaster> npx sequelize-cli db:migrate --url 'mysql://root:removed@localhost:3306/vztaskmaster'

Sequelize CLI [Node: 16.4.1, CLI: 6.2.0, ORM: 6.6.2]

Parsed url mysql://root:*****@localhost:3306/vztaskmaster
== 20210614114545-create-task: migrating =======
== 20210614114545-create-task: migrated (0.070s)

== 20210614115427-create-user: migrating =======
== 20210614115427-create-user: migrated (0.070s)

== 20210614140421-user-to-task-key: migrating =======

ERROR: Referencing column 'UserId' and referenced column 'id' in foreign key constraint 'Tasks_UserId_foreign_idx' are incompatible.

Expected Behavior

I was hoping that the app would start and run.

Steps To Reproduce

Just running through the setup.md documentation...

Environment

- OS: Win 10
- Language version: Node v16.4.1

Anything else?

Environment file:

SLACK_BOT_TOKEN=xoxb-removed
SLACK_APP_TOKEN=xapp-removed
DB_URI=mysql:root:removed@localhost:3306/vztaskmaster
SAMPLE_DB_URI=sqlite:./database.sqlite3

[FEATURE] Add tasks from my task list

Description

As a
User

I want to
create tasks from the same interface as my list of tasks

So that I can
Add tasks that are missing when I review my list

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Create task from existing message

Description

As a
Task creator

I want to
Create a task from a message

So that I can
Use the content of the message as a starting point for a task

Languages

This feature is now implemented in:

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Task reminders

Description

As a
Task owner

I want to
Be reminded when a task is due

So that I can
Complete it on time

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Recurring tasks

Description

As a
User
I want to
Schedule recurring tasks
So that I can
Be reminded of things I frequently do

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Mark all as complete button

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a user, I want to click a button marking all my tasks as complete, so I can complete tasks without clicking them individually

Documentation clarification - app level token

Is there an existing issue for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Current Behavior

Setting this up for the first time.

In the node.js documention (setup.md), Step#2>

Click Socket Mode from the left hand menu, toggle the Enable Socket Mode option, and follow the steps to create an app-level token. Copy that token into your .env as SLACK_APP_TOKEN.

Socket Mode is already on (from the app manifest), so no need to toggle it. When I attempt to create the app token, you don't specify the scopes to add.

Expected Behavior

Would like to know which tokens to enable

Steps To Reproduce

  1. Following the guide for setup for Node.JS
  2. Import app from manifest.yml per the setup doc
  3. Step 2 from the setup - socket mode is already enabled in the app.

Environment

Win10
Node 16.4.1

Anything else?

Thanks for developing a great app! Looking forward to using it in the future!

[FEATURE] Ability to edit task after it's been created

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a user I want the ability to edit a task's information (due date, title, description, etc.) after it's been created by me or assigned to me.

[FEATURE] Task deadline

Description

As a
Task creator
I want to
Set a due date for a task
So that I can
Know when it needs to be completed

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Assigning Tasks

Description

As a
User
I want to
Assign tasks to other people on my team
So that I can
Let them know when to do something

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Snooze tasks

Description

As a
Task owner

I want to
Snooze my tasks

So that I can
Reschedule them easier

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Multiple workspace support

Description

As a
Workspace Admin

I want to
Install the app on many workspaces

So that I can
Use it wherever I work

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Add support for codespaces

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a developer, I want to launch tasks app from a [Codespace](https://docs.github.com/en/codespaces/customizing-your-codespace/configuring-codespaces-for-your-project) so that I don't have to create my own developer environment

[FEATURE] Re-schedule / Snooze task deadlines

Description

As a
Task Owner

I want to
Reschedule my tasks

So that I can
Reprioritize my day

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Add tags to task

Description

As a
Task creator

I want to
tag my tasks with various tags

So that I can
Filter / search / organise my tasks based on those tags

Languages

This feature is now implemented in:

  • Node
  • Python
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Listener testing

We need to design a test for the listener pattern that's implemented before we write so much code it's unwieldy.

Tasks

  • Write a jest test example for the listener on the nodejs app (outlined here)

[FEATURE] Simplify the way to manage / enable listeners

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

I have a suggestion on the way to manage listener functions in the Node.js app. 

I see the benefit to have the stateless functions to enable listener functions to `App` instance. Thanks to that, all the listener functions are easily testable. That's really nice!

One slight concern I have on the current approach is that developers need to create/edit at least three files just for adding a new listener function. Specifically,

* To add a new action listener, you will create a new source file under `listeners/actions` and its corresponding test file
* You will add a new wrapper function in `listeners/actions/index.js`
* You will call the newly added wrapper function `app.js`

If a developer forgets to do any of the three, the listener do not work. Also, the necessity to have changes in a few files can make code reviews a bit harder.

To eliminate the pain point, I would suggest simplify the parts like this:

* https://github.com/seratch/tasks-app/blob/simplified-listener-management/nodejs/app.js#L36
* https://github.com/seratch/tasks-app/blob/simplified-listener-management/nodejs/listeners/index.js
* https://github.com/seratch/tasks-app/commit/8729026ba2b085ba4a2e2c0aab7bcfa1736a61e9

With this way, the only files you need to touch would be the newly added listener itself + its test and `listeners/actions/index.js`. All of these are the essential changes for listener addition. 

If a developer needs more granular registration methods, they can do so. But I think the show-case app can come up with as a simple approach as possible.

[FEATURE] Gracefully handle 429 errors

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a developer, my app should handle rate limits gracefully, so my end users won't be affected

[FEATURE] Develop behind a firewall

Description

As a
Developer

I want to
Serve my app from behind a firewall

So that I can
Keep my app server more secure

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Place to view open tasks

Description

As a
Task owner

I want to
View all my open tasks

So that I can
Complete my work

Languages

This feature is now implemented in:

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Prioritize/Reorder tasks on task list

Description

As a
User

I want to
Be able to reorder my tasks on my task list.

So that I can
Prioritize tasks that are due on the same day.

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Design a logo

We need some artwork for the tasks app a logo which should be square

[BUG] Tasks assigned by others not populating correctly.

Is there an existing issue for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Current Behavior

Creating a task and assigning it to another user will not upload the task to the user's App Home right away. New assigned tasks will only appear after a current open task is marked as complete.

Expected Behavior

Once a user creates a task and assigns it to another user. The assigned user should receive a DM (this currently works) and the new task should appear under Open tasks on their App Home.

Steps To Reproduce

  1. On task-assign-user branch run app
  2. Open modal to create new task
  3. Fill out all input fields and assign task to another user
  4. As the assigned user, open your App Home
  5. There will be no new task but you would've received a DM notifying you about new task
  6. As assigned user, check off a task from your Open tasks view, you should see the new task populate
  7. If you have no tasks to check off there is no apparent way to retrieve the newly assigned task.

Environment

- OS: 
- Language version:

Anything else?

No response

[DOCS] Add screenshots and/or a gif of the tasks app in use to the README

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

As a developer, I want to view imagery of the tasks app so I understand the value of the app.

[FEATURE] Container Support

Description

As a
Developer

I want to
Deploy this app in a container

So that I can
Use my preferred hosting

Languages

This feature is now implemented in:

  • Python
  • Node.js
  • Java

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

[FEATURE] Add optional Comments/Description input field in modal

Is there an existing request for this?

  • I have searched for any related issues and avoided creating a duplicate issue.

Have you read our code of conduct?

  • I have read and agree to the code of conduct

Feature as a user story

Add a long answer input field for either a Description or Comment option when creating a task. Helpful for tasks that require context and/or assigned tasks.

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.