Skip to content

Framino-eth/framino-web

Repository files navigation

Framino - Web3 Hiking Platform πŸ”οΈ

Frame 3

A revolutionary platform that combines outdoor hiking adventures with blockchain technology, rewarding hikers with crypto tokens for their trail completions and enabling a decentralized hiking ecosystem.

🌟 Overview

Framino transforms the hiking experience by integrating Web3 technology with outdoor adventures. Hikers can discover trails, complete challenges, earn cryptocurrency rewards, and participate in a community-driven ecosystem that promotes outdoor activities and environmental conservation.

πŸš€ Features

πŸ₯Ύ Core Hiking Features

  • Trail Discovery: Explore curated, community-verified hiking trails with detailed information
  • Interactive Maps: Mapbox-powered trail visualization with elevation profiles
  • QR Code Checkpoints: Scan trail markers to verify completion and progress

🌐 Web3 Integration

  • Wallet Connection: MetaMask and WalletConnect support for seamless crypto integration
  • NFT Rewards: Mint unique trail completion badges as ERC-721 tokens
  • Token Economy: Earn FRAMINO tokens for trail completions and community participation
  • Gasless Transactions: Account abstraction with paymaster for user-friendly experience

πŸ‘₯ Community Features

  • Hiker Profiles: Showcase achievements, completed trails, and collected badges
  • Social Sharing: Connect with fellow hikers and share trail experiences
  • Trail Verification: Community-driven trail validation system

πŸ› οΈ Tech Stack

Frontend

  • Framework: Next.js 15 with App Router
  • Language: TypeScript 5.0+
  • Styling: Tailwind CSS + Shadcn/ui components
  • Maps: Mapbox GL JS

Backend & APIs

  • API Routes: Next.js App Router API endpoints

Web3 & Blockchain

  • Smart Contracts: Solidity contracts for NFT minting and token distribution
  • Web3 Library: Wagmi + Viem for blockchain interactions
  • Wallet Integration: RainbowKit for wallet connection
  • Account Abstraction: Biconomy SDK for gasless transactions
  • Token Standards: ERC-721 (NFTs), ERC-20 (utility tokens)

πŸ“ Project Structure

framino-web/
β”œβ”€β”€ public/                     # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                   # Next.js App Router
β”‚   β”‚   β”œβ”€β”€ layout.tsx         # Root layout with providers
β”‚   β”‚   β”œβ”€β”€ page.tsx           # Landing page
β”‚   β”‚   β”œβ”€β”€ admin/             # Shop admin interface
β”‚   β”‚   β”‚   └── page.tsx       # Item selection
β”‚   β”‚   β”œβ”€β”€ hiker/             # Hiker dashboard
β”‚   β”‚   β”‚   └── page.tsx       # Profile & achievements
β”‚   β”‚   β”œβ”€β”€ church/            # Church admin interface
β”‚   β”‚   β”‚   └── page.tsx       # Mark journey Complete
β”‚   β”‚   └── api/               # Backend API routes
β”‚   β”‚       └── framino/       # Blockchain integration APIs
β”‚   β”œβ”€β”€ components/            # React components
β”‚   β”‚   β”œβ”€β”€ ui/               # Shadcn/ui base components
β”‚   β”‚   β”œβ”€β”€ BadgeGallery.tsx  # NFT collection display
β”‚   β”‚   β”œβ”€β”€ CameraScannerNew.tsx # QR code scanning
β”‚   β”‚   β”œβ”€β”€ MapboxMap.tsx     # Interactive maps
β”‚   β”‚   β”œβ”€β”€ MapSection.tsx    # Map integration
β”‚   β”‚   β”œβ”€β”€ QRDonationScanner.tsx # Donation scanning
β”‚   β”‚   └── WalletConnectButton.tsx # Web3 connection
β”‚   └── lib/                  # Utility libraries
β”‚       β”œβ”€β”€ abi/              # Smart contract ABIs
β”‚       β”œβ”€β”€ models/           # Data models
β”‚       β”œβ”€β”€ services/         # Business logic
β”‚       β”œβ”€β”€ utils/            # Helper functions
β”‚       β”œβ”€β”€ constants.ts      # App constants
β”‚       β”œβ”€β”€ utils.ts          # Shared utilities
β”‚       └── wagmi.ts          # Web3 configuration

🎨 Design System

Color Palette

/* Nature-inspired color scheme */
:root {
  --forest-green: #2d5a3d;
  --sage-green: #87a96b;
  --earth-brown: #8b4513;
  --sky-blue: #87ceeb;
  --stone-gray: #696969;
  --sunrise-orange: #ff7f50;
}

Component Architecture

  • Atomic Design: Components organized by complexity (atoms β†’ molecules β†’ organisms)
  • Shadcn/ui Base: Consistent, accessible component foundation
  • Custom Extensions: Hiking-specific components (BadgeGallery, MapSection, QRScanner)
  • Responsive Design: Mobile-first approach with progressive enhancement

πŸš€ Getting Started

Prerequisites

  • Node.js 18.0 or higher
  • npm or yarn package manager
  • MetaMask or compatible Web3 wallet
  • Mapbox account (for maps integration)

Installation

  1. Clone the repository:

    git clone https://github.com/your-org/framino-web.git
    cd framino-web
  2. Install dependencies:

    npm install
  3. Environment Setup:

    cp .env.example .env.local

    Configure your environment variables:

    # Mapbox Configuration
    NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN=your_mapbox_token
    
    # Blockchain Configuration
    NEXT_PUBLIC_CHAIN_ID=84532  # Base Sepolia testnet
    NEXT_PUBLIC_CONTRACT_ADDRESS=0x...
    
    # Biconomy Account Abstraction
    NEXT_PUBLIC_BICONOMY_PAYMASTER_API_KEY=your_api_key
    NEXT_PUBLIC_BUNDLER_URL=your_bundler_url
    
    # IPFS Configuration (for NFT metadata)
    PINATA_API_KEY=your_pinata_key
    PINATA_SECRET_API_KEY=your_pinata_secret
  4. Run the development server:

    npm run dev
  5. Open your browser: Navigate to http://localhost:3000

πŸ“‹ Development Commands

# Development
npm run dev          # Start development server
npm run build        # Build for production
npm start           # Start production server

πŸ”§ Configuration

Mapbox Setup

  1. Create account at Mapbox
  2. Generate access token
  3. Add token to environment variables
  4. Configure map styles in src/lib/constants.ts

Web3 Configuration

  1. Configure supported chains in src/lib/wagmi.ts
  2. Set up contract addresses in src/lib/constants.ts

🎯 Roadmap

Phase 1: Foundation

  • Basic hiking trail interface
  • Web3 wallet integration
  • NFT badge minting system
  • QR code scanning functionality
  • Shop redemption system

Phase 2: Enhancement

  • Trail discovery with advanced filtering
  • User profile system with statistics
  • Social features and community
  • Mobile app development
  • Advanced tokenomics implementation

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

Development Contributions

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes following our coding standards
  4. Write tests for new functionality
  5. Submit a pull request

Code Standards

  • TypeScript: Strict mode enabled, no any types
  • ESLint: Follow the configured rules
  • Prettier: Auto-format on save
  • Commit Messages: Use conventional commits format

Trail Data Contributions

  • Submit new trail data via GitHub issues
  • Include GPS coordinates, difficulty rating, and photos
  • Verify trail information accuracy
  • Follow our trail data schema

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Framino web apps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors