SelliFi : The New Sustainable Prosperity Framework

SelliFi is a dependable, open-source solution built to trace, formalize and secure financial journeys within informal supply chains in agriculture and forest-rich landscapes.

Go Node.js Docker React Native

SelliFi leverages blockchain technology and cutting-edge tools to solve the challenge of limited financial access for farmers, a pressing issue in the agriculture sector. Farmers often struggle to secure loans and financial aid due to the lack of a reliable credit rating system that reflects their economic potential and productivity. SelliFi addresses this by creating a verifiable “GreenScore” for each farmer, calculated based on the volume and quality of commodities they sell. This score acts as a quantifiable, secure measure of their productivity, which can be shared with banks, financial institutions, and agricultural firms to boost their credibility.

SelliFi Screenshot


Features

  • User Management: Separate registration flows for Gramsabha members, sellers, and companies.
  • Crop Procurement: CRUD operations for creating, updating, and managing crop collection indents.
  • Blockchain Integration: Secure data handling with potential blockchain integration for transaction verification.
  • Green Score: Calculate a green score for sustainable loan processing based on user data.

Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-central
    
  2. Install required apps to configure

Documentation

For full API documentation and usage guides, please visit the SelliFi Documentation.

Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature (git checkout -b feature-name).
  3. Commit your changes (git commit -m 'Add feature name').
  4. Push to the branch (git push origin feature-name).
  5. Open a pull request.

For more details, see CONTRIBUTING.md.

License

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

Contact

For inquiries or support, please open an issue or contact us at iofetechforall@gmail.com.

Introduction

SelliFi leverages blockchain technology and cutting-edge tools to solve the challenge of limited financial access for farmers, a pressing issue in the agriculture sector. Farmers often struggle to secure loans and financial aid due to the lack of a reliable credit rating system that reflects their economic potential and productivity. SelliFi addresses this by creating a verifiable “GreenScore” for each farmer, calculated based on the volume and quality of commodities they sell. This score acts as a quantifiable, secure measure of their productivity, which can be shared with banks, financial institutions, and agricultural firms to boost their credibility.

By utilizing blockchain, SelliFi ensures that every transaction and score calculation is immutable, transparent, and secure, fostering trust among financial institutions. This decentralized approach not only protects farmers’ data but also prevents any tampering or fraud, making GreenScore a reliable financial indicator. Additionally, SelliFi integrates with the latest technologies, including AI-driven data analysis and federated notification systems, to provide a seamless, real-time experience for farmers and lenders alike. By bridging the gap between farmers and financial support, SelliFi empowers rural communities, fostering sustainable growth and greater financial inclusion in the agricultural sector.

App

FPC Registration in Sellifi

Disclaimer: All images and fields are mandatory to fill for successful registration unless specified as optional. The Company Registration Number in Step 1 and Password filled in Step 3 will be your login credentials.

The FPC (Farmer Producer Company) registration process in the Sellifi app is implemented in a wizard-style interface, divided into three primary steps. Each step is designed to progressively collect specific details about the company. Below are the details of the registration process based on the attached screens.

Registration Process Screenshot


Step 1: Company’s Details

Fields to collect:

  1. Company Name
    • Input field for entering the name of the company.
  2. Company’s Registration Number
    • Input field for entering the official registration number of the company.
    • Note: This will be part of your login credentials.
  3. TAN Number
    • Input field for entering the company’s TAN (Tax Deduction Account Number).
  4. Upload TAN Document
    • Button to upload the TAN document (accepted formats: PDF, JPG, PNG, IMG, HEIC).
  5. GST Number
    • Input field for entering the company’s GST (Goods and Services Tax) number.
  6. Upload GST Document
    • Button to upload the GST document (accepted formats: PDF, JPG, PNG, IMG, HEIC).

Action:

  • Button labeled “Next” to proceed to the next step.

Step 2: Company’s Bank Details

Fields to collect:

  1. Bank Name
    • Dropdown field for selecting the name of the company’s bank.
  2. Bank Account Number
    • Input field for entering the bank account number of the company.
  3. Bank IFSC Code
    • Input field for entering the IFSC code of the company’s bank branch.
  4. SWIFT Code (Optional)
    • Input field for entering the SWIFT code for international transactions (optional).

Action:

  • Button labeled “Next” to proceed to the next step.

Step 3: Personal Details

Fields to collect:

  1. Full Name
    • Input field for entering the full name of the company’s owner.
  2. Designation
    • Input field for specifying the owner’s designation in the company.
  3. Aadhar Card
    • Input field for entering the Aadhar card number of the owner.
  4. Upload Aadhar Document
    • Button to upload the Aadhar document (accepted formats: PDF, JPG, PNG, IMG, HEIC).
  5. Create Password
    • Input field for creating a password for accessing the Sellifi account.
    • Note: This will be part of your login credentials.

Action:

  • Button labeled “Next” to complete the registration process.

Notes:

  • Each step allows users to progressively add details in a guided manner.
  • Validation is enforced for mandatory fields to ensure accuracy.
  • Document uploads support common file formats like PDF, JPG, PNG, IMG, and HEIC.

Indent Definition and Working in Sellifi App

Indent

An indent in the Sellifi app refers to a formal agreement for a specific time range where the Farmer Producer Company (FPC) agrees to collect commodities from farmers (referred to as sellers). This process involves defining the type of Non-Timber Forest Products (NTFPs), their unit configurations, and the associated costs. Indents streamline the procurement workflow, ensuring clarity and efficiency in commodity collection.

  • Please note : A new indent can only be created once existing is settled, i.e payments to the sellers will be processed using Payment Gateway Integration such as Razorpay

Example:

Let’s say the FPC is organizing the collection of bitter gourd. The indent may include the following unit configurations:

  • Labour Charge as one unit with a specified cost.
  • Per Kilogram as another unit with its price.
  • Per Tonne as an additional unit with its price.

The app will calculate the total cost based on the procured amount and the configured units. For example, if 100 kg is procured at a specified price per kilogram and additional labour charges apply, the app will compute the final total cost automatically.

Indent Example


Step 1: Create Indent

Fields to Collect:

  1. Name of the Procurement
    • Input field to name the procurement activity for identification.
  2. Date
    • Calendar input to select the start date of the procurement process.
  3. Select NTFP Type
    • Dropdown to choose the type of Non-Timber Forest Product (NTFP) to be procured.
  4. Unit Cost Configuration
    • Dynamic fields to configure:
      • Type Unit: Input for specifying the unit of the commodity.
      • Type Price per Unit: Input for specifying the price per unit.
    • The user can add multiple configurations using the +Add button.

Action:

  • Button labeled “Create Indent” to save and proceed with the indent creation process.

Step 2: Active Indent Management

Features:

  1. Name of the Procurement
    • Displays the name of the active procurement indent.
  2. Date
    • Displays the active date range for the procurement.
  3. Search Seller
    • Search bar to find and select a seller for the indent.
  4. +Add Seller
    • Button to associate a seller with the indent.
  5. Select the Unit Type
    • Dropdown to choose the unit type for the procurement transaction.
  6. +Add
    • Button to add the procurement details (unit type, price, etc.).
  7. Procured Amount
    • Input field for specifying the procured amount.

Calculated Field:

  • Total Value (INR)
    • Automatically calculated based on the unit type, quantity, and price.

Action:

  • Button labeled “Submit” to finalize the procurement details.

Notes:

  • Indent creation and management ensure streamlined procurement workflows.
  • Dynamic field additions for unit configuration allow flexibility in procurement planning.
  • The app automatically calculates total procurement costs to avoid manual errors.
  • Each active indent can be tracked and managed in real time through the app’s interface.

Seller Registration in Sellifi App

Disclaimer: The PAN card entered here will be linked to the Green Score. The initial score is set to 100 and will be updated based on commodity transactions with the Farmer Producer Company (FPC).

Seller Registration


Step 1: Personal Details

Fields to Collect:

  1. Full Name
    • Input field to enter the seller’s full name.
  2. Gender
    • Radio buttons to select “Male” or “Female.”
  3. Phone Number
    • Input field to enter the seller’s phone number.
  4. Aadhar Card
    • Input field to enter the Aadhar card number.
  5. Upload Aadhar Document
    • Button to upload the Aadhar document (accepted formats: PDF, JPG, PNG, IMG, HEIC).

Action:

  • Button labeled “Next” to proceed to the next step.

Step 2: Household Details

Fields to Collect:

  1. Are you the head of your house?
    • Options to select “Yes” or “No.”

Action:

  • Button labeled “Next” to proceed to the next step.

Step 3: Bank Details

Fields to Collect:

  1. Bank Name
    • Input field to enter the bank name.
  2. Bank Account Number
    • Input field to enter the bank account number.
  3. Bank IFSC Code
    • Input field to enter the IFSC code for the bank.
  4. PAN Card
    • Input field to enter the PAN card number.
  5. Upload PAN Document
    • Button to upload the PAN document (accepted formats: PDF, JPG, PNG, IMG, HEIC).

Action:

  • Button labeled “Next” to complete the seller registration process.

Final Step: Summary

Features:

  • A summary screen displaying the status of all completed steps:
    • Personal Details: Marked as completed once Step 1 is done.
    • Household Details: Marked as completed once Step 2 is done.
    • Bank Details: Marked as completed once Step 3 is done.

Action:

  • Button labeled “+Add” to finalize the registration.

Sellifi DPMS Marketplace

The Sellifi DPMS (Demand Planning and Management System) Marketplace is a platform designed for efficiently managing and publishing demands. Users can create, view, and manage listed demands seamlessly through an intuitive interface. Below is the detailed explanation of its features and functionalities.

Sellifi DPMS Marketplace

List of Demands

Features:

  1. ID
    • Unique identifier for each demand.
  2. Date Expected Completed
    • Displays the expected completion date for the demand.
  3. Title
    • Title or name of the demand for quick identification.
  4. Description
    • Brief description of the demand, outlining its purpose or requirements.
  5. Action
    • A “View Details” button that allows users to see more information about a specific demand.

Actions:

  • Users can navigate between pages to view a list of demands using the pagination controls at the bottom.

Publish Demand

Features:

  1. Publish Demand Button
    • Allows users to create and publish a new demand. Clicking this button takes the user to a form where demand details can be entered.

Fields to Collect:

  1. Title
    • Input field to specify the name of the demand.
  2. Description
    • Text area for entering detailed requirements or additional information about the demand.
  3. Expected Completion Date
    • Date picker to select the target date for completing the demand.

Action:

  • Button labeled “Publish” to finalize and publish the demand.

Summary

The Sellifi DPMS Marketplace simplifies demand management with a clear overview of all demands and provides tools for creating and managing them effectively. Its user-friendly interface ensures that users can navigate, create, and view demands without any difficulty.

admin

admin-2

Step 1 : At the home screen Click on Create Demand cd


cd

Step 1 : At the home screen Click on Proposal History. You should see relevant details of interested company to contact with them.

cd


fdsf

Step 1 : At the Home page of DPMS Marketplace check more details about interested demand uploaded by schools onboarded on SelliFi Platform & then click Submit Proposal Button

cd


Step 2 : Enter the details of the FPC Crednetials entered during account creation inside SelliFi Mobile App

cd


Step 3 : Enter the details and submit the propsal, So school Admin can see in their console

cd

Sellifi Developer Installation Guide

This guide provides detailed installation steps for each component in the Sellifi project.


Table of Contents

  1. sellifi-api-1 Installation
    • 1.1 Prerequisites
    • 1.2 Installation Steps
  2. sellifi-api-2 Installation
    • 2.1 Prerequisites
    • 2.2 Installation Steps
  3. sellifi-mobile-app Installation
    • 3.1 Prerequisites
    • 3.2 Installation Steps
  4. sellifi-mobile-app-food Installation
    • 4.1 Prerequisites
    • 4.2 Installation Steps
  5. sellifi-alertfuze Installation
    • 5.1 Prerequisites
    • 5.2 Installation Steps
  6. sellifi-hyperledger-fabric-net Installation
    • 6.1 Prerequisites
    • 6.2 Installation Steps

1. sellifi-api-1 Installation

sellifi-api-1 is a Go Fiber application serving as the server for the web client.

1.1 Prerequisites

  • Go (version 1.19 or above)
  • Redis (for caching)
  • PostgreSQL (for persistent storage)

1.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-api-1
    
  2. Set Up Environment Variables:

    • Copy .env.example to .env and fill in the required values:
      PORT=8080
      DATABASE_URL=your_postgresql_database_url
      REDIS_URL=your_redis_url
      
  3. Install Dependencies:

    go mod tidy
    
  4. Run Database Migrations (if applicable):

    go run migrate.go
    
  5. Start the Application:

    go run main.go
    
  6. Verify API is Running:

    • Go to http://localhost:8080 to check.

2. sellifi-api-2 Installation

sellifi-api-2 is a Go Fiber application handling green score services.

2.1 Prerequisites

  • Go (version 1.19 or above)
  • Redis (for caching)
  • PostgreSQL (for persistent storage)

2.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-api-2
    
  2. Set Up Environment Variables:

    • Copy .env.example to .env and configure values.
  3. Install Dependencies:

    go mod tidy
    
  4. Start the Application:

    go run main.go
    
  5. Verify API is Running:

    • Check http://localhost:8080.

3. sellifi-mobile-app Installation

sellifi-mobile-app is a React Native application used for forest commodity services.

3.1 Prerequisites

  • Node.js (version 14+)
  • npm or yarn
  • Android Studio (for Android)
  • Xcode (for iOS on macOS)

3.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-mobile-app
    
  2. Install Dependencies:

    npm install
    # OR
    yarn install
    
  3. Set Up Environment Variables:

    • Copy .env.example to .env and set values.
  4. Start the App on Android/iOS:

    • For Android:
      npx react-native run-android
      
    • For iOS (macOS only):
      npx react-native run-ios
      

4. sellifi-mobile-app-food Installation

sellifi-mobile-app-food is a React Native application designed to streamline requirements from schools to Farmer Producer Companies (FPCs).

4.1 Prerequisites

  • Node.js (version 14+)
  • npm or yarn
  • Android Studio (for Android)
  • Xcode (for iOS on macOS)

4.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-mobile-app-food
    
  2. Install Dependencies:

    npm install
    # OR
    yarn install
    
  3. Set Up Environment Variables:

    • Copy .env.example to .env and set values.
  4. Start the App on Android/iOS:

    • For Android:
      npx react-native run-android
      
    • For iOS (macOS only):
      npx react-native run-ios
      

5. sellifi-alertfuze Installation

sellifi-alertfuze is a Serverless Application Model (SAM) project.

5.1 Prerequisites

  • AWS CLI configured
  • AWS SAM CLI

5.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-alertfuze
    
  2. Install Dependencies:

    sam build
    
  3. Deploy the Application:

    • Use the following command to deploy:
      sam deploy --guided
      
    • Follow the guided prompts, providing AWS configurations.
  4. Verify Deployment:

    • Verify endpoints in the AWS Console.

6. sellifi-hyperledger-fabric-net Installation

sellifi-hyperledger-fabric-net is a Hyperledger Fabric project managed with Fablo.

6.1 Prerequisites

  • Docker and Docker Compose
  • Fablo CLI

6.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-hyperledger-fabric-net
    
  2. Start the Fabric Network:

    fablo up
    
  3. Install Chaincode (Smart Contracts):

    • Follow Fablo commands to install and approve chaincode on the network.
  4. Interact with the Network:

    • Use Fablo CLI or API endpoints to interact with the chaincode.
  5. Shut Down the Network:

    fablo down
    

Additional Notes

  • For environment-specific configurations, ensure each .env file is set up correctly for production, development, or testing environments.
  • Refer to each folder’s README.md file for component-specific instructions or troubleshooting.

This guide should cover basic installations and setup processes for each component in the Sellifi project. If there are any further questions, refer to individual project documentation within the repository.

sellifi-api-1 Installation

sellifi-api-1 is a Go Fiber application serving as the server for the web client.

1.1 Prerequisites

  • Go (version 1.19 or above)
  • Redis (for caching)
  • PostgreSQL (for persistent storage)

1.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-api-1
    
  2. Set Up Environment Variables:

    • Copy .env.example to .env and fill in the required values:
      PORT=8080
      DATABASE_URL=your_postgresql_database_url
      REDIS_URL=your_redis_url
      
  3. Install Dependencies:

    go mod tidy
    
  4. Run Database Migrations (if applicable):

    go run migrate.go
    
  5. Start the Application:

    go run main.go
    
  6. Verify API is Running:

    • Go to http://localhost:8080 to check.

sellifi-api-2 Installation

sellifi-api-2 is a Go Fiber application handling green score services.

2.1 Prerequisites

  • Go (version 1.19 or above)
  • Redis (for caching)
  • PostgreSQL (for persistent storage)

2.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-api-2
    
  2. Set Up Environment Variables:

    • Copy .env.example to .env and configure values.
  3. Install Dependencies:

    go mod tidy
    
  4. Start the Application:

    go run main.go
    
  5. Verify API is Running:

    • Check http://localhost:8080.

sellifi-mobile-app Installation

sellifi-mobile-app is a React Native application used for forest commodity services.

3.1 Prerequisites

  • Node.js (version 14+)
  • npm or yarn
  • Android Studio (for Android)
  • Xcode (for iOS on macOS)

3.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-mobile-app
    
  2. Install Dependencies:

    npm install
    # OR
    yarn install
    
  3. Set Up Environment Variables:

    • Copy .env.example to .env and set values.
  4. Start the App on Android/iOS:

    • For Android:
      npx react-native run-android
      
    • For iOS (macOS only):
      npx react-native run-ios
      

sellifi-mobile-app-food Installation

sellifi-mobile-app-food is a React Native application designed to streamline requirements from schools to Farmer Producer Companies (FPCs).

4.1 Prerequisites

  • Node.js (version 14+)
  • npm or yarn
  • Android Studio (for Android)
  • Xcode (for iOS on macOS)

4.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-mobile-app-food
    
  2. Install Dependencies:

    npm install
    # OR
    yarn install
    
  3. Set Up Environment Variables:

    • Copy .env.example to .env and set values.
  4. Start the App on Android/iOS:

    • For Android:
      npx react-native run-android
      
    • For iOS (macOS only):
      npx react-native run-ios
      

sellifi-alertfuze Installation

sellifi-alertfuze is a Serverless Application Model (SAM) project.

5.1 Prerequisites

  • AWS CLI configured
  • AWS SAM CLI

5.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-alertfuze
    
  2. Install Dependencies:

    sam build
    
  3. Deploy the Application:

    • Use the following command to deploy:
      sam deploy --guided
      
    • Follow the guided prompts, providing AWS configurations.
  4. Verify Deployment:

    • Verify endpoints in the AWS Console.

sellifi-hyperledger-fabric-net Installation

sellifi-hyperledger-fabric-net is a Hyperledger Fabric project managed with Fablo.

6.1 Prerequisites

  • Docker and Docker Compose
  • Fablo CLI

6.2 Installation Steps

  1. Clone the Repository:

    git clone https://github.com/Forest-Economy-Alliance/sellifi-central.git
    cd sellifi-hyperledger-fabric-net
    
  2. Start the Fabric Network:

    fablo up
    
  3. Install Chaincode (Smart Contracts):

    • Follow Fablo commands to install and approve chaincode on the network.
  4. Interact with the Network:

    • Use Fablo CLI or API endpoints to interact with the chaincode.
  5. Shut Down the Network:

    fablo down
    

References


Technological and Programming References

  1. React Native for Cross-Platform Mobile Development

    • Brown, A., & Wilson, J. (2020). Building Mobile Apps with React Native: A Cross-Platform Approach.
      Mobile Development Perspectives, 5(3), 92-105.
      Discusses the benefits of using React Native for cross-platform development, enabling code reuse across iOS and Android and offering a rich ecosystem for mobile app development.
  2. Containerization with Docker

    • Merkel, D. (2014). Docker: Lightweight Linux Containers for Consistent Development and Deployment.
      Linux Journal, 239, 2.
      Provides an introduction to Docker, its architecture, and how it facilitates isolated environments for deploying applications consistently across different platforms.
  3. Programming with Go

    • Donovan, A. A., & Kernighan, B. W. (2015). The Go Programming Language.
      Addison-Wesley Professional.
      A comprehensive guide to programming in Golang, covering core concepts, concurrency patterns, and efficient data handling, making it ideal for building high-performance web applications.
  4. Hyperledger Fabric for Blockchain Applications

    • Androulaki, E., Barger, A., & Bortnikov, V. (2018). Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains.
      Proceedings of the Thirteenth EuroSys Conference, 30, 1-15.
      Details the architecture of Hyperledger Fabric and its applications in creating private, permissioned blockchains, suitable for secure and reliable enterprise applications.
  5. AWS for Scalable Cloud Solutions

    • Amazon Web Services (2021). AWS Cloud Practitioner Essentials.
      Amazon Web Services, Inc.
      An official guide to understanding the services provided by AWS, covering cloud computing basics, scalability, and deployment strategies for modern applications.

  1. Blockchain in Agriculture

    • Moujahed, B., & Fakih, K. (2022). Blockchain Applications in the Agricultural Sector: A Comprehensive Review.
      Journal of Agricultural Informatics, 13(2), 123-135.
      This paper provides an overview of blockchain applications in agriculture, highlighting how decentralized technology can improve transparency, security, and efficiency across supply chains.
  2. Credit Scoring for Rural Finance

    • Babcock, B., & Lee, N. (2021). Credit Scoring in Rural Finance: Opportunities and Challenges.
      Rural Financial Perspectives, 9(1), 45-60.
      Discusses the impact of credit scoring on rural lending and financial access, with insights on the potential benefits and risks of adopting a data-driven scoring system for farmers.
  3. Green Finance and Sustainable Agriculture

    • UNEP. (2020). Green Finance for Sustainable Agriculture: Aligning Development Finance with Sustainable Farming Practices.
      United Nations Environment Programme.
      A report on the role of green finance in supporting sustainable agriculture, emphasizing the importance of financial products that align with environmental and social goals in agriculture.
  4. Data Security in Financial Technology

    • Mishra, S., & Jha, D. (2023). Blockchain and Data Privacy: Ensuring Security in Financial Transactions.
      Financial Technology Journal, 15(3), 67-89.
      Highlights blockchain’s role in enhancing data security for financial transactions, with particular attention to rural and underserved populations.
  5. Farmer Creditworthiness in Emerging Markets

    • World Bank Group. (2019). Agricultural Finance and Credit Access: A Global Perspective on Emerging Markets.
      World Bank Publications.
      Explores the barriers to credit access for farmers in emerging markets, offering insights into innovative solutions such as scoring systems and blockchain for secure lending.
  6. AI in Real-Time Data Analysis

    • Santos, F., & Kumar, R. (2021). Artificial Intelligence in Real-Time Data for Agriculture: Enhancing Decision-Making and Resource Allocation.
      Agricultural Data Insights, 8(2), 34-47.
      Provides insights into the use of AI for real-time data analysis in agriculture, discussing how it can enhance decision-making and productivity.