{"id":25236778,"url":"https://github.com/nitish2773/certifysecure","last_synced_at":"2026-04-10T07:50:30.145Z","repository":{"id":276959156,"uuid":"930859579","full_name":"Nitish2773/CertifySecure","owner":"Nitish2773","description":"🚀 CertifySecure is a blockchain-powered Flutter app that ensures tamper-proof student certification using facial recognition, SHA-256 hashing, and Firebase authentication. It provides a secure and efficient way for educational institutions and recruiters to verify certificates with trust, reducing fraud and streamlining the validation process. 🔒","archived":false,"fork":false,"pushed_at":"2025-02-20T10:41:17.000Z","size":19212,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-05T18:13:25.524Z","etag":null,"topics":["android-studio","blockchain-technology","dart","face-recognition","firebase","flutter","infura-api","metamask","nodejs","opencv2","python","remix-ide","sepoliatestnetwork","smart-contracts","solidity"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nitish2773.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-11T10:28:55.000Z","updated_at":"2025-04-01T05:47:11.000Z","dependencies_parsed_at":"2025-02-11T11:44:37.085Z","dependency_job_id":null,"html_url":"https://github.com/Nitish2773/CertifySecure","commit_stats":null,"previous_names":["nitish2773/certifysecure"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitish2773%2FCertifySecure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitish2773%2FCertifySecure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitish2773%2FCertifySecure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitish2773%2FCertifySecure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nitish2773","download_url":"https://codeload.github.com/Nitish2773/CertifySecure/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378139,"owners_count":20929297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-studio","blockchain-technology","dart","face-recognition","firebase","flutter","infura-api","metamask","nodejs","opencv2","python","remix-ide","sepoliatestnetwork","smart-contracts","solidity"],"created_at":"2025-02-11T15:31:50.370Z","updated_at":"2026-04-10T07:50:30.074Z","avatar_url":"https://github.com/Nitish2773.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# CertifySecure: Blockchain-Integrated Student Certificate Validation App with Flutter\n---\n\n# 📑 **Table of Contents**  \n\n### 🚀 **Project Setup \u0026 Configuration**  \n1️⃣ **[Project Overview](#)**  \n2️⃣ **[VS Code \u0026 Android Studio Setup](#)**  \n3️⃣ **[Frontend: Flutter \u0026 Dart Configuration](#)**  \n4️⃣ **[Android \u0026 iOS Setup](#)**  \n5️⃣ **[Pubspec.yaml Dependencies](#)**  \n\n### 🎨 **UI \u0026 User Experience**  \n6️⃣ **[Major Screens \u0026 UI Implementations](#)**  \n\n### 🔗 **Blockchain \u0026 Security**  \n7️⃣ **[Blockchain \u0026 SHA-256 Hashing](#)**  \n8️⃣ **[Blockchain Technologies](#)**  \n9️⃣ **[Immutable Data \u0026 Blockchain Verification](#)**  \n\n### 🔥 **Backend \u0026 Database**  \n🔟 **[Firebase Backend Setup](#)**  \n1️⃣1️⃣ **[CSV-based User Registration](#)**  \n1️⃣2️⃣ **[Firebase Authentication \u0026 Storage](#)**  \n\n### ⚙️ **App Logic \u0026 Functionality**  \n1️⃣3️⃣ **[Complete App Workflow](#)**  \n1️⃣4️⃣ **[Verification Process \u0026 Tamper-Proof Certification](#)**  \n1️⃣5️⃣ **[Facial Recognition for Student Authentication](#)**  \n1️⃣6️⃣ **[User Roles \u0026 Permissions](#)**  \n\n### 📂 **Project Management \u0026 Deployment**  \n1️⃣7️⃣ **[Project Structure Breakdown](#)**  \n1️⃣8️⃣ **[Git Cloning \u0026 Usage](#)**  \n1️⃣9️⃣ **[Deployment Guide](#)**  \n\n### 📸 **Media \u0026 Documentation**  \n2️⃣0️⃣ **[Screenshots \u0026 Video Demo](#)**  \n\n### 📞 **Additional Information**  \n2️⃣1️⃣ **[Contact Details](#)**  \n2️⃣2️⃣ **[Conference Presentation Details](#)**  \n2️⃣3️⃣ **[Future Enhancements](#)**  \n\n---\n\n# 🚀 **1. Project Overview**  \n\n**CertifySecure** is an innovative application that provides a **tamper-proof certification system** for students, ensuring security and authenticity through **blockchain technology**, **facial recognition**, and **Firebase authentication**.  \n\n### 🔥 **Key Features:**  \n✅ **🔐 Blockchain-Powered Certificate Storage:** Immutable certificate hashes stored on Ethereum blockchain.  \n✅ **🤖 Facial Recognition for Secure Login:** Flask-based biometric authentication for added security.  \n✅ **☁️ Secure File Storage on Firebase:** Ensures original certificates are safely stored in the cloud.  \n✅ **🔄 Real-Time Verification for Recruiters:** Instant validation of certificate authenticity.  \n✅ **🌐 Multi-Platform Support:** Runs seamlessly on **Android, iOS, Web, and Desktop**.  \n✅ **📊 CSV-Based Bulk Registration:** Enables fast mass user onboarding.  \n\n---\n\n# 🛠️ **2. VS Code \u0026 Android Studio Setup**  \n\n### **📌 VS Code Configuration**  \n**🔹 Essential Plugins:**  \n📌 **Flutter \u0026 Dart** – For Flutter app development.  \n📌 **Solidity** – For smart contract development.  \n\n**🔹 Recommended Settings:** *(Modify `settings.json` to ensure a smooth dev experience.)*  \n\n```json\n{\n    \"editor.formatOnSave\": true,\n    \"dart.previewFlutterUiGuides\": true,\n    \"dart.openDevTools\": \"flutter\"\n}\n```\n\n---\n\n### **📌 Android Studio Configuration**  \n**🔹 Required Plugins:**  \n📌 **Flutter \u0026 Dart SDKs** – Enable Flutter development.  \n\n**🔹 Device Setup:**  \n📌 **Enable Developer Mode \u0026 USB Debugging:** On a physical Android device, enable **USB debugging** via Developer Options.  \n📌 **Set Up Emulator:** Open **AVD Manager** → Create a virtual device → Choose appropriate API level \u0026 specs.  \n\n---\n\n# 🎨 **3. Frontend: Flutter \u0026 Dart Configuration**  \n\n### 🔧 **Install Flutter SDK (\u003e=3.4.3)**  \nFollow the **[official Flutter installation guide](https://flutter.dev/docs/get-started/install)** based on your OS.  \n\n### 🔍 **Run Essential Commands**  \nBefore starting, verify your setup:  \n\n```bash\nflutter doctor\nflutter pub get\nflutter run\n```\n\n### ⚡ **Why Dart?**  \n✅ **Blazing-Fast Performance:** Compiles to native code for smooth execution.  \n✅ **Productivity Boost:** Hot reload for instant UI updates.  \n✅ **Cross-Platform Support:** Single codebase for **Android, iOS, Web, and Desktop**.  \n\n\n---\n# **4. Android \u0026 iOS Setup**\n\n### **📱 Android**\n- 🛠️ **Configure `android/app/build.gradle`**: Set up signing keys, version codes, and required permissions.\n- 🚀 **Enable MultiDex**: If needed, enable MultiDex for compatibility with numerous dependencies.\n\n### **🍏 iOS**\n- 💻 **Run `pod install` in the `ios/` directory** to install CocoaPods dependencies.\n- 📝 **Configure Xcode with `GoogleService-Info.plist`** for Firebase integration.\n- 📱 **Ensure devices/emulators are connected and properly configured** before running the app.\n\n---\n## **5. `pubspec.yaml` Dependencies**\n\n### **🔥 Authentication \u0026 Firebase**\n- `firebase_core`, `firebase_auth` → Handles Firebase initialization \u0026 user authentication.\n\n### **🔐 Security \u0026 Encryption**\n- `crypto`, `encrypt`, `pointycastle` → Provides SHA-256 hashing \u0026 AES encryption functionalities.\n\n### **⛓️ Blockchain Integration**\n- `web3dart`, `walletconnect_dart` → Enables Ethereum blockchain interactions \u0026 wallet connections.\n\n### **🤖 Face Recognition \u0026 Camera**\n- `google_mlkit_face_detection`, `camera` → Manages face detection \u0026 image capture.\n\n### **🌐 Networking \u0026 File Handling**\n- `dio`, `http`, `file_picker` → Handles API requests \u0026 file uploads.\n\n### **🎨 UI Enhancements**\n- `animate_do`, `cupertino_icons` → Enhances animations \u0026 iconography.\n\n---\n# **6. Major Screens \u0026 UI Implementations**\n\n### **🚀 Splash Screen \u0026 Role Selection**\n- **Description:** Initial welcome screen displaying app branding \u0026 user role selection.\n- **Files:** `splash_screen.dart`, `role_selection_screen.dart`\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/Splash_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/role_selection.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### **🔑 Login Screens (All Roles)**\n- **Description:** Dedicated login interfaces for students, teachers, and recruiters.\n- **Files:** `login.dart`, `face_recognition_screen.dart`, `teacher_login.dart`, `company_login.dart`\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/student_login.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_login.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/company_login.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/face_auth-1.png\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n      \u003ctd\u003e\u003cimg src=\"assets\\screenshots\\face-auth-2.png\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### **🏠 Student Dashboard**\n- **Description:** Displays certificate statuses, upload options, and student profile details.\n- **Files:** `student_dashboard.dart`, `home_screen.dart`, `profile_screen.dart`\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/student_home_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/student_profile_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### **📤 Certificate Upload \u0026 View Screens**\n- **Description:** Enables students to upload \u0026 view their certificates with verification status.\n- **Files:** `upload_certificate_screen.dart`, `view_certificates_screen.dart`\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/student_upload_cert_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/student_view_cert_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### **📊 Teacher Dashboard**\n- **Description:** Allows teachers to verify certificates and manage pending verifications.\n- **Files:** `teacher_dashboard.dart`, `teacher_home_screen.dart`, `teacher_profile_screen.dart`,`pending_certificate_screen.dart`\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_home_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_home_screen-2.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_pending_cert_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_pending_cert_screen-2.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n     \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_verify_cert_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/teacher_verify_cert_screen-2.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n### **🏢 Company/Recruiter Dashboard**\n- **Description:** Enables recruiters to scan QR codes and verify certificates.\n- **Files:** Located under the `company/` folder.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/company_home_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003cimg src=\"assets/screenshots/company_verify_cert_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n          \u003ctd\u003e\u003cimg src=\"assets/screenshots/company_block-not_verified_screen.jpg\" width=\"300\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n---\n# **7. Blockchain \u0026 SHA-256 Hashing**\n\n### **🔒 SHA-256 Hash Generation**\nCertificates are hashed to generate a unique SHA-256 fingerprint.\n\n```dart\nimport 'dart:io';\nimport 'package:crypto/crypto.dart';\nimport 'dart:convert';\n\nclass CertificateHasher {\n  static Future\u003cString\u003e generateHash(File certificate) async {\n    final bytes = await certificate.readAsBytes();\n    final hash = sha256.convert(bytes);\n    return hash.toString();\n  }\n}\n```\n\n### **⛓️ Blockchain Storage (Smart Contract in Solidity)**\nThe certificate hash is stored on the Ethereum blockchain for authenticity verification.\n\n```solidity\n// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract CertificateRegistry {\n    struct Certificate {\n        string studentId;\n        string hash;\n        uint256 timestamp;\n    }\n\n    mapping(string =\u003e Certificate) private certificates;\n\n    function storeCertificateHash(string memory studentId, string memory hash) public {\n        certificates[studentId] = Certificate(studentId, hash, block.timestamp);\n    }\n\n    function getCertificateHash(string memory studentId) public view returns (string memory) {\n        return certificates[studentId].hash;\n    }\n}\n```\n\n### **📡 Blockchain Service (Dart Integration)**\nHandles communication with the Ethereum blockchain via `web3dart`.\n\n```dart\nimport 'package:web3dart/web3dart.dart';\nimport 'package:http/http.dart';\n\nclass BlockchainService {\n  final String rpcUrl = \"https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID\";\n  late Web3Client client;\n\n  BlockchainService() {\n    client = Web3Client(rpcUrl, Client());\n  }\n\n  Future\u003cString\u003e getCertificateHash(String studentId) async {\n    // Call smart contract function\n    final result = await client.call(\n      contract: myContract,\n      function: getHashFunction,\n      params: [studentId],\n    );\n    return result.first.toString();\n  }\n}\n```\n\n---\n# 8. Blockchain Technologies\n\n**🛠️ Remix IDE:**\n- 🚀 **Purpose:** A browser-based IDE for developing, deploying, and testing smart contracts written in Solidity.\n- 🔧 **Usage:** Utilized for writing and deploying the `certificate_registry.sol` smart contract.\n\n**🦊 MetaMask:**\n- 🌍 **Purpose:** A browser extension and mobile app that enables users to interact with the Ethereum blockchain securely.\n- 🔑 **Usage:** Manages Ethereum accounts and facilitates transaction signing.\n\n**🌐 Sepolia Test Network:**\n- ⚙️ **Purpose:** A test network for Ethereum, allowing developers to test smart contracts without using real Ether.\n- 🔬 **Usage:** Provides a safe environment for smart contract deployment and testing.\n\n**🔗 Infura:**\n- 📡 **Purpose:** Offers scalable Ethereum infrastructure and APIs.\n- ⚡ **Usage:** Connects the app to the Ethereum network for seamless blockchain interactions.\n\n**💻 Solidity:**\n- 📝 **Purpose:** A programming language used to write Ethereum smart contracts.\n- 🔨 **Usage:** Develops the smart contract responsible for storing certificate hashes.\n\n---\n\n# 9. Immutable Data \u0026 Blockchain Verification\n\n**🔒 Immutable Data:**\n- Once a certificate hash is stored on the blockchain, it **cannot** be modified or deleted, ensuring data integrity and security.\n\n**✅ Verification Process:**\n- **Step 1:** Teachers verify certificates by generating a fresh SHA-256 hash of the uploaded document.\n- **Step 2:** The generated hash is compared against the hash stored on the blockchain.\n- **Step 3:** If the hashes match, the certificate is verified; otherwise, tampering is detected.\n\n---\n\n# 10. Firebase Backend Setup\n\n**🔥 Firestore Database:**\n- 📂 **Purpose:** Stores user data, certificate metadata, and verification statuses.\n- 📌 **Collections:** `users`, `certificates`\n\n**☁️ Firebase Storage:**\n- 🏛️ **Purpose:** Securely stores original certificate files.\n\n**🔑 Firebase Authentication:**\n- 🏆 **Purpose:** Manages user sign-up, login, and authentication through various methods.\n\n**🚫 Firebase App Check:**\n- 🛡️ **Purpose:** Ensures only verified app instances can access backend resources, enhancing security.\n\n---\n\n# 11. CSV-based User Registration\n\n**📄 Bulk Registration:**\n- Users can be onboarded in bulk using a CSV file, streamlining the registration process.\n\n**🛠️ Automation Script:**\n- 📜 **Script:** The `import_users.js` file in `firebase-admin-server/` reads the CSV, validates data, and registers users in Firebase Authentication and Firestore.\n\n**📊 Example CSV Format:**\n\n```csv\ntype,email,uid,password,role,name,imagePath,department,branch,course,year,semester\nstudent,student@example.com,UID123,pass123,student,Student Name,/path/to/image.jpg,CSE,Computer Science,BTECH,3,6\nteacher,teacher@example.com,UID456,pass456,teacher,Teacher Name,,,,,,\ncompany,company@example.com,UID789,pass789,company,Company HR,,,,,,\n```\n\n**🚀 Registration Process:**\n1️⃣ **Read CSV File:** Extract user details from the uploaded CSV.\n2️⃣ **Validate Data:** Ensure all required fields are present and correctly formatted.\n3️⃣ **Register Users:** Add users to Firebase Authentication and Firestore.\n\n---\n\n# 12. Firebase Authentication \u0026 Storage\n\n**🔑 Firebase Authentication:**\n- ✅ **Supports:** Email/Password, Google Sign-In, and biometric login (facial recognition).\n- 🔒 **Security Rules:** Ensure only authorized users can access or modify data.\n\n**🗄️ Firestore Database:**\n- 📁 **Purpose:** Stores user profiles, certificate data, and verification logs securely.\n\n**☁️ Firebase Storage:**\n- 🔐 **Purpose:** Provides secure storage for original certificate files, preventing unauthorized access.\n\n**🚫 Firebase App Check:**\n- 🔍 **Purpose:** Ensures only verified app instances can interact with backend resources, minimizing security risks.\n\n---\n\n# 📌 13. Complete App Workflow\n\n### 🎓 Student Registration \u0026 Authentication\n- **Process:** Students register and log in using Firebase Authentication.\n- **Security:** Facial recognition ensures secure authentication and prevents impersonation.\n\n### 📤 Certificate Upload \u0026 Hashing\n- **Process:** Students upload certificates.\n- **Hashing:** A SHA-256 hash is generated for each certificate file.\n\n### ⛓️ Blockchain Storage\n- **Process:** The certificate hash is stored immutably on the Ethereum blockchain via a smart contract.\n\n### 👩‍🏫 Teacher Verification\n- **Process:** Teachers review and verify certificates.\n- **Update:** Verified certificates are recorded in Firestore for easy access.\n\n---\n\n# 🔍 14. Verification \u0026 Tamper-Proof Certification\n\n### 🔒 Tamper-Proof Mechanism\n- **Immutable Data:** Blockchain ensures that once stored, data cannot be modified.\n- **Tampering Detection:** Any alteration in a certificate results in a different hash, flagging potential fraud.\n\n### 👩‍🏫 Teacher’s Role\n- **Authenticity Check:** Teachers verify certificates before approval.\n- **Trust:** Blockchain-stored hashes provide cryptographic proof of authenticity.\n\n---\n\n# 🤖 15. Facial Recognition for Secure Authentication\n\n### 🧠 Face Recognition Service\n- **Implementation:** OpenCV-powered Flask microservice.\n- **Repository:** [Face Recognition Service Repository](https://github.com/Nitish2773/face-recognition-app)\n\n### 🔑 Purpose\n- **Enhanced Security:** Only verified students can log in and upload certificates.\n- **Prevention:** Eliminates fraudulent login attempts.\n\n---\n\n# 🛡️ 16. User Roles \u0026 Permissions\n\n| Role     | Permissions |\n|----------|------------|\n| 🎓 Student  | Upload certificates, View own records, Request verification |\n| 👩‍🏫 Teacher  | Verify certificates, Approve/Reject uploads, Manage records |\n| 🏢 Company  | Validate certificate authenticity, Access verification history |\n\n---\n\n# 📁 17. Project Structure Breakdown\n\n```\ncertify_secure_app/\n├── .idea/                     # 🛠️ IntelliJ \u0026 Android Studio settings\n├── .vscode/                   # 📝 VS Code workspace settings and recommended extensions\n├── android/                   # 🤖 Android-specific configuration files\n│   ├── gradle/                # 🔨 Gradle build scripts and configurations\n│   ├── app/                   # 📱 Main Android application code, resources, manifests\n│   ├── build.gradle           # 🛠️ Android Gradle configuration file\n│   └── other Android config files\n├── assets/                    # 🖼️ Static assets (images, icons, fonts)\n│   └── images/                # 📷 Application images (logos, splash screens, etc.)\n├── build/                     # ⚙️ Compiled build artifacts (auto-generated)\n├── firebase-admin-server/     # 🔥 Firebase Admin SDK scripts for batch operations  \n│   ├── node_modules/          # 📦 Node.js dependencies\n│   ├── import_users.js        # 📄 CSV user import script\n│   ├── package.json           # 📃 Node.js dependency definitions\n│   └── package-lock.json      # 🔒 Locked dependency versions\n├── ios/                       # 🍎 iOS-specific configuration files (Xcode projects, etc.)\n├── lib/                       # 💻 Flutter application source code\n│   ├── CertifySecure/         # 🎯 Main application folder\n│   │   ├── contracts/         # 📜 Solidity smart contracts for blockchain integration\n│   │   │   └── certificate_registry.sol  # 🔗 Smart contract for certificate hashing\n│   │   ├── models/            # 🗄️ Data models\n│   │   │   └── certificate_model.dart  # 📃 Dart model for certificate data\n│   │   ├── Screen/            # 🎨 UI Screens (organized by role/function)\n│   │   │   ├── common/        # 🔄 Shared UI components\n│   │   │   ├── company/       # 🏢 Screens for recruiter/company users\n│   │   │   ├── login/         # 🔑 Authentication screens\n│   │   │   │   ├── face_recognition_screen.dart # 🤖 Face recognition login\n│   │   │   │   └── login.dart # 📲 Standard login screen\n│   │   │   ├── main/          # 🏠 Main entry/home screens\n│   │   │   ├── student/       # 🎓 Student-specific screens\n│   │   │   └── teacher/       # 👩‍🏫 Teacher-specific screens\n│   │   ├── Services/          # 🔧 Backend services\n│   │   │   ├── blockchain_service.dart # ⛓️ Blockchain interactions\n│   │   │   └── storage_utils.dart # ☁️ Firebase Storage utility functions\n│   │   ├── utils/             # 🛠️ Utility functions\n│   │   └── Widgets/           # 🔷 Reusable UI components\n│   └── main.dart              # 🚀 App entry point\n├── test/                      # 🧪 Unit \u0026 widget tests\n├── .gitignore                 # 🚫 Files/directories ignored by Git\n├── analysis_options.yaml      # 🔍 Linting and code analysis rules\n├── pubspec.lock               # 🔒 Locked dependency versions\n├── pubspec.yaml               # 📃 Flutter dependency \u0026 asset declarations\n└── README.md                  # 📖 Project documentation (this file)\n```\n\n---\n\n# 🚀 18. Git Cloning \u0026 Usage\n\n### 📥 Clone the Repository\n```bash\ngit clone https://github.com/your-org/certifysecure.git\ncd certify_secure_app\n```\n\n### 📦 Install Dependencies\n```bash\nflutter pub get\n```\n\n### ▶️ Run the App\n```bash\nflutter run\n```\n\n---\n\n# **19. Deployment Guide**\n\n### **📱 Flutter App Deployment**\n\n#### **Android Build:**\nGenerate an APK for Android devices:\n```bash\nflutter build apk\n```\n\n#### **🍎 iOS Build:**\nPrepare the app for iOS deployment:\n```bash\nflutter build ios\n```\n\n#### **☁️ Web Deployment:**\nDeploy the web version using Firebase:\n```bash\nfirebase deploy\n```\n\n---\n\n### **⛓️ Smart Contract Deployment**\n\n#### **Deploy `certificate_registry.sol`**\n- Use **Remix IDE** to deploy the smart contract on the **Sepolia Test Network**.\n- Verify contract deployment using **Etherscan**.\n\n#### **Update `blockchain_service.dart`**\nEnsure the deployed contract address is updated in the blockchain service file for accurate interactions.\n\n---\n\n### **💻 Backend Deployment on Render**\nCreate a `render.yaml` file for deployment:\n```yaml\nservices:\n  - type: web\n    name: certifysecure-api\n    env: python\n    buildCommand: pip install -r requirements.txt\n    startCommand: python main.py\n```\n\nDeploy using GitHub integration or manual deployment through Render's web dashboard.\n\n---\n\n# **20. Screenshots \u0026 Video Demo**\n\n### **🔹 Firebase Console**\n![Firebase Auth](assets/screenshots/firebase-auth.png)  \n![Firebase Storage](assets/screenshots/firebase-storage.png)  \n![Firebase Firestore Database](assets/screenshots/firebase-firestore-database.png)  \n\n### **🔹 Blockchain \u0026 Wallets**\n![Remix IDE](assets/screenshots/Remix-ide.png)  \n![Remix IDE](assets/screenshots/remixide-2.png)  \n![MetaMask Wallet](assets/screenshots/metamask.png)  \n![Infura Dashboard](assets/screenshots/infura.png)  \n![Infura Dashboard](assets/screenshots/infura-2.png)  \n\n### **🔹 Render Deployment Dashboard**\n![Render Dashboard](assets/screenshots/render-face-app.png)  \n\n---\n\n# **📹 Video Demo**\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://drive.google.com/file/d/1G0fa2hgd1Blz7GMigYr9iASvZT-f3mjc/view?usp=sharing\"\u003e\n    \u003cimg src=\"assets/screenshots/app-logo-2.png\" alt=\"Video Demo\" width=\"200\"\u003e\n  \u003c/a\u003e\n  \n  **(Click the image to watch the full demo video.)**\n\u003c/div\u003e\n\n---\n\n# **21. Contact Details**\n\n- **📌 Project Lead:** Sri Nitish Kamisetti\n- **📧 Email:** nitishkamisetti123@gmail.com\n- **🔗 LinkedIn:** [Profile](https://www.linkedin.com/in/sri-nitish-kamisetti/)\n- **💻 GitHub:** [Profile](https://github.com/Nitish2773)\n\n---\n\n# **22. Conference Presentation Details**\n\n### **🎤 Presentation Title:**\n*CertifySecure: Blockchain-Integrated Student Certificate Validation App with Flutter*\n\n### **🗓️ Conference Details:**\n- **Event:** International Conference on Innovative Product Design and Intelligent Manufacturing Systems (ICIPDIMS 2024)\n- **Organizer:** AITAM College\n- **Date:** December 4, 2024\n- **Mode:** Remote Presentation\n- **Certificate:** 📎 [Click Here](https://drive.google.com/file/d/1wjfLMJcodYK7NAS0Rg8w0qX_KXTNdkxS/view?usp=sharing) to access the Certificate.\n\n### **📄 Abstract:**\nIn the education sector, students receive certificates upon completion of their studies. Traditional certificate validation methods require manual verification, which can be tampered with. **CertifySecure** leverages **blockchain technology** to ensure certificates remain **immutable and verifiable**. By integrating **facial recognition authentication**, the project prevents impersonation while enhancing security. The app is developed using **Flutter and Firebase**, with **Ethereum blockchain** storing certificate hashes for tamper-proof verification.\n\n### **🔑 Keywords:**\nCertificate Verification | Facial Recognition | Secure Authentication | Blockchain | Flutter | Remix IDE | MetaMask\n\n### **📊 Presentation Slides:**\n📎 [Click Here](https://docs.google.com/presentation/d/1m_h0iNQmb39QIWQBq8qdor8nygsJoeC0/edit?usp=sharing\u0026ouid=114377696364244652161\u0026rtpof=true\u0026sd=true) to access the slides.\n\n\n📎 [Click Here](https://docs.google.com/presentation/d/1Dp3E1cK2XKTBE0il7poBV5V3tGkq3ojU/edit?usp=sharing\u0026ouid=114377696364244652161\u0026rtpof=true\u0026sd=true) to access the slides.\n\n---\n\n# **23. Future Enhancements**\n\n### **🚀 QR Code Verification:**\n- **Planned Implementation:** QR code scanning to validate certificates instantly.\n- **Purpose:** Recruiters can scan a QR code linked to a certificate for on-the-spot verification.\n\n### **🔒 Enhanced Security Features:**\n- Strengthening authentication methods.\n- Exploring AI-powered anomaly detection for fraudulent certificate submissions.\n\n---\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitish2773%2Fcertifysecure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitish2773%2Fcertifysecure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitish2773%2Fcertifysecure/lists"}