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.
TECH AND DEVELOPMENT LEAD
-
Ian Macharia - Smart Contract Developer macharia.gichoya@gmail.com
-
Sharon Kitavi - Backend Developer -sharonkmwikali@gmail.com
-
Farhiya Omar - Backend Developer -farhiyaomar24@gmail.com
-
BUSINESS AND GROTH LEAD
-
Salma Adam - Smart Contract Developer -salmaadambakari@gmail.com
-
Elvis Ndegwa - Backend Developer -e.n.ndegwa00@gmail.com
-
PRODUCT/UI LEAD
-
Linet Mugwanja - Frontend Developer -mugwanjalk@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.