To read all the documentations and work flow refer to the 'docs' directory
- JavaScript
- Solidity
- Circom
- ReactJS
- TailwindCSS
- NodeJS
- Web3.js
- MongoDB
- IPFS
- PinataSDK
- GraphQL
- SocketIO
- ZK Snarks
- Redis
Either MongoDB should be available on your local or make a account in MongoAtlas to use it without dowloading
Arduino IDE installed on the computer with which the ESP32 microcontroller will be connected using MicroUSB cable
cd app/client
npm install
cd app/server
npm install
PORT= " the port where your server-side express application will run"
URL= "URL of the client side website"
PINATA_API_KEY= " received from the official website of Pinata "
PINATA_SECRET_API_KEY= " received from the official website of Pinata "
GATEWAY_URL= " received from the official website of Pinata "
PINATA_JWT= " received from the official website of Pinata "
MQTT_BROKER_HOSTNAME= " received from the official website of HiveMQ "
MQTT_BROKER_PORT= " received from the official website of HiveMQ "
MQTT_BROKER_USERNAME= " received from the official website of HiveMQ "
MQTT_BROKER_PASSWORD= " received from the official website of HiveMQ "
EMAIL_ADDRESS= "a outlook email address for sending emails"
EMAIL_PASSWORD= "password of that account"
MONGODB_URI= " URL of the cloud database setup on MongoAtlas "
api_secret= " credentials of cloudinary "
api_key= " credentials of cloudinary "
cloud_name= " credentials of cloudinary "
REDIS_HOST = "get from redis cloud" ,
REDIS_PORT = "get from redis cloud" ,
REDIS_PASSWORD = "get from redis cloud",
npm run build
npm run prod
npm run dev
βββ README.md <- Project overview and instructions
βββ .gitignore <- Files/folders not pushed on github
βββarduino-code <- Code to be run on ESP32 microcontroller
βββ code.h
βββ docs <- Documentation and project demo
β βββ demo.mp4 <- Walk-through video, covering setup, UI, and functionality
β βββ apis <- Includes the API defination and practices followed in the application
β βββ architecture <- Includes the entire system architecture and implementations
β βββ contracts <- Includes the solidity contracts and thier outline
β βββ main.sol <- Solidity Contract for NFT-minting and listing credits
β βββ iot.sol <- Includes the solidity contracts and thier outline
β βββ ui <- Glimpses of UI and their outline
β βββ zksnarks <- Implementation of ZK Snarks along with all the necessary files
β βββ purchase <- Includes the files generated for ZK Proof for Buy-side
β βββ sell <- Includes the files generated for ZK Proof for Sell-side
βββ listing <- Auto generated folder for building and deploying the subgraphs. Consists the schema and events
βββ app <- Main directory consisting of the source code of the application
β βββ AdminDashboard <- Consists the UI made on ReactJS of the admin dashboard used to verify the documents of the businesses before their onchain onboarding
β βββ client <- Consists the source-code for the main UI interface of the application
β βββ src
β βββ apis
β βββ assests
β βββ components
β βββ configs
β βββ context
β βββ graphql
β βββ page
β βββ styles
β βββ App.jsx
β βββ index.css
β βββ main.jsx
β βββ server <- Consists the source-code for the server side application, following a monolithic standard of Models-Controllers-Routes with Express Framework
β βββ public <- Includes the static files required for ZK proof generation in the client side
β βββ uploads <- Temporarily stores the files/docs uploaded for verification
β βββ src
β βββ config
β βββ controllers
β βββ db
β βββ middlewares
β βββ models
β βββ routes
β βββ services
β βββ utils
β βββ constants.js
β βββ index.js <- Start point of server-side application
Feel free to open an issue on GitHub if you find any bug.
Feel free to open an issue on GitHub if you have feature idea to be added π.
Thanks for visiting my repository π!! Please give a star β if you liked our project.