BrightTreasury
- Team Name: Bright Inventions
- Payment Address: 0xC1bE52Df4d34f86594cFaF69D374e2C48194d1cC
Project Overview
BrightTreasury - a web app for handling the network treasury module.
Overview
The aim of the BrightTreasury project is to create a standalone web application along with a PWA representation that would allow performing basic actions on the Treasury module of Polkadot and Kusama Substrate networks (with a potential to support any Substrate-based network with Treasury module). It would allow a more intuitive and lightweight flow of submitting proposals as well as an overview of the Treasury related actions.
Our focus will be on the regular user’s actions rather than the council perspective for this first release. We want to attract more professionals who could contribute to the community with their ideas and skills but at the same time may not be as fluent in blockchain customs and terminology.
Based on the discussions with the Substrate networks’ users and council members as well as analysis of the comments under Polkadot and Kusama proposal submissions, we identified areas that caused most issues in the Treasury funding process from the user’s perspective. The main needs that were brought up were:
- more intuitive proposal submission flow, with clearer indication of a proposal idea being subject to the community discussion, before submitting to blockchain and committing with bond funds
- one place for following the submitted proposals, their status and the results of motions
- a unified discussion forum to leave comments about submitted proposals as well as their draft versions (ideas)
- implementation of the new bounties funding mechanism
Following these needs, we propose a solution that will benefit the Substrate chains communities.
Project Details
The application will have the proposal lifecycle as its main focus - starting from a more approachable proposal definition, clearly stated two phases of the submission (an Idea for preliminary discussion and the formal Proposal after blockchain confirmation) followed by an intuitive overview of the submitted proposals and their state.
Technology stack: NestJS and React
In addition to the currently available functionality within the Treasury module, we plan to introduce supplementary features that can benefit the user experience.
What is more, as we understand that visual aspects are crucial when talking about user experience, we have prepared the clickable designs that illustrate the main flow we wish to implement. Please find it under the following link: https://xd.adobe.com/view/0bb66d6e-5797-40bc-aa29-c6f71131f402-5ee5/
Features will include:
- Treasury overview
- Summarise treasury info
- Display spend period stats
- Show ideas/proposals details
- Link to proposal details in other services
- Milestones
- Link to in-app proposal details with discussion
- Related motions
- Subject of proposal
- Reason of proposal
- Reward and bound
- Proposer’s information
- Portfolio
- Nets of submission
- Show approved proposals
- Submit proposal
- Submit an idea - for discussion
- Submit a proposal to blockchain
- Integrated motions overview
- Switching between networks (+ an overview of proposals shared between Substrate chains)
- Login in-app
- History in-app (past proposals accepted/rejected)
- Bounties
- Add a new bounty
- Nominate a bounty curator
- Set a bounty status
- Reward a bounty
- Mobile responsive UI (tablet & phone) & Progressive Web App (PWA)
Ecosystem Fit
Currently, the Treasury module is a part of the general network management tool. We plan to separate it and develop an independent service, with a more streamlined and intuitive flow and presentation. Such a platform would be more approachable for the users from outside of the blockchain community and have a potential for simpler promotion of the Treasury funded actions.
Main distinguishing features:
- a more intuitive, two-step flow for submitting proposals (Idea -> Proposal)
- in-app module for more detailed proposal descriptions (like adding milestones) connected with proposal related discussion and - reporting progress on approved proposals
- clear overview of the submitted proposals matched with derived motions and their results
- historical overview of the past spending periods’ proposals that were submitted using the app
- the first app with dedicated bounties implementation
- in-app login
Team
Team members
- Agnieszka Olszewska - Technical Lead, blockchain specialist
- Alisa Kashytska - UI/UX design
- Szymon Miloch - fullstack developer
- Daniel Makurat - fullstack developer, blockchain specialist
- Katarzyna Łukasiewicz - Project Manager
Contact
- Katarzyna Łukasiewicz:
- Contact Email: katarzyna.lukasiewicz@brightinventions.pl
- Website https://brightinventions.pl/
Legal Structure
Bright Inventions is a limited liability company based in Gdansk, Poland. Company was founded in 2012 by Daniel Makurat and Michał Łukasiewicz.
Full address details:
Bright Inventions Sp. z o. o.
ul. Jana Matejki 12
80-232 Gdańsk, Poland
Company registration number: 0000687244
VAT EU: PL5842761920
REGON: 367805647
Bright Inventions is a team of 50 full-time onsite developers, project managers & UX/UI designers - experts in mobile and web applications, systems integration, IOT devices and Blockchain platforms.
We believe that building a software product is about people working together in a collective way. By offering complex support – mobile and web development as well as IT consultancy we try to eliminate roadblocks towards engaging clients as partners at every step of the process.
We support startups, digital agencies as well as medium to big businesses. We cooperate with startups, accelerators and incubators. Whatever the client profile is, we always aim to establish a satisfying partnership for both sides. Since 2012 we have built software for more than 40 businesses worldwide.
Team's experience
- Agnieszka - she is a senior backend developer with main interest in data modelling. She started her software development career 10 years ago and from then she began discovering a lot of new technologies. Among them there are JavaScript, TypeScript, React, Postgres, Node.js, NestJS. Most recently she’s been engaged in developing blockchain based solutions with Substrate.
- Alisa - a UI/UX designer with a passion for digging deep into the product domain and understanding the user's perspective. She has worked on the design for multiple web/mobile solutions and lately has been responsible for UI redesign of Parity Building Blocks Android and web apps.
- Szymon - a positive and ambitious software developer who has developed a passion for both Android and web, with experience in Kotlin, React, Node.js and Nest.js among other technologies. Always open to opportunities and projects where he can find something new to learn. Experienced in working in international teams.
- Daniel - his main areas of experience is development of data processing software and configurations. He develops in TypeScript, Node.js, NestJS. He’s been a part of the development teams working on blockchain solutions for Parity projects.
- Kasia - she has been working with agile methods for over 10 years, both as a researcher and a practitioner. She believes in teamwork and a power of user centered mindset. With experience in leading international projects, she knows how to support and encourage timely and high quality deliveries.
Team Code Repos
https://github.com/bright/bright-tresury
Team LinkedIn Profiles
- https://www.linkedin.com/in/agnieszka-olszewska-502613143/
- https://www.linkedin.com/in/alisa-kashytska-a38417b1/
- https://www.linkedin.com/in/szymon-miloch/
- https://www.linkedin.com/in/daniel-makurat-b7b5a026/
- https://www.linkedin.com/in/katarzyna-łukasiewicz-b473901aa/
Development Roadmap
The development of the specified user stories will be broken into 3 milestones, each taking 1 month to complete.
Definition of Done for each user story:
- Unit tests passed
- Code has been reviewed by peer
- Acceptance criteria were met
- Internal QA has been performed
- Documentation has been written
- Screens are responsive and prepared both for desktop and PWA (mobile and tablet)
- Browser compatibility
- Chrome from 70 upwards
- Safari from 12 upwards
- Firefox from 57 upwards
- Edge from 42 upwards
At the end of each milestone:
- The user stories listed for the given milestone have been implemented both on frontend and backed and the DoD criteria were met, allowing the user to perform the defined actions
- The functionality has been deployed to stage environment, accessible for testing purposes
Overview
- Total Estimated Duration: 3 months
- Full-time equivalent (FTE): 1
- Total Costs: 28 500 DAI
Milestone 1 — Idea creating & Proposal submission & in-app logins
- Estimated Duration: 1 month
- FTE: 1.1 FTE
- Costs: 10 450 DAI
The main goal of this milestone is to implement the core flow of the app, that is the Proposal lifecycle. As a result the user will be able to create an Idea, add all the necessary details, create Milestones for an Idea, make it public and decide to submit the Idea to the blockchain, turning it into a formal Proposal. The status of the Proposal will be then updated based on the data returning from the API. To perform these actions a user will need to be logged in, however browsing through ideas and proposals will be available to everyone.
Number | Deliverable | Specification |
---|---|---|
0a. | License | Apache 2.0 / MIT / Unlicense |
0b. | Documentation | We will provide inline documentation of the code and a basic tutorial that explains how to set up and run the project. |
0c. | Testing Guide | The code will have proper unit-test coverage to ensure functionality and robustness. In the guide we will describe how to run these tests. |
1. | User Story 1 | As a user, I can sign up and sign in to the app |
2. | User Story 2 | As a logged in user, I can create an idea and publish it or save as a draft. |
3. | User Story 3 | As an idea owner, I can edit my draft idea and publish it to the community for viewing |
4. | User story 4 | As an idea owner, I can edit my idea. |
5. | User story 5 | As an idea owner, I can add/edit/remove milestones. |
6. | User story 6 | As an idea owner, I can submit my idea as a proposal (signing and submitting one transaction). |
7. | User story 7 | As an idea owner, I can turn each milestone separately to a proposal (signing and submitting a separate transaction for each milestone). One milestone at a time. |
8. | User story 8 | As an idea owner, I can edit my ideas as long as the proposal is not closed (rejected or submitted). |
9. | User story 9 | As an unlogged user I can view all ideas. |
10. | User story 10 | As an unlogged user I can view details of an idea. |
11. | User story 11 | As an unlogged user I can view the details of proposals and their votings. (In this milestone, there will be no in-app history of transactions made outside of the app. Once a proposal is rewarded, it’s voting result will not be visible in the app. This will be available in the milestone 3) |
12. | User story 12 | As an unlogged user I can view proposals list |
13. | User story 13 | As an unlogged user I can view the details & status of proposals |
14. | Stage environment | We will provide an online staging environment with a local Polkadot node to demonstrate the full functionality of our app. |
Out of scope: council voting
Milestone 2 — discussions panel & treasury overview & multiple networks
- Estimated Duration: 1 month
- FTE: 0.9 FTE
- Costs: 8 550 DAI
The goal of this milestone is to add more features to the ideas and proposals handling. The ideas as well as proposals will have the discussion functionality added and it will be possible to add them to multiple networks as well, as the representation of multiple blockchain networks feature will also be implemented at this stage. What is more, an overview of the treasury statistics will be presented for each network respectively.
Number | Deliverable | Specification |
---|---|---|
1. | User story 14 | As a user, I can switch between networks and see data for the selected network. |
2. | User story 15 | As an idea owner, I can add an idea and milestones to multiple networks. |
3. | User story 16 | As an idea owner, I can submit my proposal into multiple networks (signing and submitting one transaction for each added network). |
4. | User story 17 | As an idea owner, I can submit each milestone separately as a proposal into multiple networks (signing and submitting a separate transaction for each milestone for each added network). One milestone at a time. |
5. | User story 18 | As a user, I can view stats of the treasury module |
6. | User story 19 | As a logged in user I can discuss the idea. |
7. | User story 20 | As a logged in user I can see notification about new comments (in my idea and in ideas I have discussed on) |
8. | User story 21 | As a logged in user I can get email notifications about new comments (in my idea and in ideas I have discussed on) |
Milestone 3 — Bounties & in-app history
- Estimated Duration: 1 month
- FTE: 1 FTE
- Costs: 9 500 DAI
The main goal of this milestone is implementation of the bounties mechanism. Users will be able to add and browse through bounties, votings for their curators and check the current status. The curators will be able to accept (or reject) their nominations and manage the bounty’s status. Additionally, in this milestone we plan to add a basic integration with Polkassembly. It will be possible to see the description of a proposal/bounty published on Polkassembly. We will also include the history feature based on the data from Polkassembly, which would allow users to browse through closed proposals and bounties, in addition to in-app ideas. What is more, we plan to prepare the Milestone 1 and 2 features for production environment and deploy them, so they would be already fully functional to the Polkadot and Kusama proposals.
Number | Deliverable | Specification |
---|---|---|
1. | User story 22 | As a logged in user I can create a bounty proposal |
2. | User story 23 | As an unlogged user I can view voting on approving/rejecting the proposal |
3. | User story 24 | As an unlogged user I can view proposed curator and voting on assigning them |
4. | User story 25 | As a curator I can accept the nomination |
5. | User story 26 | As a curator I can reject the nomination |
6. | User story 27 | As a curator I can award the bounty with a chosen beneficiary |
7. | User story 28 | As a curator I can extend expiry date of a bounty |
8. | User story 29 | As a user I can claim the payout of the bounty (the reserved amount will be paid out to the beneficiary account) |
9. | User story 30 | As an unlogged user I can view the bounty proposal status |
10. | User story 31 | As a curator I can edit the contextual info of a bounty (title, description, people who do the work) and report progress. |
11. | User story 32 | As a user, I can view the details and voting history of closed proposals (only for Polkadot and Kusama networks) |
12. | User story 33 | As a user, I can view the details and voting history of closed bounties (only for Polkadot and Kusama networks) |
13. | User story 34 | As a user I can see the proposal’s description published on Polkassembly. |
14. | User story 35 | As a user I can see the bounty’s description published on Polkassembly. |
15. | User story 36 | As a user I can use the Milestone 1 and Milestone 2 features in production environment |
16. | User story 37 | As a user I cannot edit my idea once the associated proposal is closed (rewarded or rejected) |
Community engagement
It is our priority to make the BrightTreasury app a living part of the community’s life and as such, we plan on several informational activities such as:
- We want to ask Polkadot blog team to kindly agree on us publishing two articles on their blog (https://polkadot.network/blog/): one at the beginning of the project, second as a tutorial at the end of the project
- We will also submit an article to Medium at the end of the project, presenting the application and its potential contribution
- Two blog posts on our Bright Inventions blog https://brightinventions.pl/blog
Future Plans
In future, we plan to include a Tips mechanism as well, with a similar intuitive approach.
What is more, we would like to further integrate with Polkassembly to allow a two-way communication. We plan to display proposals and bounties created using BirghtTreasury (along with their details and discussions) in Polkassembly as well and update any changes in both services.