This repository contains the infrastructure code for a user rewards system that incentivizes project contributions.
The website powered by this infrastructure displays historical and recent contributions, hot tasks, contribution guides, and more. To suggest rewards for contributions displayed on the website, community members can use the Discord Bot or create comments on social media that will trigger the powered tracker.
Important
For the bot to access all channels in the dedicated Discord guilds, an admin must assign it a role with appropriate permissions (the Verified role in the case of ASA Stats Discord).
Environment variables should not be stored in the repository, so .env files must be created based on .env-example:
- Website variables are placed in
rewardsweb/.env - Discord bot variables are placed in
rewardsweb/rewardsbot/.env - Rewards smart contract variables are placed in
rewardsweb/rewards/.env - Please check
deploy/.env-examplefor deployment variables
Note
If the ADMIN_*_MNEMONIC variable is not set in rewardsweb/rewards/.env, the system will treat the logged-in superuser as the admin. You will then need to assign the admin's public address to that superuser.
Please check the setup section in the documentation.
- Stimulate community engagement
- Provide a nice contributions overview
- Make the process of suggesting and collecting rewards straightforward
- Have a nice overview and documentation of contribution/reward process
- Initialize Django project on this repository
- Setup environment: docker (optional), database, env file(s)
- Create data models and migrations
- Adjustment of script for contributions spreadsheet parsing
- Create script for seeding the database with parsed data
- Create API routes
- Create methods for managing http requests and bind them to API routes
- Automated documentation building and publishing on Read The Docs platform
- Create methods for CRUD operations
- Implement authentication by connecting a wallet
- Create deploy workflow
- Create smart contract for rewards allocation and claiming
- Develop UI for rewards allocation and claiming
- Implement additional issue trackers besides GitHub
- Create trackers and related parsers for mentions in social media messages (X and Reddit)
- Enable automatic generation of transparency report snippets based on Mainnet allocations
- Setup a server and deploy the application
- Deploy the smart contract on Mainnet