diff --git a/docs/Organization.md b/docs/Organization.md new file mode 100644 index 0000000..1c6243c --- /dev/null +++ b/docs/Organization.md @@ -0,0 +1,35 @@ +# Intro +Each organization are a collection of users and projects. +Users will be able to have multiple organizations and different roles in each of them. For example, a user can be an +admin in one organization and a member in another organization. + +Each organization will have a unique slug that will consist of 4 lowercase letters and this slug will be used for the +database name of each project contained in an organization. + +## Projects +Each project will have a unique name. Each project will be associated with an organization and will have a unique slug +that will come from the organization. The project will have a JSON field that will contain the different applications it has access to + +## Organization Management +The organization management will have different features, such as creating an organization, inviting users to an organization, +managing the roles of users in an organization(admin or not), and deleting an organization. + +### CRUD Operations +- **Create Organization**: Super Admin +- **Read Organization**: Super Admin, Admin and admin of the organization +- **Update Organization**: Super Admin, Admin +- **Delete Organization**: Super Admin + +### User Management +- **Invite User**: Super Admin, Admin and admin of the organization +- **Remove User**: Super Admin, Admin and admin of the organization +- **Change User Role**: Super Admin, Admin and admin of the organization +- **List Users**: Super Admin, Admin and admin of the organization +- **Accept Invitation**: User +- **Decline Invitation**: User + +### Project Management +- **Create Project**: Super Admin +- **Read Project**: Super Admin, Admin and admin of the organization +- **Update Project**: Super Admin +- **Delete Project**: Super Admin