You can find the deployed project at https://saybravo.io
| Samar Vir | Aaron Thompson | James Eneh | Borja Soler | Johnson Ogwuru |
|---|---|---|---|---|
![]() |
![]() |
|||
| |
|
|
|
|
| Maxime Salomon | Noble Obioma | Petar Vlaisavljevic | ||
![]() |
||||
| |
|
|
Trello Board
Product Canvas
UX Design files
Healthy office cultures often acknowledge good work from their coworkers and peers. Award your peers with acknowledgments that act like coins/points in Slack when they do awesome things - and never let the acknowledgment of their good work get lost in the shuffle again.
- users can send public shoutouts to their teammates for their good work in Slack
- users can see all the shoutouts for given teammate in Slack
- for every shoutout, comment or reaction to shoutout users get bravos
- users can see how many bravos they have in their wallet in Slack
- users can see their Slack workspace leaderboard in Slack
Back end built using:
- NodeJS (Express)
- PostgreSQL
We use Slack API for both authentication and our Slack bot.
For the app to function correctly, the user must set up their own environment variables. There should be a .env file containing the following:
DATABASE_URL = database URL
SLACK_BASE_URL = https://slack.com/api
CLIENT_URL = https://saybravo.io
PORT = port for running the server locally
SLACK_APP_TOKEN = Slack app's access token, found in app features --> OAuth & permissions
BOT_ACCESS_TOKEN = Slack app's bot access token, found in app features --> OAuth & permissions
SLACK_CLIENT_ID = Slack app's client Id, found in app features --> OAuth & permissions
SLACK_CLIENT_SECRET = Slack app's client secret, found in app features --> OAuth & permissions
VERIFICATION_TOKEN = verification token
JWT_SECRET = long random string used for generating JWT token
| Command | Description |
|---|---|
/bravo |
Displays all available commands |
/bravo help |
Walks you through the process |
/bravo shoutout |
Used for giving and viewing shoutouts |
/bravo wallet |
Shows you how many bravos you have in your wallet |
/bravo leaderboard |
Shows the leaderboard for your workspace |
π data directory
- migrations directory
- models directory
- seeds directory
- dbConfig.js file
π routes directory
- shoutouts.js
π services directory
- bot
- shoutouts.js
- shoutouts.spec.js
βοΈ Folders, files and variables naming
- Camel Case
eg: bot, slackBot
βοΈ Constants and env variables naming
- Snake Case (All Caps)
eg: SECRET, DATABASE_URL
βοΈ Asynchronous Operations method
- async-await method
| Command | Description |
|---|---|
npm run server |
Starts the server in hot-reload mode for development |
npm test |
Runs the project test suite |
npm start |
Starts the app server in dev, staging and production environments |
npm migration |
Runs latest migrations for production |
npm dev-migration |
Runs latest migrations for development |
npm test-watch |
Runs the project test watcher suite |
npm coverage |
Reports coverage |
-
Install the VS-Code extension below;
- Name: Prettier - Code formatter
- Id: esbenp.prettier-vscode
- Description: VS Code plugin for prettier/prettier
- Version: 1.9.0
- Publisher: Esben Petersen
- VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode
-
Head over to the VS-Code settings and search for prettier
-
Locate and tick the checkbox under
Prettier: Eslint Integrationsection... You good to go! π
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change
If you are having an issue with the existing project code, please submit a bug report under the following guidelines:
- Check first to see if your issue has already been reported.
- Check to see if the issue has recently been fixed by attempting to reproduce the issue using the latest master branch in the repository.
- Create a live example of the problem.
- Submit a detailed bug report including your environment & browser, steps to reproduce the issue, actual and expected outcomes, where you believe the issue is originating from, and any potential solutions you have considered.
We would love to hear from you about new features which would improve this app and further the aims of our project. Please provide as much detail and information as possible to show us why you think your new feature should be implemented.
If you have developed a patch, bug fix, or new feature that would improve this app, please submit a pull request. It is best to communicate your ideas with the developers first before investing a great deal of time into a pull request to ensure that it will mesh smoothly with the project. Remember that this project is licensed under the MIT license, and by submitting a pull request, you agree that your work will be, too.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, including new plist variables, exposed ports, useful file locations and container parameters.
- Ensure that your code conforms to our existing code conventions and test coverage.
- Include the relevant issue number, if applicable.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
See Frontend Documentation for details on the frontend of our project.
These contribution guidelines have been adapted from this good-Contributing.md-template.


