diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..7601f95 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,49 @@ +--- +name: Bug Report +about: Create a report to help us improve +title: '[BUG] ' +labels: bug +assignees: '' +--- + +## Bug Description +A clear and concise description of what the bug is. + +## Steps to Reproduce +1. Go to '...' +2. Click on '...' +3. Execute '...' +4. See error + +## Expected Behavior +A clear and concise description of what you expected to happen. + +## Actual Behavior +What actually happened instead. + +## Environment +- OS: [e.g., macOS 14.0, Ubuntu 22.04] +- Browser: [e.g., Chrome 120, Firefox 119] +- Node.js version: [e.g., 18.19.0] +- Network: [e.g., testnet, mainnet] +- Clarinet version: [e.g., 2.3.0] + +## Component Affected +- [ ] Smart Contract (Clarity) +- [ ] Frontend (Next.js) +- [ ] Quest Logic +- [ ] Reward System + +## Quest Context (if applicable) +- User's quest progress +- Current quest board +- Reward claimed +- Transaction hash + +## Logs +``` +Paste relevant error logs here +``` + +## Screenshots +If applicable, add screenshots to help explain your problem. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..acfba42 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,40 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '[FEATURE] ' +labels: enhancement +assignees: '' +--- + +## Problem Statement +A clear and concise description of what problem this feature would solve. +Ex. I'm always frustrated when [...] + +## Proposed Solution +A clear and concise description of what you want to happen. + +## Alternative Solutions +A clear and concise description of any alternative solutions or features you've considered. + +## Use Case +Describe the use case for this feature. How would it enhance the quest board experience? + +## Technical Implementation +If you have ideas on how to implement this feature, please share them here: +- Which component would be affected? (Contract/Frontend/Both) +- Smart contract changes needed +- Quest mechanics modifications +- Reward system impact + +## Impact on Quest System +How would this feature affect: +- Quest completion rates +- Reward distribution +- User engagement +- Leaderboard functionality + +## Examples +Provide examples of similar features in other gamification platforms. + +## Additional Context +Add any mockups, references, or other relevant information. \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..d67f60b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,47 @@ +## Description +Brief description of the changes in this PR. + +## Related Issue +Fixes #(issue number) + +## Type of Change +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] Documentation update +- [ ] Code refactoring +- [ ] Performance improvement +- [ ] Security enhancement + +## Changes Made +- Change 1 +- Change 2 +- Change 3 + +## Testing +Describe the tests you ran to verify your changes: +- [ ] Contract tests pass (`npm run clarinet:test`) +- [ ] Unit tests pass (`npm test`) +- [ ] Frontend builds successfully (`npm run build`) +- [ ] Manual testing performed +- [ ] New tests added for new functionality + +## Component Checklist +- [ ] Smart Contract (Clarity) + - [ ] Gas optimization considered + - [ ] Quest logic verified + - [ ] Reward mechanics tested + - [ ] Backward compatibility maintained +- [ ] Frontend (Next.js) + - [ ] Responsive design maintained + - [ ] Quest flow verified + - [ ] Reward display accurate +- [ ] Tests (Vitest) + - [ ] Unit test coverage maintained + - [ ] Edge cases covered (quest completion, rewards, etc.) + - [ ] Integration tests included + +## Quest System Impact (if applicable) +- [ ] Quest mechanics changes tested +- [ ] Reward distribution verified +- [ ] User progress correctly updated \ No newline at end of file diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index f7fa87e..3ffadb0 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -13,8 +13,15 @@ const geistMono = Geist_Mono({ }); export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: "Stacks Quest Boards - Learn Stacks Blockchain Development", + description: "Comprehensive learning platform for Stacks blockchain development. Master smart contracts, DeFi protocols, NFTs, and frontend integration with hands-on tutorials and documentation.", + keywords: ["Stacks", "Blockchain", "Smart Contracts", "Clarity", "DeFi", "NFT", "Web3", "Cryptocurrency"], + authors: [{ name: "Stacks Community" }], + openGraph: { + title: "Stacks Quest Boards - Learn Stacks Blockchain Development", + description: "Your comprehensive learning platform for Stacks blockchain development", + type: "website", + }, }; export default function RootLayout({ diff --git a/frontend/app/page.tsx b/frontend/app/page.tsx index 295f8fd..726e83d 100644 --- a/frontend/app/page.tsx +++ b/frontend/app/page.tsx @@ -1,65 +1,210 @@ -import Image from "next/image"; +import Link from "next/link"; export default function Home() { + const learningPaths = [ + { + title: "Stacks Fundamentals", + description: "Learn the basics of Stacks blockchain, transactions, and smart contracts", + modules: ["What is Stacks?", "Transactions", "Clarity Language", "Smart Contracts"], + color: "from-blue-500 to-purple-600" + }, + { + title: "DeFi Development", + description: "Build decentralized finance applications on Stacks", + modules: ["Token Standards", "DEX Integration", "Lending Protocols", "Yield Farming"], + color: "from-green-500 to-teal-600" + }, + { + title: "NFT Creation", + description: "Create and manage non-fungible tokens on Stacks", + modules: ["SIP-009 Standard", "Badge NFTs", "Metadata Management", "Marketplaces"], + color: "from-orange-500 to-red-600" + }, + { + title: "Frontend Integration", + description: "Connect web applications to Stacks blockchain", + modules: ["Wallet Connection", "@stacks/connect", "@stacks/transactions", "React Hooks"], + color: "from-indigo-500 to-blue-600" + } + ]; + + const featuredResources = [ + { + title: "Badge NFT Contract", + description: "Complete SIP-009 compliant NFT implementation with admin controls", + link: "/docs/badge-nft", + type: "Contract Documentation" + }, + { + title: "Clarity 4 Features", + description: "Latest Clarity language features including stacks-block-time and post-conditions", + link: "/stacks/stacks-shards/082_clarity_4_is_now_live", + type: "Technical Guide" + }, + { + title: "Frontend Integration", + description: "Complete guide to building Stacks-connected web applications", + link: "/stacks/stacks-essentials/078_build_a_frontend", + type: "Tutorial" + } + ]; + return ( -
-
- Next.js logo -
-

- To get started, edit the page.tsx file. +
+ {/* Hero Section */} +
+
+

+ Stacks Quest Boards

-

- Looking for a starting point or more instructions? Head over to{" "} - + Your comprehensive learning platform for Stacks blockchain development. + Master smart contracts, DeFi protocols, NFTs, and frontend integration through + hands-on tutorials and documentation. +

+
+ - Templates - {" "} - or the{" "} - + - Learning - {" "} - center. + View Resources + +
+
+ + {/* Learning Paths */} +
+
+

+ Learning Paths +

+

+ Structured learning journeys to master Stacks development +

+
+ +
+ {learningPaths.map((path, index) => ( +
+
+
+

{path.title}

+

{path.description}

+
    + {path.modules.map((module, moduleIndex) => ( +
  • +
    + {module} +
  • + ))} +
+ +
+
+ ))} +
+
+ + {/* Featured Resources */} +
+
+

+ Featured Resources +

+

+ Essential documentation and guides for Stacks developers +

+
+ +
+ {featuredResources.map((resource, index) => ( +
+
+ + {resource.type} + +
+

+ {resource.title} +

+

+ {resource.description} +

+ + Read more → + +
+ ))} +
+
+ + {/* Stats */} +
+

Join the Stacks Community

+

+ Connect with developers building the future of decentralized applications

+
+
+
500+
+
Learning Modules
+
+
+
50+
+
Smart Contracts
+
+
+
10K+
+
Developers
+
+
-
- - Vercel logomark - Deploy Now - - - Documentation - + + {/* Call to Action */} +
+

+ Ready to Start Building? +

+

+ Dive into our comprehensive documentation and start your Stacks development journey today. +

+
+ + Official Docs + + + GitHub + +
-

+
); } diff --git a/frontend/package.json b/frontend/package.json index 330bf05..a33e006 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,12 +1,41 @@ { - "name": "frontend", + "name": "stacks-quest-boards-frontend", "version": "0.1.0", + "description": "A Next.js frontend application for Stacks blockchain-based quest boards with gamification and reward systems", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", - "lint": "eslint" + "lint": "eslint", + "lint:fix": "eslint --fix", + "type-check": "tsc --noEmit", + "test": "jest", + "test:watch": "jest --watch" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AdekunleBamz/stacks-quest-boards.git", + "directory": "frontend" + }, + "keywords": [ + "stacks", + "blockchain", + "nextjs", + "react", + "web3", + "quest-boards", + "gamification", + "typescript" + ], + "author": "Adekunle Bamz", + "license": "MIT", + "bugs": { + "url": "https://github.com/AdekunleBamz/stacks-quest-boards/issues" + }, + "homepage": "https://github.com/AdekunleBamz/stacks-quest-boards#readme", + "engines": { + "node": ">=18.0.0" }, "dependencies": { "next": "16.0.7", diff --git a/package.json b/package.json new file mode 100644 index 0000000..0ed3834 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "stacks-quest-boards", + "version": "1.0.0", + "description": "A Stacks blockchain-based quest board platform with gamification, smart contracts, and reward systems", + "private": true, + "workspaces": [ + "frontend", + "stacks-quest-boards" + ], + "scripts": { + "install:all": "npm install && cd frontend && npm install && cd ../stacks-quest-boards && npm install", + "dev:frontend": "cd frontend && npm run dev", + "build:frontend": "cd frontend && npm run build", + "test:contracts": "cd stacks-quest-boards && npm test", + "test:all": "cd stacks-quest-boards && npm run test:report", + "lint:frontend": "cd frontend && npm run lint", + "clarinet:check": "cd stacks-quest-boards && clarinet check", + "clarinet:test": "cd stacks-quest-boards && clarinet test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AdekunleBamz/stacks-quest-boards.git" + }, + "keywords": [ + "stacks", + "blockchain", + "clarity", + "quest-boards", + "gamification", + "smart-contracts", + "rewards", + "defi", + "nextjs", + "react" + ], + "author": "Adekunle Bamz", + "license": "MIT", + "bugs": { + "url": "https://github.com/AdekunleBamz/stacks-quest-boards/issues" + }, + "homepage": "https://github.com/AdekunleBamz/stacks-quest-boards#readme", + "engines": { + "node": ">=18.0.0" + } +} \ No newline at end of file diff --git a/stacks-quest-boards/package.json b/stacks-quest-boards/package.json index 35ca485..061a895 100644 --- a/stacks-quest-boards/package.json +++ b/stacks-quest-boards/package.json @@ -1,17 +1,43 @@ { - "name": "stacks-quest-boards-tests", + "name": "stacks-quest-boards-contracts", "version": "1.0.0", - "description": "Run unit tests on this project.", - "type": "module", + "description": "Smart contracts for Stacks blockchain-based quest boards with gamification and reward distribution", "private": true, "scripts": { + "install:all": "npm install", "test": "vitest run", + "test:watch": "chokidar \"tests/**/*.ts\" \"contracts/**/*.clar\" -c \"npm run test:report\"", "test:report": "vitest run -- --coverage --costs", - "test:watch": "chokidar \"tests/**/*.ts\" \"contracts/**/*.clar\" -c \"npm run test:report\"" + "clarinet:check": "clarinet check", + "clarinet:test": "clarinet test", + "clarinet:console": "clarinet console" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AdekunleBamz/stacks-quest-boards.git", + "directory": "stacks-quest-boards" + }, + "keywords": [ + "stacks", + "clarity", + "blockchain", + "quest-boards", + "gamification", + "smart-contracts", + "rewards", + "defi" + ], + "author": "Adekunle Bamz", + "license": "MIT", + "bugs": { + "url": "https://github.com/AdekunleBamz/stacks-quest-boards/issues" }, - "author": "", - "license": "ISC", + "homepage": "https://github.com/AdekunleBamz/stacks-quest-boards#readme", + "engines": { + "node": ">=18.0.0" + }, + "type": "module", "dependencies": { "@stacks/clarinet-sdk": "^3.9.0", "@stacks/transactions": "^7.2.0",