Skip to content

Latest commit

 

History

History
122 lines (99 loc) · 4.05 KB

File metadata and controls

122 lines (99 loc) · 4.05 KB

Organization Analytics Integration - Summary

✅ Completed Enhancements

Data Integration

The OrganisationAnalytics.jsx page now fetches and displays comprehensive organization data from the server:

Organization Model Data (from OrganisationModel.js):

  • id - Organization ID
  • name - Organization name
  • description - Organization description
  • startDate - Campaign start date
  • endDate - Campaign end date
  • owner - Owner wallet address
  • isActive - Active status
  • forests - Array of forest IDs linked to organization
  • createdAt - Creation timestamp
  • updatedAt - Last update timestamp

Member Data (from OrganisationMemberModel):

  • userAddress - Member wallet address
  • role - Member role (owner/user/investor)
  • joinedAt - Join date
  • displayName - User display name
  • forestsRegistered - Number of forests registered by member
  • verifiedArea - Total verified area in hectares
  • totalCarbonCredits - Total carbon credits earned

Features Implemented

  1. Organization Forests Display

    • Fetches all forests linked to the organization
    • Shows forest ID, area, carbon credits, NDVI, and status
    • Grid layout with MagicCard components
  2. Member Statistics

    • Displays all organization members with their stats
    • Shows forests registered, verified area, and carbon credits per member
    • Filters investors separately
  3. Timeline Information

    • Start and end dates displayed
    • Organization status (Active/Inactive)
    • Clean card-based layout
  4. Comprehensive KPIs

    • Total members count
    • Total forests (organization + member forests)
    • Total verified area (aggregated from members)
    • Total carbon credits (aggregated from members)
    • Tokens raised (placeholder for future implementation)
  5. User-Specific Data (if member)

    • Shows user's own plots/forests
    • Only visible to organization members
    • Separate section from organization forests

Data Flow

OrganisationAnalytics Component
    ↓
fetchOrganisationById(orgId, account)
    ↓
Server: getOrganisationById handler
    ↓
Returns:
- organisation: {id, name, description, startDate, endDate, owner, isActive, forests[]}
- members: [{userAddress, role, joinedAt, displayName, forestsRegistered, verifiedArea, totalCarbonCredits}]
- isMember: boolean
    ↓
Component fetches organization forests using forest IDs
    ↓
Displays comprehensive analytics

UI Sections (in order)

  1. Header - Organization name, ID, member count
  2. Timeline Cards - Start date, end date, status
  3. Description - Organization about section
  4. Performance & Metrics - KPI grid with aggregated stats
  5. Organization Forests - All forests linked to organization
  6. Members - All organization members with stats
  7. Your Plots - User's forests (if member)
  8. Investors - Filtered investor members

API Endpoints Used

  • GET /api/organisations/:id - Fetch organization details
  • GET /api/forests/:id - Fetch individual forest data
  • GET /api/forests/getForests - Fetch user's forests (if member)
  • GET /api/registration-sessions/active/:orgId - Check active session

Next Steps (Optional Enhancements)

  1. Tokens Raised Tracking

    • Add tokensRaised field to OrganisationModel
    • Track investments via smart contract events
    • Update on each investment transaction
  2. Investment History

    • Create InvestmentModel to track all investments
    • Show investment timeline
    • Display top investors
  3. Forest Performance Charts

    • NDVI trends over time
    • Carbon credit accumulation graph
    • Area growth visualization
  4. Member Activity Feed

    • Recent member actions
    • Forest registrations timeline
    • Voting history

Current Status

Fully Integrated - All available data from the server is now displayed in the analytics page ✅ Responsive - Works on all screen sizes ✅ Real-time - Fetches latest data on page load ✅ Member-aware - Shows different data based on membership status