Skip to content

It's a decentralized social platform where users can post their thoughts and images and mint them into NFTs. Built using Gun JS for the decentralized database/authetication and Solidity for the NFT minting smart contracts. The smart contract was then deployed temporarily on the Ropsten, Rinkeby and Polygon testnet.

Notifications You must be signed in to change notification settings

nikhilnair31/DeSo

Repository files navigation

What is DeSo?

It's a decentralized social platform where users can post their thoughts and images and mint them into NFTs. Built using Gun JS for the decentralized database/authetication and Solidity for the NFT minting smart contracts. The smart contract was then deployed temporarily on the Ropsten, Rinkeby and Polygon testnet.

How To Run with References

What to Run?

What to Run?

  • Run command to compile the smart contracts into ABIs npx hardhat compile
  • Run command when??? npx hardhat test
  • https://hardhat.org/plugins/nomiclabs-hardhat-etherscan.html Follow the necessary steps from the link above. Run command after deploying the smart contract onto a network (rinkeby in this case, 0x5a951603fDaaBab6e9bC9149c2eCc15b1917E96c is contract address) npx hardhat verify --network rinkeby 0x5a951603fDaaBab6e9bC9149c2eCc15b1917E96c ""
  • Run command to deploy the smart contract to the network (rinkeby in this case). The network name, URL and account can be changed in the hardhat.config file. npx hardhat run scripts/sample-script.js --network rinkeby
Links

Links

To-Dos

To-Dos

To-Dos

  • General
    • Ensure each client is able to connect to relay on Heroku
    • Add a link to view the NFT on OpenSea
    • Add a way to link existing NFTs into a post
  • Posts
    • Commenting
      • Need to include nested comments
    • Deleting
      • Include a group consensus mechanism to delete posts if flagged by enough users
        • While adding to reportcount consider the user's trust status to influence reportcount weight
        • Remove the post automatically if the report count is X% of the total interactions on the post (including likecount, commentcount etc.)
        • Calculate trust score for each user on each interaction and give priority to those in the top 80%th
  • Login Component
    • Can't seem to generate duplicate users with the same username so just ensure that that's the case
  • NFT
    • Update the smart contract to make the paytomint cost flexible (ALSO MAKE IT SO YOU GET PAYED ON PAYTOMINT COMPLETING)
    • See if to include additional data in metadata and if you can write other data into blockchain
  • Completed
    • Change NFT post styling to make interactions more visible
    • Check why text-only NFT is including an image
    • Instead of encrypting only the post text maybe encrypt the whole post?
    • Fix the sorting order of the posts (Doesn't work sometimes?)
    • Allow for comment deletion
    • Search for all of a User's posts and then filter depending on user's public key
    • Fix how to pull the IPFS hash / API avatar from the data
    • Check out below link to see potential APIs that can be used to convert text-only posts into images https://github.com/petersolopov/carbonara https://github.com/cyberboysumanjay/Carbon-API
    • Check out below link to see how to deploy the site on IPFS https://medium.com/ethereum-developers/the-ultimate-end-to-end-tutorial-to-create-and-deploy-a-fully-descentralized-dapp-in-ethereum-18f0cf6d7e0e
    • Create a page that makes individual user's content accessible
    • Maybe use the common User page for the curr User too just including an 'Edit' button
    • Figure out better way to route the screens
    • Streamline how the flow works on sign out and sending to '/' path
    • Allow removal of pfp
    • Allow upload of new pfp
    • While the post data gets removed from GUN peers there may still remain images on Pinata
      • Kinda fixed it by getting an unpin function built on API. Check why it isn't working.
    • Show react toast to confirm the edits were completed
    • Also fix how the thing loads at the bottom of the feed instead of top
    • Find a way to upload text-only posts as NFT (Maybe by using an API to format the text into a picture?)
    • Include additional data like user's name, email-id and bio. (Make it editable)
    • Check why SCSS mixins aren't working in Popups
    • Liking
      • Also allow unliking
      • Need to also include the the public key of the user that liked the post and use that to prevent multi liking
      • Like count increment works
    • Put delete and share buttons into a popup menu
    • Check why NFT's images aren't loading on MetaMask/OpenSea
    • Setup meta data sctructure according to OpenSea guidelines
    • Include MetaMask wallet login to allow for NFT stuff
    • Close PostModal when post is pushed
    • Include basic CRUD operations (maybe no updating since Twitter doesn;t either lmao)
    • Fixed Create and put data into better format
    • Reading data correctly
    • Can Delete posts
    • Ignoring update for now
    • Use IPFS for PFP/Image uploads?
    • Fix the broken initials problem
    • Kinda shifted from chat to Twitter feed-ish
    • Include user's pub key in the post along with alias
    • Fix the posts so that they scroll within the div

About

It's a decentralized social platform where users can post their thoughts and images and mint them into NFTs. Built using Gun JS for the decentralized database/authetication and Solidity for the NFT minting smart contracts. The smart contract was then deployed temporarily on the Ropsten, Rinkeby and Polygon testnet.

Topics

Resources

Stars

Watchers

Forks