{"id":29092281,"url":"https://github.com/javtahir/heritagehub","last_synced_at":"2026-05-10T03:09:27.179Z","repository":{"id":301622750,"uuid":"1009836119","full_name":"JavTahir/HeritageHub","owner":"JavTahir","description":"Heritage Hub is a family tree management app that helps users preserve their lineage, visualize family connections, and discover community temples through secure authentication and intuitive features.","archived":false,"fork":false,"pushed_at":"2025-06-27T21:20:01.000Z","size":486,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-27T21:30:31.243Z","etag":null,"topics":["firebase","flutter","otp-verification","pdf-generation"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JavTahir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-06-27T19:53:14.000Z","updated_at":"2025-06-27T21:22:22.000Z","dependencies_parsed_at":"2025-06-27T21:30:33.960Z","dependency_job_id":"d1924cee-9700-4f33-9a26-fe594361b09b","html_url":"https://github.com/JavTahir/HeritageHub","commit_stats":null,"previous_names":["javtahir/heritagehub"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JavTahir/HeritageHub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavTahir%2FHeritageHub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavTahir%2FHeritageHub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavTahir%2FHeritageHub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavTahir%2FHeritageHub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JavTahir","download_url":"https://codeload.github.com/JavTahir/HeritageHub/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JavTahir%2FHeritageHub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262389458,"owners_count":23303341,"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":["firebase","flutter","otp-verification","pdf-generation"],"created_at":"2025-06-28T07:04:44.551Z","updated_at":"2026-05-10T03:09:27.170Z","avatar_url":"https://github.com/JavTahir.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Heritage Hub - Family Tree Management System\n\nHeritage Hub is a comprehensive family tree management application that helps users maintain and visualize their family connections. It provides features for family member registration, relationship mapping, visual family tree generation, and temple associations based on community (Samaj).\n\n## Directory Structure\n\n```plaintext\nlib/\n├── core/\n│   ├── constants/     # App constants, themes, and configurations\n│   ├── services/      # Core services (Firebase, Cloudinary, etc.)\n│   ├── utils/         # Utility functions and helpers\n│   └── widgets/       # Reusable custom widgets\n├── features/          # Feature-specific screens and components\n├── models/            # Data models and DTOs\n├── providers/         # State management providers\n└── main.dart          # Application entry point\n\nandroid/               # Android-specific configurations\nios/                   # iOS-specific configurations\npubspec.yaml           # Flutter dependencies and metadata\n```\n\n\n\n## Core Features\n\n### 1. OTP-based Phone Authentication\n\n- **Selected Country**: India `(+91)`\n- **Head (Primary User) Testing Number**: `+91 9123456789`\n- **Member (Family User) Testing Number**: `+91 7987654321`\n- **Default OTP for Both**: `123456`\n\n\n\n#### 🚀 How It Works\n\n- When you launch the app for the first time, you’ll be prompted to **register as either a Head or a Member**.\n- If registering as a **Head**, use the **test number `+91 9123456789`**. This number is already configured in the **Phone Authentication** section of my Firebase project for testing.\n- After successful login and head registration, you can **add a family member**.\n- While adding the member’s phone number during registration, use **`+91 7987654321`** (also pre-configured).\n- Then, log in using this member number to **access the Member Dashboard**.\n\n\n#### ⚠️ Important Note About Test Numbers\n\nThese numbers are configured only for **development and testing**. If you **do not have access** to my Firebase project:\n\n- You won’t be able to use these numbers directly.\n- Instead, go to your **Firebase Console → Authentication → Sign-in Method → Phone**, and **add your own test numbers** with a static OTP (e.g., `123456`) for local testing.\n\n\n\n#### Firebase Phone Auth Requirements(For Production)\n - Production usage requires a [paid billing account](https://firebase.google.com/docs/auth/android/phone-auth#enable-phone-authentication)\n - Without billing, only whitelisted test numbers work(as described above)\n  \n  1. **Cost Considerations**:\n     - Real phone authentication incurs SMS charges\n     - Test numbers avoid unnecessary costs during development\n  \n  2. **How to Use Real Numbers**:\n     ```bash\n     # If you have billing enabled:\n     1. Go to Firebase Console \u003e Authentication\n     2. Enable \"Phone\" authentication provider\n     3. Remove test numbers from whitelist\n     4. The app will then work with any number\n\n\n### 2. Auto-linking of Family Members\n- Automatic connection of members to Head via relationship mapping\n- Phone number-based association\n\n### 3. Visual Family Tree\n- Interactive tree visualization of family relationships\n- Hierarchical display of generations\n\n### 4. Export Tree\n- PDF generation of family tree\n- Shareable export functionality\n\n### 5. Temples Auto-Association\n- Automatic temple suggestions based on user's Samaj\n- Community-specific temple listings\n\n### 6. Edit Permissions\n- Role-based access control\n- Only Head can delete family member details\n\n### 7. Comprehensive Form Validation\n- Validates all required fields before submission\n- Checks for proper phone number formats\n- Ensures email validity when provided\n- Validates date formats and logical age ranges\n- Relationship verification between family members\n\n### 8. Post-submission Overview\n- Summary of entered information\n- Quick access to newly added members\n\n### 9. Profile Photo Preview\n- Tap-to-view fullscreen profile photos\n- Hero animations for smooth transitions\n\n### 10. Cloudinary Integration  \n`As Firebase Storage requires Billing`\n- Add in core/services/cloudinary_services.dart, your cloudinary credentials\n\n\n## Usage\n\n### 1. Firebase Integration (*if couldn't connect to already configured firebase project*)\n- Data persistence using Firestore\n- Phone authentication setup - enable phone auth provider\n- **Setup Instructions**:\n  On dashboard, Select the flutter icon to create project and follow step by step instructions.After that in your flutter project directory run below commands\n  ```bash\n  cd android\n  ./gradlew signingReport  # Get SHA256 key for Firebase config which will verify your device.Add it in SHA-FingerPrint field in settings in Project Android App\n  ```\n\n### 2. Installation\nClone repo:\n  ```bash\n git clone [https://github.com/your-repo/heritage-hub.git](https://github.com/JavTahir/HeritageHub.git)\n cd heritage-hub\n  ```\n\nInstall dependencies:\n  ```bash\nflutter pub get\n  ```\n\nCreate splash screen:\n  ```bash\n dart run flutter_native_splash:create --path=native_splash.yaml\n  ```\n\nRun Project:\n  ```bash\nflutter run  #Ignore if you see any compilesdk errors it wont effect the build\n  ```\n\n\n### 3. Temples Collection Configuration\n\nFor the temple association feature to work, you need to create a `temples` collection in Firestore with the following structure- you can also use any temples-data api\nbut for now i added them manually:\n\n```javascript\n// Collection: temples\n// Document: auto-ID \n{\n  contactNumber: \"+919876543210\",  // string\n  description: \"Main Swaminarayan temple in Gujarat\",  // string\n  imageUrl: \"https://example.com/temple1.jpg\",  // string\n  location: \"Ahmedabad, Gujarat\",  // string\n  name: \"Shree Swaminarayan Temple\",  // string\n  samaj: \"Swaminarayan\"  // string (must match Samaj names in your app)\n}\n\n{\n  contactNumber: \"+919876543211\",  // string\n  description: \"Ancient Brahmin temple\",  // string\n  imageUrl: \"https://www.jangidbrahminsamaj.com/gallery/g75.jpg\",  // string\n  location: \"Varanasi, UP\",  // string\n  name: \"Brahmin Samaj Mandir\",  // string\n  samaj: \"Brahmin\"  // string (must match Samaj names in your app)\n}\n```\n\nGood Job! You are ready to o now.Feel free to contribute in this project and share more valuabe features to add\n\n## Project Demo\n[![Heritage Hub Demo Video](https://drive.google.com/thumbnail?id=1LFD9Z5tgqAppt6ZeF0wkjqrx5K_HNUXb)](https://drive.google.com/file/d/1LFD9Z5tgqAppt6ZeF0wkjqrx5K_HNUXb/view?usp=sharing)\n\nClick the thumbnail above to watch the full demo video\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavtahir%2Fheritagehub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavtahir%2Fheritagehub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavtahir%2Fheritagehub/lists"}