Users
Types
ADMIN: Admin users are users who have FULL control about application resources. Should be reserved for trust people.TEACHER: Teachers can create and modify rooms. Both created and joined rooms.STUDENT: Students cannot create any resource. They only can join to rooms.
Allowed actions
Create a room: Only allowed if is aTEACHERorADMIN.Join to a room: Users can join to a room if they have the room code.Leave a roomForget joined room: Every time you join to a room is saved in a room list. This allows users to don’t have to memorize each room code every time they want to rejoin to that room. Also you can forget that roomt. This won’t remove that room. This only removes that room from user’s list.Remove room: Only allowed if is aTEACHERorADMIN.
User information
User has the following fields
ID: Id generated automatically by the application.Full nameWallet address: Ethereum wallet address associated with user. This wallet should be given when creating user. Also this will be used tho verify signatures when user login using web3Role: This specifies the user type.EmailPhone numerPassword: Password is encrypted automatically using bcrypt algorithm.UsernameAddressSchoolCityPostal codeRoom ID: This field is used to save the latest room where user was connected.Recovery code: This field now is useles but it will be used to allow user to reset their password in case forget it.