{"id":16463991,"url":"https://github.com/musonza/groups","last_synced_at":"2025-03-16T18:31:25.151Z","repository":{"id":57022095,"uuid":"55277679","full_name":"musonza/groups","owner":"musonza","description":"A Laravel 5 user groups package","archived":false,"fork":false,"pushed_at":"2020-02-05T02:59:29.000Z","size":48,"stargazers_count":69,"open_issues_count":5,"forks_count":15,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-27T12:08:30.669Z","etag":null,"topics":["groups","laravel","laravel-groups","php-groups","social-network"],"latest_commit_sha":null,"homepage":null,"language":"PHP","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/musonza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-02T04:30:05.000Z","updated_at":"2024-11-16T16:02:12.000Z","dependencies_parsed_at":"2022-08-23T12:20:45.326Z","dependency_job_id":null,"html_url":"https://github.com/musonza/groups","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musonza%2Fgroups","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musonza%2Fgroups/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musonza%2Fgroups/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/musonza%2Fgroups/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/musonza","download_url":"https://codeload.github.com/musonza/groups/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243826788,"owners_count":20354220,"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":["groups","laravel","laravel-groups","php-groups","social-network"],"created_at":"2024-10-11T11:25:28.416Z","updated_at":"2025-03-16T18:31:24.666Z","avatar_url":"https://github.com/musonza.png","language":"PHP","readme":"[![Build Status](https://travis-ci.org/musonza/groups.svg?branch=master)](https://travis-ci.org/musonza/groups)\n[![Downloads](https://img.shields.io/packagist/dt/musonza/groups.svg?style=flat-square)](https://packagist.org/packages/musonza/groups)\n[![Packagist](https://img.shields.io/packagist/v/musonza/groups.svg)](https://packagist.org/packages/musonza/groups)\n[![StyleCI](https://styleci.io/repos/55277679/shield?branch=master)](https://styleci.io/repos/55277679)\n\n# Table of content\n\n- [Description](#description)\n- [Installation](#installation)\n    + Install with Composer\n    + Add service provider to App\n    + Add facade alias to App\n    + Publish vendor with Artisan\n    + Tables details\n    + Make migration with Artisan\n- [Usage](#usage)\n    + [Groups](#groups)\n        * Create, Delete, Update, Users list, Add member, Join request, Accept join, Decline join, Join request list\n    + [Posts](#posts)\n        * Create, Get, Update, Delete, Add to group, Group posts list, User posts list\n    + [Comments](#comments)\n        * Add, Get, Update, Delete\n    + [Reporting](#reporting)\n        * Report, Remove, Toggle , Count\n    + [Likes](#likes)\n        * Like, Unlike, Toggle, Count\n    \n\n# Description\n\nThis package allows you to add user groups _(groups, comment, like ...)_ system to your Laravel 5 application.\n\n# Installation\n\n1. Via **Composer**, from the command line, run :\n```console\ncomposer require musonza/groups\n```\n\n2. Add the service provider to `./config/app.php` in `providers` array, like :\n```php\n    /*\n     * Package Service Providers...\n     */\n    Musonza\\Groups\\GroupsServiceProvider::class,\n```\n\n3. You can use the facade for shorter code. \nAdd this to `./config/app.php` at the end of `aliases` array :\n\n```php\n    'Groups' =\u003e Musonza\\Groups\\Facades\\GroupsFacade::class,\n```\n\n\u003e Note : The class is bound to the ioC as Groups.\n```php\n$groups = App::make('Groups');\n```\n\n4. From the command line, publish the assets:\n```console\nphp artisan vendor:publish\n```\n\n\u003e Note : This will publish database migrations in `./database/migrations/`.\n```\ncreate_groups_table // main groups table\n    id\n    name\n    description\n    short_description\n    image\n    url\n    user_id\n    private\n    conversation_id\n    extra_info\n    settings\n\n# Usage\n\n## Groups \n\n1. ##### Create a group\n\n```php\n$group = Groups::create($userId, $data);\n```\n\n\u003e Note : Accepted fields in $data array : \n```php\n$data = [\n  'name'              =\u003e '',\n  'description'       =\u003e '', // optional\n  'short_description' =\u003e '', // optional\n  'image'             =\u003e '', // optional\n  'private'           =\u003e 0,  // 0 (public) or 1 (private)\n  'extra_info'        =\u003e '', // optional\n  'settings'          =\u003e '', // optional\n  'conversation_id'   =\u003e 0,  // optional if you want to add messaging to your groups this can be useful\n];\n```\n\n2. ##### Delete a group\n```php\n$group-\u003edelete();\n```\n\n3. ##### Update a group\n```php\n$group-\u003eupdate($updateArray);\n```\n\n4. ##### Get user instance with group relations\n```php\n$user = Groups::getUser($userId); \n```\n\n5. ##### Add members to group\n```php\n$group-\u003eaddMembers([$userId, $userId2, ...]);\n```\n\n6. ##### Request to join a group\n```php\n$group-\u003erequest($userId);\n```\n\n7. ##### Accept a group request\n```php\n$group-\u003eacceptRequest($userId);\n```\n\n8. ##### Decline a group request\n```php\n$group-\u003edeclineRequest($userId);\n```\n\n9. ##### Group requests\n```php\n$requests = $group-\u003erequests;\n```\n\n10. ##### How many groups a user is member of\n```php\n$user = Groups::getUser($userId); \n$count = $user-\u003egroups-\u003ecount();\n```\n\n11. ##### Remove member(s) from group\n```php\n$group-\u003eleave([$userId, $userId2, ...]);\n```\n\n## Posts\n\n1. ##### Create a post\n```php\n$post = Groups::createPost($data);\n```\n\u003e Note : Acceptable values for Post $data array\n```php\n$data = [\n  'title'      =\u003e '', \n  'user_id'    =\u003e 0, \n  'body'       =\u003e '', \n  'type'       =\u003e '', \n  'extra_info' =\u003e '',\n];\n```\n\n2. ##### Get post\n```php\n$post = Groups::post($postId);\n```\n\n3. ##### Update a post\n```php\n$post-\u003eupdate($data);\n```\n\n4. ##### Delete a post\n```php\n$post-\u003edelete();\n```\n\n5. ##### Add a post to a group\n```php\n$group-\u003eattachPost($postId);\n```\n\n6. ##### Add multiple posts to a group\n```php\n$group-\u003eattachPost([$postId, $postId2, ...]);\n```\n7. ##### Remove post from a group\n```php\n$group-\u003edetachPost($postId);\n```\n\n8. ##### Group posts\n```php\n$posts = $group-\u003eposts;\n\n$posts = $group-\u003eposts()-\u003epaginate(5);\n\n$posts = $group-\u003eposts()-\u003eorderBy('id', 'DESC')-\u003epaginate(5);\n\n```\n\n9. ##### User posts\n```php\n$user = Groups::getUser($userId);\n\n$posts = $user-\u003eposts;\n```\n\n\n## Comments\n\n\u003e Note : Acceptable values for Comment $data array\n```php\n$data = [\n  'post_id' =\u003e 0,  \n  'user_id' =\u003e 0, \n  'body'    =\u003e '',\n];\n```\n\n1. ##### Add comment\n```php\n$comment = Groups::addComment($data);\n```\n\n2. ##### Get comment\n```\n$comment = Groups::comment($commentId);\n```\n\n3. ##### Update a comment\n```php\n$comment-\u003eupdate($data);\n```\n\n4. ##### Delete a comment\n```php\n$comment-\u003edelete();\n```\n\n\n## Reporting\n\n1. ##### Report a comment or post\n```php\n$comment-\u003ereport($userIdOfReporter);\n$post-\u003ereport($userIdOfReporter);\n```\n\n2. ##### Remove a post or comment report\n```php\n$post-\u003eremoveReport($userId);\n$comment-\u003eremoveReport($userId);\n```\n\n3. ##### Toggle report/unreport a post or comment\n```php\n$post-\u003etoggleReport($userId);\n$comment-\u003etoggleReport($userId);\n```\n\n4. ##### Post or Comment Report count\n```php\n$commentReports = $comment-\u003ereportsCount;\n$postReports = $post-\u003ereportsCount;\n```\n\n\n## Likes\n\n1. ##### Like a post or comment\n```php\n$post-\u003elike($userId);\n$comment-\u003elike($userId);\n```\n\n2. ##### Unlike a post or comment\n```php\n$post-\u003eunlike($userId);\n$comment-\u003eunlike($userId);\n```\n3. ##### Toggle like/unlike a post or comment\n```php\n$post-\u003etoggleLike($userId);\n$comment-\u003etoggleLike($userId);\n```\n\n4. ##### Post or Comment likes count\n```php\n$postLikes = $post-\u003elikesCount;\n$commentLikes = $comment-\u003elikesCount;\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusonza%2Fgroups","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmusonza%2Fgroups","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmusonza%2Fgroups/lists"}