AvaCertify is a decentralized application (dApp) that leverages smart contracts on the Avalanche blockchain to issue, verify, and revoke certificates securely and transparently.
- Functionality: The contract owner (issuer) can create a certificate for a recipient.
- How It Works:
- A unique Certificate ID is assigned.
- The recipient’s name, course, and issue date are stored on the blockchain.
- An event log is generated for tracking.
- Functionality: Anyone can verify a certificate’s validity.
- How It Works:
- The blockchain securely stores certificate data.
- A function retrieves certificate details using the Certificate ID.
- Functionality: The issuer can revoke a certificate if necessary.
- How It Works:
- The smart contract updates the certificate status to "revoked."
- Revoked certificates can no longer be verified as valid.
- Languages: Solidity, JavaScript
- Frameworks: Avalanche, React, Node.js, Firebase
- Tools: Truffle, Hardhat
git clone https://github.com/Avalanche-Team1-DAO-Kenya/Certificate-Issuance-System.git npm install npx hardhat compile npx hardhat run scripts/deploy.js --network fuji npx hardhat run scripts/deploy.js --network avalanche npm start- Transaction Hash:
0x2b967c1dd8114a5d78c768169b7dec2e846caaa13d1f38b6acbff86f99ece1c7 - Block Hash:
0x2dd43ca6d755ccedf7ae2f0b8f36a4c0a749f2d4be7a91c55a627bccd9fb0c25 - Block Number:
38862712 - Contract Address:
0x5b0a76A7261b42083a4a4a8A2C101271C8542fFc
In app/firebase.ts, add your Firebase credentials:
REACT_APP_FIREBASE_API_KEY=your_firebase_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
REACT_APP_FIREBASE_PROJECT_ID=your_firebase_project_id
REACT_APP_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
REACT_APP_FIREBASE_APP_ID=your_firebase_app_id- Components: Reusable UI components (
/componentsdirectory). - Pages: Main entry points for the application (
/pagesdirectory). - Public Assets: Static files such as images (
/publicdirectory). - Styles: Global styles (
/stylesdirectory). - TypeScript Config: Compiler options in
tsconfig.json. - Package Config: Dependencies and scripts in
package.json.
- App Entry Point: Server logic in
src/app.ts. - Type Definitions: Shared types/interfaces in
src/types/index.ts. - Database: Firebase integration for user profiles and waitlist.
cd frontend
npm install
npm run dev cd backend
npm install
npm startThis project is licensed under the MIT License.
- Ian Macharia - Smart Contract Developer macharia.gichoya@gmail.com
- Sharon Kitavi - Backend Developer -sharonkmwikali@gmail.com
- Farhiya Omar - Backend Developer -farhiyaomar24@gmail.com
- Salma Adam - Smart Contract Developer -salmaadambakari@gmail.com
- Linet Mugwanja - Frontend Developer -mugwanjalk@gmail.com
- Stan - Backend Developer -e.n.ndegwa00@gmail.com
- Truth - Frontend Developer trutherkadi@gmail.com
- Enhance UI/UX: Improve the frontend for a better user experience.
- Smart Contract Audit: Conduct a security audit for robustness.
- Multi-Chain Deployment: Expand to other blockchain networks.{not decided}
- Automated Issuance: AI-powered bulk certificate issuance.
- Mobile App Development: Build a mobile-friendly version.
- Institutional Partnerships: Collaborate with universities and certification bodies.
- Community Engagement: Grow developer and user adoption.