Inspiration
The core business of many SMEs are making stuff, or small manufacturing. That means they will have a lot basic things to make their product with, let's say a SME is making a printed T-Shirt, then the business will have a supplier to get the shirt, the paint, and maybe the printing screen for it. And in small scale you can easily tracks of all of the distributors, and goods coming in, but as they scale, it became a hassle to handle manually. So that's why I make trackr to help with the supply and asset tracking.
What it does
trackr is supply chain management in the chain!
Basically the core of trackr is supply and asset management, where an asset have its own id. And that asset (could be anything) can change hands to another person in the trackr system. It tracks all of the changing hands of all the goods, and it does this on blockchain. Which means, all the data are verifiable because it is immutable (cannot be changed). Something like an NFT, but there can be only one owner, and the owner can track where it has changes hands, and prevent it changing hands whenever.
So from that core system the use case are quite vast! While basic, but it works well on the core things it does. One main use case we think about is making a unified platform where manufacturer of goods can post of a goods made for some customer or even other manufacturer. This way the owner of the goods can see from the manufacturer where it has changes hands, making tracking and accountability easy. Especially when the goods are altered, they can check one by one who has custody of the goods.
Another use is case is actually asset lending. Some SMEs I see is doing business on car rental, or other kind of rental where there are temporary change of hands of an assets or goods. With trackr they can see when it was lent, lock the asset while on lending (making sure it is known that the last responsible person is the one lending the asset), and when it has given back custody of that asset, they can track when it is back to their control.
How I built it
trackr is built on top of smart contract as its "backend" where it handles the datastore, and logic of the app itself. The smart contract are based on Ethereum blockchain, and are written in Solidity programming language. To help with all of deployment of the smart contract I use Truffle and Ganache to create a local Ethereum blockchain.
But most of the time are spent on the frontend that are based on React. React are paired up with ether.js where it handles all of the contract calling (think of it are like HTTP request to a JSON API) to get the data, and changes the data. While to handle the account we uses Metamask in the demonstration.
So basically just how an Decentralized App works! We have an interface that does not interact with a single entity owning the server. Instead it interact with a decentralized network (in this case Ethereum) where the logic and datastore are on the smart contract in the Ethereum network itself.
Challenges I ran into
Nearly all of the challenges comes from the frontend, but here are the list of things I ran into in 24h of coding this app,
- How to connect the smart contract and the frontend
- How to make that connection easy, and not a whole mess of different library codes mashed up together (I don't have time for that!)
- Why does the button does not get centered! (a html/css classic)
- Making the smart contract somehow, a little more scalable, and not too expensive
Accomplishments that I'm proud of
Here's the thing I'm really proud of making this app,
- Making this app in 24h, last Garudahacks it was me and my teammates and we can't even come close to finishing an (objectively) easier app to make
- Learn the flow and structure of a Distributed Apps, because what I make before are mostly a more "traditional" apps
- Use one of the most hype tech stacks currently! (Dapps sure are quite a cool tech stacks)
What I learned
What I learned a lot are having knowledge in this shorter hackathon are quite vital, because trying something new is not really that possible. Well it is possible, but you'll hate every second you're doing it, and cursing yourself why you don't just use the things you already knows (at least for me).
And also the other big things are to start comes up with idea early and when the coding session starts, be sure to start. Whether it is just initializing your React app, or creating a file, starting and putting yourself in the position to build the product you're making are important!
While in the technical aspect I do get to learn how a decentralized app works. From making the logics behind it, deploying it to the testnet, and integrating it with the frontend application. Suprisingly there's a lot of things that are aligned with building the more "traditional" apps, and decentralized apps. Just how you would do it is the things that are different.
What's next for trackr
I think at the current state of trackr, it is too broad, or too general. I mean it was made to handle the core problem of supply management, but I think what should be next with trackr is to make it as the basis of more focused supply chain management system. And for now I think hosting it on the mainnet (the main network of Ethereum) are not exactly viable for the masses in Indonesia at least. So the next iteration of it if I would expand it are to make it private with even more familiar account management with simple logins.
But if you're interested of making trackr works with your use case, contact me at fauzan@trackr.biz!
Demo Notes
The demo shows the app as being in localhost, as I was unable to get 2 account setup in Görli Testnet in time for the demo. But the hosted app in trackr.biz, the smart contract are deployed in Görli Testnet.
Log in or sign up for Devpost to join the conversation.