All Projects → girish17 → op-mattermost

girish17 / op-mattermost

Licence: GPL-3.0 license
OpenProject and Mattermost integration

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to op-mattermost

matterpoll-emoji
[DEPRECATED] Poll server for Mattermost
Stars: ✭ 38 (+100%)
Mutual labels:  slash-commands, mattermost
zuly
🤖 | Hi, I'm zuly, a brazilian bot! Focused on animes!
Stars: ✭ 45 (+136.84%)
Mutual labels:  slash-commands, node-js
dhan-gaadi
A complete online bus reservation system (Node, React, Mongo, NextJS, ReactNative)
Stars: ✭ 207 (+989.47%)
Mutual labels:  node-js
boilerplate
Boilerplate for @prisma-cms
Stars: ✭ 22 (+15.79%)
Mutual labels:  node-js
E-Voting-App
A simple E-voting Decentralised App using the Ethereum Blockchain, Solidity and the MERN(MongoDB, Express.js, ReactJS, Node.js) stack
Stars: ✭ 84 (+342.11%)
Mutual labels:  node-js
keywordsextract
keywords-extract - Command line tool extract keywords from any web page.
Stars: ✭ 50 (+163.16%)
Mutual labels:  node-js
nodejs-dev-vm
DEPRECATED Simple Node.js Development VM using Vagrant + VirtualBox + Ansible
Stars: ✭ 25 (+31.58%)
Mutual labels:  node-js
incubator-flagon-useralejs
Apache Flagon UserALE.js is a comprehensive, thin-client behavioral logging tool
Stars: ✭ 21 (+10.53%)
Mutual labels:  node-js
backend-server
📠 The backend of the Fairfield Programming Association website.
Stars: ✭ 26 (+36.84%)
Mutual labels:  node-js
final-pm
Finally a good node.js process manager.
Stars: ✭ 21 (+10.53%)
Mutual labels:  node-js
discord-ext-slash
Support slash commands with an extension to Rapptz/discord.py
Stars: ✭ 18 (-5.26%)
Mutual labels:  slash-commands
mattermost-plugin-apps
Powers the Mattermost App Framework
Stars: ✭ 29 (+52.63%)
Mutual labels:  mattermost
airports-db
Public airports database API service based on GitHub
Stars: ✭ 17 (-10.53%)
Mutual labels:  node-js
posthog-node
Official PostHog Node library
Stars: ✭ 18 (-5.26%)
Mutual labels:  node-js
gencord
A simple, beginner-friendly, and easy-to-use library for interacting with the Discord API, with minimal syntax.
Stars: ✭ 20 (+5.26%)
Mutual labels:  slash-commands
winston-dev-console
Winston@3 console format aimed to improve development UX
Stars: ✭ 88 (+363.16%)
Mutual labels:  node-js
DSharpPlus.SlashCommands
An extension for DSharpPlus to make slash commands easier
Stars: ✭ 46 (+142.11%)
Mutual labels:  slash-commands
teaching-nodejs-expressjs-framework-spring-2019-2020
Complete Node-Express Application
Stars: ✭ 16 (-15.79%)
Mutual labels:  node-js
haykal
A Typescript MVC Framework
Stars: ✭ 24 (+26.32%)
Mutual labels:  node-js
trifolia-on-fhir
Sister product to Trifolia Workbench that has native support for FHIR resources
Stars: ✭ 23 (+21.05%)
Mutual labels:  node-js

op-mattermost Node.js CI Donation

OpenProject integration for Mattermost. Currently, supports following operations using a slash command -

  • Create time entry for a work package
  • Create work package for a project
  • Delete work package
  • View time logs
  • Delete time log
  • Subscribe to OpenProject notifications in Mattermost channel

Demo

Demo video recorded using Peek.

Dependencies

  • OpenProject community edition
  • Mattermost preview
  • docker
  • Node js and npm modules

Installing dependencies

  • Docker
  • OpenProject
    • Quick install
      • docker run -it -p 8080:80 -e SECRET_KEY_BASE=secret openproject/community:11 or
    • Recommended install
      • sudo mkdir -p /var/lib/openproject/{pgdata, static}
      • docker run -d -p 8080:80 --name openproject -e SECRET_KEY_BASE=secret -v /var/lib/openproject/pgdata:/var/openproject/pgdata -v /var/lib/openproject/static:/var/openproject/assets openproject/community:11
      • docker stop openproject
      • docker start openproject
    • For up to date info on OpenProject installation refer their official docs.
  • Mattermost
    • docker run --name mattermost-preview -d --publish 8065:8065 --add-host dockerhost:127.0.0.1 mattermost/mattermost-preview
  • Node js

Setup

  • Fork and git clone the repo using HTTPS
  • Install and launch all the dependencies as mentioned above and open the cloned directory in an editor or IDE of your choice
  • Run sh configure.sh to create .env using bash command line. Alternatively, create a .env file using a text editor with the following entries:
    • OP_URL=http://<your host or ip address>:8080/api/v3/ (needed for pointing to OpenProject installation)
    • INT_URL=http://<your host or ip address>:3000/ (needed for exposing the integration running on port 3000)
    • MM_URL=http://<your host or ip address>:8065/api/v4/ (needed for pointing to Mattermost installation)
    • MATTERMOST_SLASH_TOKEN=<use the mattermost slash command token for logtime> (needed for slash command validation)
    • MATTERMOST_BOT_TOKEN=<use the mattermost bot access token> (needed for validation for posting messages as bot)
    • OP_ACCESS_TOKEN=<openproject access token (a.k.a apikey) obtained from user account page>
  • In the project root directory do npm init to generate (or update existing) package.json file
  • Then run npm install to download and install the node modules from npm
  • Run op-mattermost in the console using npm start (usually launches on port 3000)
  • Create a custom Mattermost slash command /op as described here and provide localhost or IP address (with port 3000) as the request URL and method as POST
  • Create a bot account with System Admin access as described here
  • In OpenProject, create a custom field billable hours for all work packages in a project
  • Test the integration by trying /op in the message bar.

Slash Command list

  • /op - Displays the general menu
  • /op lt - Log time for a work package
  • /op cwp - Create a work package for a project
  • /op tl - View time logs of the current user
  • /op dwp - Delete work package
  • /op dtl - Delete time log entry
  • /op sub - Subscribe to OpenProject notifications in Mattermost channel

Wiki

Development wiki is available here. It contains the workflows, file description and miscellaneous information necessary for development.

COPYING

GPLv3 or later

Copyright (C) 2019 to present, Girish M

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Sponsors

This project is currently sponsored by OpenProject Foundation (OPF). Sponsorship information is available here

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].