Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Background 

By the end of 2022, we released our mobile application to the community. Open sourcing is a fundamental aspect of our vision, and there are evident benefits associated with it. We have been developing the Trace app since the second half of 2021 and have tested it on the field for over two years with two farmer cooperatives in Indonesia.

The application is designed to cater to collectors who traverse remote farmlands to acquire harvested goods. Our primary aim was to ensure the app's simplicity. It is developed using React and primarily serves two key functions: enrolling farmers and recording their on-site transactions. When enrolling farmers, collectors attach an NFC/QR code-based card, which we provided them in advance, and share it with the farmers. These cards serve as a means for farmers to validate transactions when delivering their products and confirming payments. In essence, the app streamlines the collection process and facilitates farmer-verified payments. Additionally, the app offers support for capturing sales receipt photos in case a farmer forgets their card. It operates seamlessly both online and offline. When connected to the internet, the app syncs with Trace, allowing users to access and download all transactions online by logging into Trace.

The app was highly appreciated by cooperatives, and the farmers were enthusiastic about the cards. Since the launch, it has effectively digitised close to 15,000 Nutmeg transactions from rural Indonesian islands. To enhance fairness and transparency, we introduced a digital passbook that is connected to the card. This passbook allows farmers to conveniently access and review their past transactions and payments online by using their card numbers.

We are very much aware open source app without the backend is kind of useless. But we already knew open-sourcing the complex Trace backend is not the ideal solution if you really want people to use it. So we decided to create a small portion of Trace which only covers the basics required to run the app. 

As we contemplated the idea, we came to the realisation that we could employ the same system to establish connections between external systems and data sources with Trace. This would essentially transform it into a central hub for both inflow and outflow of data within the Trace ecosystem.

Goals and Objectives

Our goal with Trace Connect is to achieve the following objectives:

  1. Standalone Backend for Trace Mobile App: Serve as a backend for the Trace mobile app, allowing users to deploy their own cloud-based instances of the app independently of the main Trace system. This will include the configurations like premium payments and access control.

  2. Data Synchronisation: Guarantee smooth data synchronization between the Trace mobile app, Trace system, and other external systems, enabling effortless two-way data transfer. Enable the easy import of data from external sources into Trace, as well as the efficient export of data from Trace to external systems, to ensure a fluid exchange of data throughout the ecosystem.

  3. Integration Hub: Act as a central integration hub, facilitating the exchange of data between external systems and ERPs with Trace through APIs and the Connect SDK.

  4. Additional Data Collection Agent: Enable the Trace app to support the creation of new or extra fields for data gathering purposes. While Connect will function as a data collection agent, focusing mainly on basic farmer data and transactions, it is not intended for use as a survey instrument. However, it can serve as a central point for integrating additional data from various systems.

  5. Modular and Scalable:Design the system to be modular and scalable, allowing for future expansion and integration with evolving technologies and requirements..

System Architecture 

We have designed the connect server to  run as a standalone system so that anyone can host it and connect the tracd mobile app to it. The app can be used to collect the data from filed and then the server can be synced the other systems including trace server. Also we open the same apis used by the connect mobile app so it can serve its dual purpose. The data can be fed to the connect either from the mobile app or your erp solution. Similarly the data can be pulled out form it either to trace or any erp system. 

Roadmap

  1. November 2023: initial deployment and like it to the mobile app. Also enable sync services 

  2. December 2023: publishing the apis and first open source release 

  3. Jan 2024: publishing apis and external server connection

  4. Feb 2024: enable Trace sso

  5. May 2024: first python sdk release 

Data structure 

In the connect data base structure we focus mainly on two main components, companies and it’s farmers and their transaction. Additionally there are database table to configure and customise the app, set permium payment to farmers and some access control details

In the farmer side we are collecting the following fields

Transaction fileds are like this

Permium table

Concept

  • Stand-alone module to handle all the incoming and outgoing data to Trace

  • It will get connected to the mobile app via APIs and fetch data then sync it to trace

  • It will also be connected to a system like PTCAN and then send and receive data

  • It has its own DB and a fronted and possible to self-host

  • There will be a Python lib to manage all the interactions to the standalone module

  • This python lib is installed on trace server and other systems to push and pull data

  • Users can also do mobile app customizations in the module like custom forms

  • It handles the transactions and connections from a single company perspective.

Flow

  • A company is first added/synced to the connect db

  • All the buyers and suppliers are also added/synced to the connect db

  • Company users will get added to the connect db

  • They can access the app after connecting the app to the connect server

  • They can add products under the company from the interface

Modules

  • Nodes/companies: Module to manage all the companies/farmers. Each company will have many to many relations for suppliers and buyers (self)

  • Transactions: Only external transactions. Each transaction will have a

  • No labels