Proof of Mood is a decentralized application (DApp) on the Ethereum blockchain that allows users to perform a daily mood check-in. The app stores moods on-chain, provides insightful user statistics, and visualizes mood trends over time through interactive charts and dashboards.
- β Daily mood check-in recorded on the blockchain
- π Mood history visualization with charts
- π User statistics (total check-ins, most frequent mood, etc.)
- β±οΈ Countdown timer until next check-in
- π Wallet integration (MetaMask or compatible Ethereum wallet)
- React.js
- ethers.js
- Solidity Smart Contract (not included in this repo)
- Tailwind CSS
- MetaMask or WalletConnect (browser wallet)
-
Clone the repository:
git clone https://github.com/yourusername/proof-of-mood.git cd proof-of-mood -
Install depedencies:
npm install
-
Start the development server:
npm start
π How to Use
Connect Your Wallet:
Make sure MetaMask (or another Ethereum wallet) is installed.
Click "Connect Wallet" on the homepage.
Daily Mood Check-In:
Select your current mood from the available options.
Click "Check-In" to submit it to the blockchain.
Confirm the transaction via your wallet.
View Mood Insights:
See your mood history displayed in charts.
Track mood trends over time.
See how long until your next available check-in.
## π§ Project Structure
```bash
src/
β
βββ abis/ # Contract ABI
β βββ ProofOfMood.json
β
βββ components/ # Reusable UI components
β βββ WalletNotConnected.js
β βββ DashboardHeader.js
β βββ MoodStatsCards.js
β βββ Charts.js
β βββ CheckInSection.js
β
βββ hooks/
β βββ useCountdown.js # Custom countdown hook
β
βββ utils/
β βββ helpers.js # Wallet & localStorage helpers
β βββ moodUtils.js # Fetch mood stats/history
β βββ constants.js # Contract address & constants
β
βββ ProofOfMoodDApp.js # Main DApp component
βββ index.js # App entry point
Contributions are welcome! Please open an issue first to discuss your ideas or proposed changes before submitting a pull request.