# New Backend Status and Updates
## Purpose
The end goal of backend is to make the UX smoother. All the essential activities are taken care by contract which includes creating bounty, submitting solution, voting on those solution and the escrow functionality. The backend uses smart contract as the source of truth to store data which makes the UX much more smoother and also it handles some of the offchain activity which invludes calculating the voter weightage.
## Tech Stack Used
1. TS
2. Expressjs
3. MongoDB for storage
4. Ethersjs
5. ec2
## Functionalities implemented so far
1. A synchronisation function that helps the db sync up the data from the smart contract to the database
2. Socket listeners that monitor smart contract events and based on changes in the contract state, the database is updated
3. services that takes care of processing the data fetched from smart contract.
4. APIs to get the data
5. Logging mechanism to log about various processes that occurred
6. Everything is hosted in EC2.
## Current Status
1. A cron task is defined that caluclates the voter weightage offchain. Partial testing is done. needs to be thoroughly tested and merged.
# Smart Contract Status
## Purpose
The purpose of smart contract is to provide a transparent and decentralized program to execute different functionalities as per the platform requirement and act as a single source of truth for every interaction with the platform
## Tech Stack
1. Solidity
2. Hardhat
3. Jest
## Functionality and implementation so far
1. Post bounty
2. Submit solution to a bounty
3. Vote on solution based for curation process by staking Matic token
4. Escrow to take care of transfer of funds.
5. Testcases using jest to make sure the functions are working as expected.
## Current Status
1. Outlined the new
functionality based on input from clients.
2. Initial structure and flow defined for bounty posting procedure.