A platform for companies to build employee engagement programes with the use of blockchain technology.
The platform allows companies to incentivize employees for their contributions as rewarded tokens which can be given from both top-down and peer-to-peer to encourage social connection between employees.
With the token-based reward points, it gives more flexibility for employees to manage their rewards e.g. redemption for company-provided benefits, spending on platform’s marketplace, giving away to others or even exchanging for cash.
Notes:
- The demo contracts deployed on Rinkeby Test Network and make use of Ethereum Gas Station Network (GSN).
- To interact with the demo dApps using MetaMask, users don't have to pay for any gas but it requires to have the Ether balance in the users' accounts though.
- Due to the GSN architecture, the users' transactions are forwarded to the Relay Servers, therefore it takes quite long to transact the requests. Please be patien :)
URL: https://employee-engagement.sslabs.sh
Screencast URL: https://1drv.ms/v/s!Ah7Zl_7cgemrjsUt8HAbYJL-yL9oMQ?e=M023f2
- Enter the service platform
- Login with Metamask
- If there is no data for the logged-in MetaMask account before, the frontend asks to fill profile information
- After complete filling the profile, the platform reward 10 XABER utility token
- Users can use the XABER token on the service platform by
- Start a new disucssion on a topic and giveaway the certain amount of the token as a reward to the for selected reply (think of stackoverflow's approved answer).
- Transfer the token to other users in the system for gratitudes
- Redeem the token for NFT badges
- Node.js >= v14.18.1
- Yarn v1.22.17
- Truffle v5.4.22
- Ganache CLI v6.12.2
- Truffle and Ganache
client
: Next.js web frontend.contracts
: Solidity Smart Contracts.migrations
: Migration files for truffle to deploy smart contracts to an Ethereum network.test
: Unittests for smart contracts.build
: The directory for smart contracts' artifacts after compiling and from GSN
To avoid issues, please follow the steps accordingly as some steps are depent on the prior ones.
- Change directory to the root of the project then run
yarn install
to install dependencies - Spin up local Ethereum network, due to some constraints, the
networkId
andchainId
arguments must be supplied with1337
npx ganache-cli --networkId 1337 --chainId 1337 --port 8545
- Rename the
.env.example
file in the project's root directory to.env
and populated theMNEMONIC
value with ganace-cli generated one
MNEMONIC=your mnemonic here
RINKEBY_ENDPOINT_URL=https://rinkeby.infura.io/v3/your_infura_project_secret_here
RINKEBY_TRUSTED_FORWARDER_ADDRESS=0x83A54884bE4657706785D7309cf46B58FE5f6e8a
- This
MNEMONIC
is used when deploying smart contracts, therefore to deploy on Rinkeby Test Network, the account from theMNEMONIC
must have enough test Ether RINKEBY_ENDPOINT_URL
is the endpoint forHDWalletProvider
, it's required to connect to Rinkeby Test Network when deploying smart contracts- Leave
RINKEBY_TRUSTED_FORWARDER_ADDRESS
as is, it's required to deploy the smart contracts to Rinkeby Test Network
- Still in the project's root directory, run
yarn gsn
to build and deploy GSN-related smart contracts on the ganace_cli's local network and start GSN's relay server - In the project's root directory, run
truffle compile --all
to compile the smart contracts - In the project's root directory, run
truffle test
for smart contracts' unittests - In the project's root directory, run
truffle migrate --reset
to deploy smart contracts to ganace-cli local network
- Change directory to the
client
under project's root directory - Run
yarn install
to install dependencies - Run
yarn dev
to start frontend local dev server - Or run
yarn build
thenyarn start
to build and run the frontend - Open a browser to
http://localhost:3000
- On MetaMask make sure to connect to
Localhost 8545
network withchainId
andnetworkId
as1337
- The frontend requires environment variables from the
.env
file
NEXT_PUBLIC_STRAPI_BACKEND=https://employee-engagement.sslabs.sh:1337
NEXT_PUBLIC_RINKEBY_PAYMASTER_ADDRESS=0xB0B8452a4fa8E58b318001A49D035C8689FaB083
NEXT_PUBLIC_RINKEBY_GSN_RELAYER=https://rk22-relayer.sslabs.sh/gsn1
NEXT_PUBLIC_STRAPI_BACKEND
is the backend required both running locally or test network, e.g. store data off-chain as well as images. The pre-configured here should work with every environmentNEXT_PUBLIC_RINKEBY_PAYMASTER_ADDRESS
is the address of GSN's paymaster contract which take responsibilities to pay gas fees instead of usersNEXT_PUBLIC_RINKEBY_GSN_RELAYER
is the GSN relay server setup for Rinkeby_Test_Network, it can be leave as is
If eligible, please send the certification to this Ethereum EOA address
0x68037F970eDf769FC29c9916ceE34a2255CafF50
- More engagement activities to earn token
- Apply more gamifications, e.g. ranking system, to drive engagement
- Search and view and interact with other users for encourage social connection
- More...