ASCENDynamics-NFP / AscendCoopPlatform

An open-source collaboration platform for worker-owned cooperatives, nonprofits, and private organizations, built with Ionic and Firebase, to foster growth, real-time data-driven decision-making, and address basic human needs through community-based solutions.
https://ascendynamics.org/
GNU Affero General Public License v3.0
5 stars 14 forks source link

Feature #1.2 - Group Creation and Organizational Structuring #188

Closed mufniarz closed 9 months ago

mufniarz commented 9 months ago
Originally posted by **Nyero2023** January 16, 2024 ### Description The Group Creation and Organizational Structuring functionality within the platform empowers users to seamlessly establish and manage groups, fostering a structured and collaborative environment. This feature enables the effortless creation of diverse groups tailored to specific project requirements or organizational goals. Users can efficiently organize and allocate tasks, streamline communication, and enhance overall productivity by customizing group structures to align with their unique workflow. ### Story Design & Develop a group creation and organizational structuring functionality. **User Story:** **As a** group admin, **I want to** be able to create groups and organize them within a structured hierarchy **so that** I can efficiently manage team collaboration and communication. **Acceptance Criteria** - Given that the user has created or registered as a "Group account" on the platform and is logged in, the user sees a "CTA" prompting them to complete their profile setup with the following details: - **Contact & Location** - Contact Email _(Required)_ - Contact Number _(Optional)_ - Website URL _(Optional)_ - Physical Address _(Optional)_ - City/Region _(Optional)_ - Country _(Optional)_ - **Membership & Privacy** - Membership Type _(e.g., Open, By Invitation Only, Requires Approval)_ - Privacy Setting _(e.g., Public, Private)_ - Member Roles & Permissions _(Define roles and what actions each role can perform)_ - **Group Categories & Interests** - Primary Category _(e.g., Education, Health, Environment)_ - Secondary Categories _(Optional, e.g., Advocacy, Community Service)_ - Tags/Keywords _(To help in search and categorization)_ - **Group Activities & Events** - Regular Meeting Schedule _(Optional, e.g., Every Tuesday at 6 PM)_ - Upcoming Events _(Optional, can be added later)_ - Past Events _(Optional, can be added later)_ - **Social Media & External Links** - Facebook Page _(Optional)_ - Twitter Handle _(Optional)_ - LinkedIn Profile _(Optional)_ - Other Social Media Links _(Optional)_ - External Resources _(e.g., Related articles, publications, websites)_ - **Additional Information** - Group Objectives/Mission Statement - Group History/Background _(Optional)_ - Consider incorporating a progress indicator to show users how far they are in completing their group profile. - Users can organize groups into a hierarchical structure. The hierarchy supports multiple levels (parent-child relationships) to represent different organizational levels or departments. - Each subgroup displays relevant details, including its name, description, and the number of members. The user (Group Admin) can edit the details of any group within the structure. - Users (Group Admin) can send group requests and also receive friend requests. - Users (Group Admin) can also remove members from a group or subgroup. - Users can easily search for specific groups within the hierarchy. The search results display relevant details, making it simple to identify the desired group. ??????????? - The system allows users to set permissions for each group. - Permissions include the ability to create subgroups, add or remove members, and manage group details. - Users (Group Admins) receive notifications for any updates or changes related to the groups they manage or are a part of. - Notifications include new group creations, membership changes, and updates to group details. **Edge Cases** - Duplicate Group Names: - The system should prevent the creation of groups with duplicate names within the same hierarchy. - Maximum Hierarchy Depth: - Ensure that the system handles the maximum allowed depth of the hierarchy gracefully and provides clear messaging if the user attempts to exceed this limit. - Adding Non-existent Members: - If attempting to add a member who does not exist in the system, provide an error message and guide the user on adding valid members. - Editing Group Details: - Ensure that changes to group details are immediately reflected in the system and that users see updated information without the need for manual refresh. - Permission Validation: - Verify that users attempting to perform actions within a group have the necessary permissions, and prevent unauthorized actions. - Concurrent Edits: - Handle scenarios where multiple users are editing the same group simultaneously to avoid conflicts and ensure data integrity. ### Tasks Here is a link to the list of defined tasks for group creation functionality, https://github.com/ASCENDynamics-NFP/AscendCoopPlatform/issues/157#issue-2088952336
mufniarz commented 9 months ago

I wanted to just put a link to the backend schema structure for this. https://github.com/ASCENDynamics-NFP/AscendCoopPlatform/wiki/accounts-Collection-and-Sub%E2%80%90Collections We're using accounts to store Group data where account.type == 'group' and the sub-collection accounts.relatedAccounts to store relationships between groups.