It was in my 2nd year of intermediate, being passionate about organizing events, I decided to team up with some of my friends who's proactive like me to organize "Teachers' Day" as a gratitude towards our faculty. There were around 200+ faculty who deals for Intermediate, as our strength is pretty high.
To get all the permissions for this event, I had to write more than 50 letters to various departments and officials. I found it really hard to know the status of my request letter if submitted for further permissions. In other case, I had to wait for almost half of my day before the office of concerned for their presence to get the letter approved.
This whole process, I felt like hell!!!
That is where an idea striked my brain. How about digitalising this stuff?
There it comes!
Pathram - Document Management and Tracking System
Powered by XDC Network
First things first, this wasn't coined in my intermediate itself. xD
It took me three years to learn all technical stuff to solve my pain point with an innovative web based solution. To expand my idea to the outer organisations, our team brainstormed hard and arrived at a conclusion where Blockchain can be used to provide security for this solution.
What it does
Our idea is to implement tracking feature for every document which is sent for approval.
For additional security, we are implementing the authorization of documents using “Digital Signatures” with the help of XDC Network.
There will be certain predefined flows under every department which we call as EventType.
An applicant can raise a request under any of the EventTypes with the help of Admin. We call that request as Event.
For every EventType, there will be various set of authenticated users (also known as signers) to authorize the event.
After all the signers associated with particular event type duly approves, then the data is written to blockchain ledger and IPFS, making the event info. immutable.
How we built it
• We used NextJS and Firebase on web2 level to pull off the project.
• On web3 layer, for enhanced security, through multisignature protocol of Blockchain, we used XDC Network and IPFS to store the data tamper proof.
• Vercel is the place we hosted our application.
• Solidity, Tatum API, Hardhat are some additional tools we used to automate deployment of smart contract and wallet generation functionalities.
Challenges we ran into
As Blockchain, is quite a new area, we felt difficulty in finding the correct resources to learn deploying and interacting with Smart Contracts.
Deploying on other side, automation of deployment by passing dynamic data has eaten half of our day in the Hackathon.
Implementing IPFS was also a challenge we faced while building the project.
Accomplishments that we're proud of
First things first, we are proud to pull off this migration in just a 20hr scrum we organised for internal team.
Secondly, we are proud of one accomplishment from AICTE.
There was a similar problem statement floated Ministry of social justice and empowerment under the smart automation bucket of Smart India Hackathon 2022.
The problem statement goes as: Development & Implementation Of An Integrated Web-Based Office Document Management System i.e A Web-Based solution to track the status of document/file going through approval process in any department.
When we look closure, In this traditional process of document approval, it is difficult to track the status and movement of file until it returns to parent office. As it involves physical movement of files, we need huge workforce to handle, there's high chance of document getting tampered due to natural disasters. It is tough to store such huge num of files.
Last but not least, forgery is also a concern.
We addressed the same with our project named Dasthavej, which bagged us the First Prize and cash prize of 1 lakh for being the winner of Smart India Hackathon 2022.
What we learned
We learn a lot of new tools, frameworks, agile methodology, in the technical part.
Soft skills, networking and many other skills which enhanced us in terms of being a professional developer and an entrepreneur.
What's next for Pathram - Document Management and Tracking System
As there aren't any competitors with exact idea, we would want to deliver this solution for organizations as SAAS by limiting number of requests and support service in the trial version and doing some subscription model for additional benefits or per/account charge.
Let us take a Indian Penny i.e 1 rupee.
With that 1 buck, we can do anyone of the below operations:
1200+ Multisig Wallet Deployments
1100+ Event Creations
So this shows the efficiency and budget optimisation of our solution without compromising on security aspect.
Credentials for Try it out link
Private Key to import XDCPay Wallet: 0xeb7c9fc943ff1a810c606de373f3ca479656b869e518dbc3b1e53a293fbb2980
Private Key to import XDCPay Wallet: 0x93d7e68352f72ed356c796602a3610788e6b25c58ff3cc4e71ae06655e0b05a1
Contract Address of Sandbox Multisig Wallet: 0x7B7de5c2Ad5a9e3209d2388C7C7BBFc689105Ea6
Smart Contract Template Link: https://pastebin.com/zZPyakQ2
- Login using Admin Creds given above.
- Click on create event and choose "Sandbox" from the dropdown.
- Fill all the details and upload relavant documents. (Use only valid email, an alert will be sent to that.)
...and you are done!
Now, the process goes to Signers.
"Sandbox" is a hierarchical event type. This means, any particular signer can authorize the event only after their subordinated does it.
Before doing this, install XDCPay and import the two accounts with private keys given above.
- Login as Signer one and click on authorize button to see the events queued.
- Click on Approve Event to authorize it. On successful approval, your sign will be done on that request/event and next queued event will appear. (Note: Reject Event is not not yet added as of now. But the functionality is ready.)
- You can track the event details with it's ID which is shown while authorizing it.
As a admin, you can view all events that are created by them.
How to verify the data on Blockchain?
- Open apothem remix.
- Create contract by pasting the code shared above and compile it.
- Go to deployments section and paste "0x7B7de5c2Ad5a9e3209d2388C7C7BBFc689105Ea6" to get the setters and getters in GUI.
Here you can verify the events data by entering the sequence number of it under any getter or setter.
Feel free to reach out for any queries:
*Gurram Harshavardhan Netha
*Mohd. Abdul Rahman