perspectiveapp
v2.0.0-alpha.7
Published
team communication app
Downloads
6
Readme
perspective
An open-source, context-aware, event based team communication tool designed with emphasis on software development teams.
Installation
- Download and install RethinkDB if you haven't already
npm install -g perspectiveapp
Usage
- Run
rethinkdb
in one shell/process - Run
perspectiveapp
in another shell/process
Configuration
See lib/server/config.js
for the default configuration. You may override these
settings by creating a custom configuration file with the same structure and placing
it under ~/.perspective/config.json
FAQ
How is Perspective different from Slack, HipChat et. al?
Perspective is open-source and free to use, even for on-site installations behind pesky firewalls. Also, while there is a long way to go, Perspective aims to be more than chat by providing the right information at the right time to the right user. Examples:
- Present key events on a dashboard suitable on a TV for your whole team to see
- Switch the dashboard into a special mode during stand-ups to provide the most relevant information
- A view of Stash/Jenkins branch and build jobs as a separate overview page (in addition to being posted in relevant chat rooms)
- A view of the currently installed applications and versions in different server environments (in addition to deploy notifications in chat rooms)
What's the high level architectural ideas?
- "Everything" is an event. A chat message is simply an
event
of a specific type. Similar a build job on Jenkins will be an event of another type. Integrations will be able to format events in a chat room, hook into "dashboards", create its own menu entries, listen for other events to produce new events and more.
Is it stable?
Not at all. Yet :)
Contribute
Contributions are most welcome! Simply open an issue or create a pull request.
Development
- Install RethinkDB
- Clone this repo
npm install
- Run
npm run watch
(npm run watch:server -- -- --verbose
for debug logging)
- See
npm run
for a list of other options. - Run
perspective.debugLoggingOn()
to enable client-side debug logging
Todos
Will be migrated to github issues eventually
- api
- stable events api for creating events via REST (validation)
- stash
- aging of pull-requests
- events
- error handling LOAD_EVENTS
- event-store: sliding window? Evict old events to keep memory from building up
- chat
- don't scroll to bottom automatically if user has scrolled up
- set status (online/away)
- set status automatically to idle
- support @here, @channel, @everyone , @username
- support "... is typing"
- support drag'n'drop files
- support copy/pasting and embedding images
- support code snippets
- detect and convert http links
- append message clientside immediately, but implement "failed to deliver message" or similar if connection fails
- security: allow plugins to format using HTML, but prevent XSS (see message.react)
- ui
- get a delicious design
- create startupscripts
Licence
Perspective is released under the MIT License.