PRASASTI is a Decentralized Application (DApp) designed for secure and transparent management of academic records using blockchain technology. It allows institutions to issue verifiable academic credentials and enables students and third parties to verify them.
- Admin Portal: Secure login for administrators to manage and issue academic records.
- Student Portal: Access for students to view their academic history.
- Record Creation: Issue immutable academic records on the blockchain.
- Record Verification: Publicly verify the authenticity of academic records using transaction hashes or student IDs.
- Wallet Integration: Seamless connection with various crypto wallets via Reown AppKit and WalletConnect.
- Frontend Framework: React with Vite
- Language: TypeScript
- Styling:
- Tailwind CSS for utility-first styling.
- shadcn/ui for re-usable components.
- tweakcn for customizing shadcn/ui themes.
- Radix UI for accessible UI primitives.
- Framer Motion for animations.
- Lucide React for icons.
- Web3 Integration:
- Wagmi for Ethereum hooks.
- Viem for low-level Ethereum interfaces.
- Reown AppKit for wallet connection and modal.
- Ethers.js for additional blockchain interactions.
- State Management: TanStack Query (React Query).
- Routing: React Router.
Before you begin, ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/0xtbug/prasasti cd prasasti -
Install dependencies:
pnpm install
-
Environment Configuration:
Create a
.envfile in the root directory and add the following variables:VITE_PROJECT_ID=your_reown_project_id VITE_APP_NAME=PRASASTI DApp VITE_APP_DESCRIPTION=Decentralized Academic Records Management VITE_APP_URL=http://localhost:5173 VITE_APP_ICON=https://avatars.githubusercontent.com/u/37784886
Note: You can obtain a Project ID from Reown Cloud.
-
Run the development server:
pnpm run dev
The application will be available at
http://localhost:5173.
pnpm run dev: Starts the development server.pnpm run build: Builds the application for production.pnpm run lint: Runs ESLint to check for code quality issues.pnpm run preview: Previews the production build locally.
To use this application on the Sepolia testnet:
-
Deploy the Contract: Deploy the
EducationRecord.solcontract (located incontracts/EducationRecord.sol) to the Sepolia testnet using Remix IDE or Hardhat. -
Update Contract Address: After deployment, copy the new contract address and update the
CONTRACT_ADDRESSvariable insrc/lib/contract.ts:export const CONTRACT_ADDRESS = "YOUR_SEPOLIA_CONTRACT_ADDRESS";
-
Connect Wallet: Ensure your wallet (e.g., MetaMask) is connected to the Sepolia network and has some Sepolia ETH for gas fees.