Inspiration
A few months ago, having a beer with our colleagues, we had a heated debate about how to maintain team motivation and morale. We needed to consider the evolution of working conditions, such as remote working and the growing trend for distributed teams. Despite disagreements on several points, we all agreed on one key point - it's extremely important to encourage active team collaboration, cultivate a helping mindset, and work with engineers' recognition as a critical part of building a cooperative company culture.
But how can we let our colleagues know that we highly appreciate their contribution? Buy them a coffee? Send them a present? Showing appreciation to a diverse group of employees isn't easy, especially if your colleague is from another continent. And that’s how the idea of the blockchain-based motivation system “Enthusiasm” was born!
What it does
Enthusiasm provides a set of tools that help to maintain team motivation and promote the power of small actions within a team
Award nomination
This functionality provides the ability to nominate any teammate for a reward at the end of a working period (sprint/month/year). Nomination represents some titles like "The most valuable player", "Soul of a Team" etc, and the number of the Near protocol tokens as a monetary reward. Teammates can vote for their nominees with the help of the Near blockchain, which makes this process completely easy and transparent.
Rewards
This functionality helps to thank any of the teammates in your Slack workspace by sending them some amount of Near tokens.
How we built it
Enthusiasm application consists of two primary parts - Slack bot and Smart Contract. The Slack bot is an instance deployed to the Heroku cloud. It was developed using Node.js, SlackAPI, and NearSDK as a bridge between the slack users and NEAR blockchain.
The smart contract is implemented with the help of Rust and NearSDK. It handles all slack user requests and allows users to interact in a decentralized way using flexible and powerful NEAR blockchain.
Challenges we ran into
We started this project as a group of pretty experienced developers, but without any knowledge about blockchain and how it works under the hood. In a short term, we have managed to learn blockchain basics, Rust language’s peculiarities, NEAR smart contract development best practices. It took a portion of time to write the first simple contract method and a lack of knowledge and experience hindered our progress. But after hours and hours of learning, trying, reading, debugging, testing we have managed to create a necessary set of methods, which gave the opportunity for our bot to implement all features which we wanted to prepare for the hackathon.
On the other side, we started to explore SlackAPI and the slack bot development process to provide a smooth and intuitive interface for users. Unfortunately, Slack API was not able to provide enough flexibility for us to implement all of our ideas, as well as their controversial and confusing documentation took a lot of effort to develop features. Trying different approaches of user interaction with Slack bot we wanted to achieve the most convenient and straightforward interface, which allows “zero-knowledge” users to get their Near tokens as quickly as possible. And we think we coped with this task.
Accomplishments that we're proud of
In a short period of time, we’ve dived deep into blockchain development and learned Rust as a new programming language. We have carried over lots of discussions, iterations, and debugging meetings, but eventually, we’ve managed to build a small, but useful application that can improve team performance by enthusiastic work.
What we learned
- Rust
- Near SDK
- Near API
- Blockchain concepts
- Near best practices
- Slack API
What's next for Enthusiasm
system functionality extensions:
- “Happy Birthday” functionality (you can easily and anonymously collect Near tokens to present to your colleagues on their birthdays)
- integration with popular corporate tools (Google Calendar, HR systems, Talent development systems)
- Integrated games ("Rock - Paper - Scissors")
Built With
- javascript
- rust
- slack
- slackapi



Log in or sign up for Devpost to join the conversation.