A comprehensive Web3 application for creating and managing quest-based gaming achievements with soulbound NFT badges.
This monorepo consists of three main components:
- questlog-frontend โ React/TypeScript web application
- questlog-contracts โ Solidity smart contracts (Foundry)
- questlog-backend โ TypeScript backend services and APIs
npm run install:all # Install all dependenciescp questlog-frontend/.env.example questlog-frontend/.env
cp questlog-backend/.env.example questlog-backend/.env
cp questlog-contracts/.env.example questlog-contracts/.envnpm run validate:all # Check envs, dependencies, and buildnpm run dev:frontend # Frontend dev server
npm run dev:backend # Backend dev server
npm run deploy:contracts # Deploy contracts| Layer | Technologies |
|---|---|
| Frontend | React 18, TypeScript, Vite, Wagmi, RainbowKit, Tailwind CSS |
| Backend | Supabase, PostgreSQL, Discord API, IPFS |
| Blockchain | Solidity, Foundry, OpenZeppelin, Lisk |
| Deployment | Netlify, Supabase Cloud, Lisk Sepolia |
npm run install:allโ Install dependencies across modulesnpm run build:allโ Build for productionnpm run test:allโ Run testsnpm run lint:allโ Lint codebasenpm run cleanโ Clear builds & node_modulesnpm run validate:allโ Full validation (env, deps, build, tests)npm run setup:devโ Complete development setupnpm run dev:frontend/npm run dev:backendโ Start dev serversnpm run deploy:contractsโ Deploy smart contracts
questlog/
โโโ questlog-frontend/ # React app (UI, services, types)
โโโ questlog-backend/ # Backend (Supabase, Discord, IPFS)
โโโ questlog-contracts/ # Smart contracts (Solidity)
โโโ scripts/ # Validation utilities
โโโ package.json # Monorepo config
- Discord OAuth for authentication
- Supabase for synced user data
- IPFS for decentralized metadata
- Blockchain for permanent proof of achievement
- Seamless UX blending Web2 familiarity with Web3 ownership
graph LR
A[User Action] --> B[Frontend UI]
B --> C[Backend Services]
C --> D[Database Storage]
B --> E[Smart Contracts]
E --> F[Blockchain Storage]
F --> G[NFT Badge Minted]
- User Interaction: Users interact with the React frontend.
- Data Processing: Quest data processed and stored in Supabase.
- Blockchain Integration: Badge minting triggered via smart contracts.
- Permanent Storage: Achievements stored as soulbound NFTs on Lisk.
- Validate Environment
npm run validate:env- Build & Test
npm run build:all
npm run test:all- Deploy (Order Matters)
- Contracts โ
cd questlog-contracts && npm run deploy - Backend โ Deploy via Railway, Render, or Vercel
- Frontend โ
cd questlog-frontend && vercel --prod
- Contracts โ
(See detailed deployment guides in module READMEs.)
- Smart Contracts: Soulbound tokens, strict owner minting, 95%+ test coverage
- Backend: Supabase RLS, env validation, API rate limits, secure OAuth
- Frontend: Type-safe API calls, wallet security, XSS prevention
- Fork & Clone
git clone https://github.com/kashiwagiren/Questlog.git && cd Questlog- Setup Dev Environment โ
npm run setup:dev - Create Feature Branch โ
git checkout -b feature/your-feature - Develop & Run Dev Servers โ
npm run dev:frontend/npm run dev:backend - Validate & Lint โ
npm run validate:all && npm run lint:all - Submit Pull Request
โ
Strict TypeScript mode
โ
90%+ test coverage
โ
ESLint + Prettier formatting
โ
Updated documentation with every architectural change
- Build Issues:
npm run clean && npm run install:all && npm run validate:all- Dependency Conflicts:
npm run validate:deps- Soulbound NFT badges
- Quest creation & management
- Discord OAuth integration
- Multi-chain deployment
- Advanced quests & verification
- Mobile app (React Native)
- Quest provider SDK
- Template marketplace
MIT License
Built with โค๏ธ for the Web3 community