
This project is a decentralized academic record management system that leverages blockchain technology to securely store and verify student transcripts and certificates. The platform allows universities to upload and manage academic records, while students can access their transcripts using unique credentials.
CertiChain is a cutting-edge decentralized application (dApp) designed to revolutionize academic record management. By leveraging blockchain technology, it provides a secure, transparent, and immutable platform for universities to issue and manage academic records, and for students to access and share their credentials. This system eliminates the risks of tampering and fraud associated with traditional paper-based or centralized digital systems.
CertiChain follows a full-stack dApp architecture:
Smart Contracts (Blockchain Layer):
AccessControl.Record and CustomRecordType data structures.Frontend (Application Layer):
ethers.js and the BlockchainService./api/upload).IPFS Integration (Storage Layer):
src/lib/pinata.ts provides client-side utility for constructing IPFS gateway URLs.src/app/api/upload/route.ts handles secure, server-side uploads to Pinata using environment variables for API keys.dotenvFollow these steps to get CertiChain up and running on your local machine.
git clone https://github.com/Anish713/Academic-record-keeping.git
cd Academic-record-keeping
Install both the frontend and blockchain project dependencies:
npm install
cd blockchain
npm install
cd ..
Create a .env.local file in the root directory of the project based on example.env and fill in your details. This file will store sensitive API keys and contract addresses.
# Pinata API Keys (Server-side access only)
PINATA_API_KEY=YOUR_PINATA_API_KEY
PINATA_API_SECRET_KEY=YOUR_PINATA_API_SECRET_KEY
# Pinata Gateway URL (Client-side access)
NEXT_PUBLIC_PINATA_GATEWAY_URL=https://gateway.pinata.cloud
# Deployed Smart Contract Addresses (Update after deployment)
NEXT_PUBLIC_CONTRACT_ADDRESS=YOUR_ACADEMIC_RECORDS_CONTRACT_ADDRESS
NEXT_PUBLIC_STUDENT_MANAGEMENT_CONTRACT_ADDRESS=YOUR_STUDENT_MANAGEMENT_CONTRACT_ADDRESS
Navigate to the blockchain directory and deploy the contracts to your preferred Ethereum network (e.g., Hardhat Local Network, Sepolia, Goerli).
cd blockchain
npx hardhat compile
npx hardhat run scripts/deploy.ts --network localhost # or your chosen network
After successful deployment, update the NEXT_PUBLIC_CONTRACT_ADDRESS and NEXT_PUBLIC_STUDENT_MANAGEMENT_CONTRACT_ADDRESS in your root .env.local file with the deployed addresses.
Return to the root directory and start the Next.js development server:
npm run dev
The application will be accessible at http://localhost:3000.
Contributions are welcome! Please feel free to submit issues, pull requests, or suggest improvements.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries, please contact via https://shresthaanish9703.com.np/.