A group is a collection of a set of users. A group would consist of the following attributes:

  1. Name - Can only be alphanumeric. Can contain spaces. Should be unique at company level
  2. Description - Defines the purpose of the group.
  3. Creator - ID of group creator
  4. Admins - List of group admins. There can be multiple admins. Admins have the right to modify group settings and add or remove members
  5. Group Banner Image - An image that can be set as the group header
  6. Group icon - an image that will be used as a group icon
  7. Group tag - alphanumeric tag to be used to tag the group in any messages
  8. Group members - List of group members
  9. Membership Restriction - Open (anyone can join without admin approval), Closed (joining a group requires admin approval), Auto (group is automatically created based on rules - users cannot be added manually), Secret (FUTURE: group is not visible to anyone can users can only be invited)