{"id":51567921,"url":"https://github.com/prem-ramamoorthy/sibapp","last_synced_at":"2026-07-10T16:32:08.207Z","repository":{"id":323779899,"uuid":"1061569235","full_name":"prem-ramamoorthy/SIBapp","owner":"prem-ramamoorthy","description":"SIBapp is a centralized platform for managing community members, chapters, and events with secure authentication and role-based access.","archived":false,"fork":false,"pushed_at":"2026-06-29T12:08:59.000Z","size":39208,"stargazers_count":1,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-29T13:23:16.811Z","etag":null,"topics":["community-management","react","role-based-access","sibapp","vite"],"latest_commit_sha":null,"homepage":"https://senguntharinbusiness.in","language":"JavaScript","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/prem-ramamoorthy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-22T05:18:10.000Z","updated_at":"2026-06-29T12:09:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/prem-ramamoorthy/SIBapp","commit_stats":null,"previous_names":["prem-ramamoorthy/sibapp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/prem-ramamoorthy/SIBapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prem-ramamoorthy%2FSIBapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prem-ramamoorthy%2FSIBapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prem-ramamoorthy%2FSIBapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prem-ramamoorthy%2FSIBapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prem-ramamoorthy","download_url":"https://codeload.github.com/prem-ramamoorthy/SIBapp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prem-ramamoorthy%2FSIBapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35337280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["community-management","react","role-based-access","sibapp","vite"],"created_at":"2026-07-10T16:32:07.187Z","updated_at":"2026-07-10T16:32:08.202Z","avatar_url":"https://github.com/prem-ramamoorthy.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SIBapp\n\n## Overview\n\nSIBapp is a role-based organizational management platform designed to digitally manage members, chapters, regions, events, meetings, and activity analytics for a structured association.  \nIt centralizes governance workflows, improves transparency, and provides data-driven insights for different leadership roles.\n\nThe application supports multi-level access control (Members, Coordinators, Presidents, Admins) and combines dashboards, analytics, and workflow automation in a single system.\n\n---\n\n## Tech Stack\n\n### Frontend\n\n- **React (Vite)**\n- **React Router DOM**\n- **Tailwind CSS**\n- **Recharts** (analytics \u0026 graphs)\n- **Firebase SDK** (authentication \u0026 storage initialization)\n- **GSAP** (animations)\n\n### Tooling \u0026 Deployment\n\n- **Vite**\n- **ESLint**\n- **Vercel** (deployment)\n\n### Backend (External)\n\n- **Custom REST API**\n- **Session-based authentication** (cookies)\n- **Role-based authorization**\n\n\u003e **Note:** Backend and database are maintained as a separate service and are not part of this repository.\n\n---\n\n## Key Features\n\n- Role-based dashboards (Member, Coordinator, President, Admin)\n- Secure session-based authentication\n- Chapter, region, and vertical management\n- Member directory with advanced filtering\n- Event and meeting management\n- Activity tracking (M2M, Referrals, TYFTB)\n- Analytics and reporting dashboards\n- Notification and alert system\n- Public and private portals\n- Media-rich galleries and assets\n\n---\n\n## Project Architecture (High Level)\n\n```\nBrowser\n    ↓\nReact SPA (SIBapp)\n    ↓\nBackend REST API\n    ↓\nDatabase \u0026 Auth System\n```\n\n- **Frontend** handles UI, routing, and API consumption\n- **Backend** owns authentication, authorization, and business logic\n- **Database** stores members, activities, events, analytics, and media metadata\n- The frontend never directly accesses the database.\n\n---\n\n## Architecture\n\nThe following diagram represents the high-level system architecture, clearly separating user roles, frontend responsibilities, backend services, and infrastructure dependencies. It is written using Mermaid and can be rendered directly by GitHub.\n\n```mermaid\ngraph TD\n    %% Styles\n    classDef frontend fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#01579b;\n    classDef backend fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#2e7d32;\n    classDef user fill:#fff9c4,stroke:#fbc02d,stroke-width:2px,color:black;\n    classDef ext fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c;\n    classDef public fill:#ffebee,stroke:#c62828,stroke-width:2px,color:#c62828;\n\n    %% =====================\n    %% User Actors\n    %% =====================\n    subgraph \"User Actors\"\n        A[\"Admin (Region Owner)\"]:::user\n        P[\"President\"]:::user\n        C[\"Coordinator\"]:::user\n        M[\"Member\"]:::user\n        V[\"Public Visitor\"]:::user\n    end\n\n    %% =====================\n    %% Frontend Layer\n    %% =====================\n    subgraph \"Frontend Layer (React + Vite + Tailwind)\"\n\n        subgraph \"Public Zone\"\n            Hero[\"Hero Page\"]:::public\n            PubGal[\"Public Gallery (Approved M2M Proofs)\"]:::public\n        end\n\n        subgraph \"Authentication\"\n            Login[\"Login UI\"]:::frontend\n        end\n\n        subgraph \"Protected Dashboards\"\n            AD[\"Admin Dashboard\"]:::frontend\n            PD[\"President Dashboard\"]:::frontend\n            CD[\"Coordinator Dashboard\"]:::frontend\n            MD[\"Member Dashboard\"]:::frontend\n\n            Viz[\"Recharts – Analytics\"]:::frontend\n            Anim[\"GSAP – Animations\"]:::frontend\n        end\n    end\n\n    %% =====================\n    %% Backend Layer\n    %% =====================\n    subgraph \"Backend Layer (Custom REST API)\"\n        API[\"API Gateway / Controllers\"]:::backend\n        AuthMw[\"Session \u0026 Role-based Auth Middleware\"]:::backend\n\n        subgraph \"Business Logic Services\"\n            RegSvc[\"Region \u0026 Chapter Service\"]:::backend\n            MemSvc[\"Membership Service\"]:::backend\n            SlipSvc[\"Slip / Referral Service\"]:::backend\n            NotifSvc[\"Notification Service (Email + In-App)\"]:::backend\n        end\n    end\n\n    %% =====================\n    %% Data \u0026 Infrastructure\n    %% =====================\n    subgraph \"Data \u0026 Infrastructure\"\n        FBAuth[\"Firebase Authentication\"]:::ext\n        FBStore[\"Firebase Storage\"]:::ext\n        DB[\"Primary Database\"]:::ext\n    end\n\n    %% =====================\n    %% Authentication Flow\n    %% =====================\n    Login --\u003e|Authenticate| FBAuth\n    FBAuth --\u003e|JWT / ID Token| Login\n    Login --\u003e|Send Token| API\n    API --\u003e|Set Session Cookie| Login\n\n    %% =====================\n    %% User Navigation\n    %% =====================\n    V --\u003e Hero\n    V --\u003e PubGal\n    A --\u003e AD\n    P --\u003e PD\n    C --\u003e CD\n    M --\u003e MD\n\n    %% =====================\n    %% Permission Hierarchy (Read-only Views)\n    %% =====================\n    PD -.-\u003e|Read-only Supervision| CD\n    AD -.-\u003e|Global Oversight| PD\n\n    %% =====================\n    %% Dashboard Actions\n    %% =====================\n    AD --\u003e|Create Regions / Chapters| RegSvc\n    AD --\u003e|Broadcast Notifications| NotifSvc\n\n    PD --\u003e|Create Members / Events| MemSvc\n    PD --\u003e|Revoke Roles| MemSvc\n\n    CD --\u003e|Mark Attendance| MemSvc\n    CD --\u003e|Approve / Reject Slips| SlipSvc\n    CD --\u003e|Low Attendance Alerts| NotifSvc\n\n    MD --\u003e|Submit TYB / Referral / M2M| SlipSvc\n    MD --\u003e|Upload Proof| FBStore\n    FBStore --\u003e|Proof URL| SlipSvc\n\n    %% =====================\n    %% Public Gallery Flow\n    %% =====================\n    SlipSvc --\u003e|Fetch Approved M2M| PubGal\n    FBStore --\u003e|Serve Images| PubGal\n\n    %% =====================\n    %% Backend Processing\n    %% =====================\n    API --\u003e AuthMw\n    AuthMw --\u003e RegSvc\n    AuthMw --\u003e MemSvc\n    AuthMw --\u003e SlipSvc\n    AuthMw --\u003e NotifSvc\n\n    RegSvc --\u003e DB\n    MemSvc --\u003e DB\n    SlipSvc --\u003e DB\n    NotifSvc --\u003e DB\n\n    %% =====================\n    %% Notifications\n    %% =====================\n    NotifSvc --\u003e|Email| A\n    NotifSvc --\u003e|Email| P\n    NotifSvc --\u003e|Email| C\n    NotifSvc --\u003e|Email| M\n    NotifSvc --\u003e|In-App Notifications| DB\n\n    AD -.-\u003e|Fetch Notifications| NotifSvc\n    PD -.-\u003e|Fetch Notifications| NotifSvc\n    CD -.-\u003e|Fetch Notifications| NotifSvc\n    MD -.-\u003e|Fetch Notifications| NotifSvc\n```\n![System Architecture Diagram 1](docs/architecture/system-architecture1.png)\n![System Architecture Diagram 2](docs/architecture/system-architecture2.png)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18 or higher recommended)\n- npm or yarn\n- Backend API running (required for full functionality)\n- Environment variables configured\n\n### Installation\n\n```bash\ngit clone https://github.com/your-username/SIBapp.git\ncd SIBapp\nnpm install\n```\n\n### Environment Variables\n\nCreate a `.env` file in the root directory:\n\n```env\nVITE_APIKEY=\"your-firebase-api-key\"\nVITE_AUTHDOMAIN=\"your-firebase-auth-domain\"\nVITE_PROJECTID=\"your-firebase-project-id\"\nVITE_STORAGEBUCKET=\"your-firebase-storage-bucket\"\nVITE_MESSAGINGSENDERID=\"your-firebase-messaging-sender-id\"\nVITE_APPID=\"your-firebase-app-id\"\nVITE_MEASUREMENTID=\"your-firebase-measurement-id\"\nVITE_BACKEND_SERVER=\"https://api.senguntharinbusiness.in\"\n```\n\n### Run Locally\n\n```bash\nnpm run dev\n```\n\nThe app will be available at:  \n[http://localhost:5173](http://localhost:5173)\n\n---\n\n## Folder Structure\n\n```\nSIBapp/\n├─ public/              # Static assets and images\n├─ src/\n│  ├─ hooks/            # Auth, routing, and data hooks\n│  ├─ utils/            # Utility and helper functions\n│  ├─ Components/       # Reusable UI components\n│  ├─ Admin/            # Admin portal\n│  ├─ Members/          # Member directory \u0026 analytics\n│  ├─ ChapterPage/      # Chapter-level views\n│  ├─ Coordinatorsportal/\n│  ├─ PresidentPortal/\n│  ├─ MyActivity/       # Activity tracking\n│  ├─ Meetings/         # Meetings management\n│  ├─ ProfilePage/\n│  ├─ Settings/\n│  ├─ SigninPage/\n│  ├─ NotificationPanel/\n│  └─ src1/             # Legacy public/marketing site\n├─ vite.config.js\n├─ package.json\n└─ README.md\n```\n\n---\n\n## Contribution Guide\n\nWe welcome contributions from the community.\n\nPlease read the contribution guidelines before submitting a pull request:\n\n➡️ [CONTRIBUTING.md](CONTRIBUTING.md)\n\n**General guidelines:**\n\n- Follow existing folder and naming conventions\n- Write clear commit messages\n- Test your changes before submitting\n- Open an issue before working on major changes\n\n  Contributions are welcome for:\n\n- Bug fixes\n- New features\n- Documentation improvements\n- Performance and security enhancements\n\n\n---\n\n## Community \u0026 Contact\n\n- **Author:** Prem Kumar R  \n- **GitHub:** [https://github.com/prem-ramamoorthy](https://github.com/prem-ramamoorthy)\n- **email:** prem2005.developer@gmail.com  \n- **Project Discussions:** Use GitHub Issues and Pull Requests\n\nFor major changes, open an issue first to discuss your proposal.\n\n---\n\n\n## License\n\nThis project is licensed under the MIT License.  \nSee the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprem-ramamoorthy%2Fsibapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprem-ramamoorthy%2Fsibapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprem-ramamoorthy%2Fsibapp/lists"}