# Features ## User Registration **Scenario:** User registers into the application - Given a new user is on the registration page - When they provide valid details (username, email, password) - And they click "Register" - Then the username, email and password are validated by the system - And their account is created - And they receive a confirmation message ## User Login **Scenario:** User logs into the application - Given a registered user is on the login page - When they enter valid credentials (email/username and password) - And they click "Login" - Then the credentials are validated by the system - And they are granted access to the application ## Role Management **Scenario:** Admin creates and assigns roles - Given an admin is logged in - When they navigate to the roles management page - And they create a new role or edit an existing one - Then the role is saved - And they can assign or unassign it to the users ## Permission Management **Scenario:** Admin manages permissions for roles - Given an admin is logged in - When they navigate to the permissions management page - And they assign or remove permissions for a role - Then the permissions are updated - And users with that role have the correct accesses ## Send a Message **Scenario:** User sends a message in a conversation - Given a user is logged in - And they are in an existing conversation with other users - When they type a message - And they click "Send" - Then the message appears in the conversation for all participants ## Read Messages **Scenario:** User reads messages in a conversation - Given a user is logged in - And they have joined a conversation - When another user sends a message - Then the message appears in the conversation in real time ## Create a Conversation **Scenario:** User creates a conversation with one or more users - Given a user is logged in - When they click "New Conversation" - And they select one or more users - And they click "Create" - Then a new conversation is created - And the selected users are added to the conversation ## Salon Creation **Scenario:** User creates a new salon - Given a user is logged in - When they navigate to the "Create Salon" page - And they provide a salon name - And they click "Create" - Then a new salon is created - And the user is added as a member of the salon ## Invite Users to a Salon **Scenario:** User invites others to join a salon - Given a user is logged in - And they are a member of an existing salon - When they select other users to invite - And they click "Invite" - Then the selected users receive an invitation - And they can join the salon once they accept