This is a DevLog for A social app project for NFTs collectors built with React Native.
Looking forward to get any suggestion!
- React Native
- JavaScript
- Python
- Solidity
- Google Firebase
- Amazon RDS (MySQL)
- Eth Mainnet
- Eth Sepolia
- Polygon Mumbai
- Registered and Connect Wallet
- Connect MetaMask ✅
- Register pages and flow ✅
- Upload profile to server ✅
- Card
- Swiping ✅
- Content ✅
- Chat
- xmtp ⚒️
- Chat ⚒️
- Trade NFTs ⚒️
- Allow users to add new contact ⚒️
- Search by user name ⚒️
- Swap NFTs ⚒️
- Search and send arbitrary NFTs ⚒️
- Utils
- Scan the QRcode to add a new contact ⚒️
- Generate the QRcode for the wallet address ⚒️
- Matching Algorithm
- Chat
- Trade NFTs
- Share NFTs
- Mint NFTs
- Loyalty Systems
- Activities & Events
- Market place
Progress:
- Enable users to use NFTs on different chains to build up their profile
- Enable users to share owned NFTs on different chains in the chatroom
RPReplay_Final1705866385.mov
RPReplay_Final1705868391.mov
Progress:
- Replace inApp trading NFT with only one single transaction (remove Oracle)
- Fix bugs for wallet connecting and chain switching
- Match users and create new chat room
TODO:
- Share arbitrary NFTs in the chat room
Progress:
- Complete inApp trading NFT
TODO:
- Catch bugs and fix MetaMask sdk disconnect issue (Automatically disconnected after MetaMask wallet app is locked)
My.Movie.5.mov
Progress:
- Ask for asset transfer approval from the user
- Update approval status to the database
- Testing transaction smart contract, and complete token transfer and NFT transfer. (from remix)
Progress:
- The first user that accepts the purpose will sign the purpose information upload it to IPFS and then store it in the database
- Check if the purpose is registered
- Validate function which checks if the signature is legit and all the transaction information is correct and is called by the correct user.
Progress:
- Switch Chain
- Provider for read-only contract call (Metamask provider frequently needed the user to unlock the app to use eth_call, which is annoying)
- Check if the seller owns the NFT & check if the buyer has enough erc-20 token balance
Progress:
- Message block for displaying purpose
RPReplay_Final1703137250.mov
Progress:
- View for sending Purpose
- Adding WebView for NFT Information
- Token selector
TODO:
- Find a suitable token price API to show price preview (to USD) when typing the token amount
RPReplay_Final1703051954.mov
Progress:
- Enable sending messages with NFT
- Reply NFT with text
- Display ownership of the NFT quoted in chats
- Testing smart contract transaction
RPReplay_Final1702943678.mov
Progress:
- Migrated to tab navigation
- Adjusted keyboradAvoidingView with safeAreaProvider
- Fix bugs for chat view when users switch wallet address
- Add profile card view in the chatroom
RPReplay_Final1702516770.mov
Progress:
- Chat room layout
- Realtime message update
- Send text message
RPReplay_Final1702362480.MOV
Progress:
- Dynamic source for NFT image/video
- Adjusted media source request timeout to improve performance
- List all xmtp conversations and filter unregistered users
- Push the latest conversation to the top on received new message
- Fix bug for card swiping
TODO:
- Add preview message and received time
- local cache
RPReplay_Final1701930777.MOV
Progress:
- Fixing bugs in profile editing
- Migrating scroll view to flash list
- Preparing for xmtp implmentation
Progress:
- Finished Profile edit
- Integrated Jotai for state management
Progress:
- Redesign Card layout
- Add profile image to property
- Add user ID to property
Fix:
- Integrated EtherJS with more functionality
- Track user Switch between Wallet address
Progress:
new.mov
- Complete the whole registration process
- Upload profile to Python server and store in Firebase
- Fetch all card stack (other users' profile from server) and render into a card stack view
- Swipe animation
To Fix:
- Swipe animation warning
⚠️ (Not urgent) - NFT display when bad source (Urgent)
Fixed Bugs:
- Deal with mislabeled image/animation URLs from data provider
- Optimized UX with pagination