A collaborative savings platform built on the Celo blockchain that allows users to create and join savings pools, contribute funds, and withdraw when goals are reached.
- Pool Creation: Create savings pools with custom targets and contribution amounts
- Collaborative Saving: Join pools and contribute with others
- Smart Withdrawals: Automatic fund distribution when goals are met
- Real-time Tracking: Monitor pool progress and recent activities
- Wallet Integration: Connect with various Web3 wallets
- Mobile Responsive: Works seamlessly on all devices
- Frontend: poolfi.vercel.app
- Contract:
0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47(Celo Mainnet)
poolfi/
├── frontend/ # Next.js frontend application
│ ├── app/ # App router pages
│ ├── components/ # React components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility libraries
│ └── public/ # Static assets (images, icons, etc.)
├── contracts/ # Solidity smart contracts
│ ├── contracts/ # Contract source files
│ ├── scripts/ # Deployment scripts
│ ├── test/ # Test files
│ └── README.md # Contract documentation
└── README.md # This file
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Wagmi - React hooks for Ethereum
- RainbowKit - Wallet connection UI
- Viem - TypeScript interface for Ethereum
- Solidity - Smart contract language
- Celo - Deployed on Celo mainnet
- Node.js 18+
- Git
-
Clone the repository
git clone https://github.com/Nnadijoshuac/poolfi.git cd poolfi -
Install frontend dependencies
cd frontend npm install -
Set up environment variables
cp env.example .env.local
Update
.env.localwith your values:NEXT_PUBLIC_POOL_MANAGER_ADDRESS=0x7EF2e0048f5bAeDe046f6BF797943daF4ED8CB47 NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_id NEXT_PUBLIC_CELO_RPC_URL=https://forno.celo.org NEXT_PUBLIC_CELO_CHAIN_ID=42220
-
Start development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
-
Connect to Vercel
- Import your GitHub repository
- Set build command:
npm run build - Set output directory:
.next
-
Set Environment Variables
NEXT_PUBLIC_POOL_MANAGER_ADDRESSNEXT_PUBLIC_WALLETCONNECT_PROJECT_IDNEXT_PUBLIC_CELO_RPC_URLNEXT_PUBLIC_CELO_CHAIN_ID
-
Deploy
- Vercel will automatically deploy on every push to main
-
Connect Wallet
- Click "Connect Wallet" button
- Select your preferred wallet
- Connect to Celo network
-
Create a Pool
- Click "Create Pool" button
- Fill in pool details (name, target amount, contribution amount, max members)
- Confirm transaction
-
Join a Pool
- Browse available pools
- Click "Join Pool" on desired pool
- Confirm contribution transaction
-
Withdraw Funds
- When pool reaches target, click "Withdraw"
- Funds will be sent to your wallet
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
# Linting
npm run lint # Run ESLint
npm run type-check # Run TypeScript checks/app- Next.js App Router pages/components- Reusable React components/hooks- Custom React hooks for blockchain interaction/lib- Utility functions and configurations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built for the Celo Ecosystem
- Powered by Celo blockchain
- UI components from Tailwind CSS
- Wallet integration via RainbowKit
For support, email support@poolfi.com or join our Discord community.
PoolFi - Save together, achieve more! 🚀