diff --git a/doc/Design Docs/UserManagement/Edit User Records (2).svg b/doc/Design Docs/UserManagement/Edit User Records (2).svg
new file mode 100644
index 0000000..c6aa0e5
--- /dev/null
+++ b/doc/Design Docs/UserManagement/Edit User Records (2).svg
@@ -0,0 +1 @@
+title%20Edit%20User%20Record%0Aactor%20User%0Aparticipant%20Controller.cs%20%2390EE90%0Aparticipant%20UserAccount%20%23CBC3E3%0Aparticipant%20SystemAccountManager%20%23ffffe0%0Aparticipant%20AccountService%20%23ff8b3d%0Aparticipant%20SqlDAO%20%23D3D3D3%0A%2F%2FSqlDAO%0Adatabase%20SqlServer(MariaDB)%20%2300FFFF%0A%0A%2F%2Factivate%20User%20%0Aactivate%20Controller.cs%20%2390EE90%0AUser-%3EController.cs%3A%20%2B%2BRequest%20to%20edit%20user%5Cnby%20a%20different%20user%2B%2B%0A%0A%2F%2F%20Create%20new%20Admin%0AController.cs-%3ESystemAccountManager%3A%2B%2B%20manager%20%3D%20new%20SystemAccountManager()%2B%2B%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3AConstructor()%0ASystemAccountManager-%3ESqlDAO%3A%20%2B%2Bnew%20SqlDAO()%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlDAO%3A%20%2B%2BConstructor()%2B%2B%0ASystemAccountManager%3C--SqlDAO%3A%20%2B%2Bnew%20SqlDAO%2B%2B%0Adeactivate%20SqlDAO%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20New%20SystemAccountManager%2B%2B%0Adeactivate%20SystemAccountManager%0A%0A%2F%2F%0Aactivate%20UserAccount%20%23CBC3E3%0AController.cs-%3EUserAccount%3A%2B%2B%20new%20UserAccount(string%20username%2C%5Cn%20string%20password%2C%5Cn%20string%20email%2C%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AUserAccount-%3EUserAccount%3A%20%20%2B%2Bstring%20username%2C%5Cn%20string%20password%2C%5Cn%20string%20email%2C%5Cn%20DateTime%20RegistrationTimeStamp%2B%2B%0AController.cs%3C--UserAccount%3A%2B%2BNew%20UserAccount%2B%2B%0Adeactivate%20UserAccount%0A%2F%2Flook%20over%0AController.cs-%3ESystemAccountManager%3A%20%2B%2Bmanager.UpdateUserRecord(user%3AUserAccount%2C%5CnActiveUser%3Auser%2C%20UpdateObj%3A%20userUpdate)%2B%2B%0A%0A%2F%2Fcheck%20if%20there%20is%20an%20admin%20user%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESqlDAO%3A%2B%2BisAdmin(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2BSqlRead%20confirmAdmin()%2B%2B%0Aactivate%20SqlServer(MariaDB)%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2BSelect%20*%20from%20Admins%5Cn%20where%20Username%20%3D%20%40UserName%20%5Cnand%20Password%20%3D%20%40Pwd%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASystemAccountManager%3C--SqlDAO%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlDAO%0A%0A%2F%2FUnauthorized%20role%20section%0Agroup%20%232f2e7b%20Unauthorized%20User%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Adeactivate%20SystemAccountManager%0AUser%3C--Controller.cs%3A%2B%2Breturn%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Aend%0A%0A%0A%2F%2FAuthorized%20role%20section%0Agroup%20%23blue%20Authorized%20User%20%23white%0A%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3A%2B%2BValidCredentials(user%3A%20UserAccount)%2B%2B%0Agroup%20%23red%20Invalid%20Information%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22Invalid%20input%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Invalid%20input%22%2B%2B%0Adeactivate%20SystemAccountManager%0Aend%0Agroup%20%23green%20Valid%20Information%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3EAccountService%3A%20%2B%2BAccountService%5Cn.CreateUserRecord(user%3AUserAccount%5Cn%2CActiveUser%3Auser%2C%20UpdateObj%3A%20userUpdate)%2B%2B%0Aactivate%20AccountService%20%09%23ff8b3d%0AAccountService-%3ESqlDAO%3A%20%2B%2BSqlDAO%5Cn.CreateUserRecord(user%3AUserAccount%5Cn%2CActiveUser%3Auser%2C%20UpdateObj%3A%20userUpdate)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%20%2B%2BisUser(user%3AUserAccount)%2B%2B%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2B%20%20Select%20*%5CnFrom%20Users%5Cnwhere%20Username%5Cn%3D%20%40UserName%20OR%5Cnemail%20%3D%20%40Email%2B%2B%0Agroup%20%23red%20data%20store%20timed%20out%20%23white%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2BSqlException%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASqlDAO-%3ESqlDAO%3A%20%20%20%20%20%20%2B%2BCatch%5CnSqlException%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22Database%20timed%20out%22%2B%2B%0A%0ASystemAccountManager%3C--AccountService%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0Aend%0Agroup%20%23blue%20data%20store%20is%20online%20%23white%0A%2F%2F%20User%20exists%0Agroup%20%23green%20User%20does%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20True%2B%2B%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2B%20SQL%20insert%5Cnuser%20credentials%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%201%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20information%20updated%20successfully%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20information%20updated%20successfully%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20information%20updated%20successfully%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22User%20information%5Cn%20updated%20successfully%22%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0Aend%20%0A%2F%2F%20User%20doesn't%20exist%0Agroup%20%23green%20User%20does%20not%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20False%2B%2B%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2B%20SQL%20insert%5Cnuser%20credentials%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%201%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20is%20now%20registered%22%2B%2B%0Adeactivate%20AccountService%0Adeactivate%20SqlDAO%0Adeactivate%20SqlServer(MariaDB)%0Adeactivate%20SystemAccountManager%0Adeactivate%20Controller.cs%0Aend%0A%2F%2Fdeactivate%20User%0Aend%0Aend%0Aend Edit User Record User Controller.cs UserAccount SystemAccountManager AccountService SqlDAO SqlServer(MariaDB) Request to edit user by a different user manager = new SystemAccountManager() Constructor() new SqlDAO() Constructor() new SqlDAO New SystemAccountManager new UserAccount(string username, string password, string email, DateTime RegistrationTimeStamp) string username, string password, string email, DateTime RegistrationTimeStamp New UserAccount manager.UpdateUserRecord(user:UserAccount, ActiveUser:user, UpdateObj: userUpdate) isAdmin(user:UserAccount) SqlRead confirmAdmin() Select * from Admins where Username = @UserName and Password = @Pwd return true return true return "Access Denied: Unauthorized" return "Access Denied: Unauthorized" ValidCredentials(user: UserAccount) return "Invalid input" return "Invalid input" AccountService .CreateUserRecord(user:UserAccount ,ActiveUser:user, UpdateObj: userUpdate) SqlDAO .CreateUserRecord(user:UserAccount ,ActiveUser:user, UpdateObj: userUpdate) isUser(user:UserAccount) Select * From Users where Username = @UserName OR email = @Email SqlException Catch SqlException return "Database timed out" return "Database timed out" return "Database timed out" return "Database timed out" return True SQL insert user credentials return 1 return "User information updated successfully" return "User information updated successfully" return "User information updated successfully" return "User information updated successfully" return False SQL insert user credentials return 1 return "User is now registered" return "User is now registered" return "User is now registered" return "User is now registered" Unauthorized User Authorized User Invalid Information Valid Information data store timed out data store is online User does exist User does not exist
\ No newline at end of file
diff --git a/doc/Design Docs/UserManagement/LogToFile_Sequence.svg b/doc/Design Docs/UserManagement/LogToFile_Sequence.svg
new file mode 100644
index 0000000..0796128
--- /dev/null
+++ b/doc/Design Docs/UserManagement/LogToFile_Sequence.svg
@@ -0,0 +1 @@
+title%20Log%20Event%20to%20File%20%0A%0Aparticipant%20Controller.cs%20%23lightgreen%0Aparticipant%20LoggingManager%20%23ffffe0%0Aparticipant%20LogEntry%20%23cbc3e3%0Aparticipant%20FileLoggerFactory%20%23ff8b3d%0Aparticipant%20FileLogger%20%23D3D3D3%0A%0A%0A%0A%0A%5B-%3EController.cs%3Arequest%20to%20log%20event%20to%20file%0Aactivate%20Controller.cs%20%23lightgreen%0A%0AController.cs-%3ELoggingManager%3Amanager%20%3D%20new%20LoggingManager()%0A%0Aactivate%20LoggingManager%20%23ffffe0%0A%0ALoggingManager-%3ELoggingManager%3AConstructor()%0A%0ALoggingManager-%3ELogEntry%3A_logEntry%20%3D%20new%20LogEntry(int%20userID%2C%5CnDateTime%20timestamp%2C%20string%20level%2C%20%5Cnstring%20category%2C%20string%20message)%0A%0Aactivate%20LogEntry%20%23cbc3e3%0A%0A%0ALogEntry-%3ELogEntry%3AConstuctor(int%20userID%2C%5Cnstring%20level%2C%20%5CnDateTime%20timestamp%2C%5Cnstring%20category%2C%5Cnstring%20description)%0ALoggingManager%3C--LogEntry%3Areturn%20new%20LogEntry()%0A%0Adeactivate%20LogEntry%0ALoggingManager-%3EFileLoggerFactory%3A_loggerFactory%20%3D%20new%20FileLoggerFactory()%0Aactivate%20FileLoggerFactory%20%23ff8b3d%0A%0AFileLoggerFactory-%3EFileLoggerFactory%3A%20Constructor()%0A%0ALoggingManager%3C--FileLoggerFactory%3Areturn%20new%20FileLoggerFactory%0ALoggingManager-%3EFileLoggerFactory%3A_logger%20%3D%20_loggerFactory.CreateLogger()%0AFileLoggerFactory-%3EFileLogger%3A%20new%20FileLogger()%0A%0A%0Aactivate%20FileLogger%20%23D3D3D3%0AFileLogger-%3EFileLogger%3AConstructor()%0A%0ALoggingManager%3C--FileLogger%3Areturn%20new%20FileLogger()%0Adeactivate%20FileLoggerFactory%0A%0ALoggingManager-%3EFileLogger%3A_logger.Log(_logEntry)%0A%0Adeactivate%20LoggingManager%0AFileLogger-%3EFileLogger%3AAppendFile(LogEntry)%0A%0A%0Aalt%20%23red%20file%20not%20found%20%0AFileLogger-%3EFileLogger%3ACreateFile()%0A%0Aend%0A%0Aalt%20%23red%20insufficient%20storage%20capacity%20%0AFileLogger-%3EFileLogger%3A%20new%20IOException()%0A%0AController.cs%3C--FileLogger%3Areturn%20new%20IOException()%0Aend%20%0A Log Event to File Controller.cs LoggingManager LogEntry FileLoggerFactory FileLogger request to log event to file manager = new LoggingManager() Constructor() _logEntry = new LogEntry(int userID, DateTime timestamp, string level, string category, string message) Constuctor(int userID, string level, DateTime timestamp, string category, string description) return new LogEntry() _loggerFactory = new FileLoggerFactory() Constructor() return new FileLoggerFactory _logger = _loggerFactory.CreateLogger() new FileLogger() Constructor() return new FileLogger() _logger.Log(_logEntry) AppendFile(LogEntry) CreateFile() new IOException() return new IOException() alt [file not found ] alt [insufficient storage capacity ]
\ No newline at end of file
diff --git a/doc/Design Docs/UserManagement/User Management_ Create Account (2).svg b/doc/Design Docs/UserManagement/User Management_ Create Account (2).svg
new file mode 100644
index 0000000..ce60058
--- /dev/null
+++ b/doc/Design Docs/UserManagement/User Management_ Create Account (2).svg
@@ -0,0 +1 @@
+title%20Create%20User%20Record%0Aactor%20User%0Aparticipant%20Controller.cs%20%2390EE90%0Aparticipant%20UserAccount%20%23CBC3E3%0Aparticipant%20SystemAccountManager%20%23ffffe0%0Aparticipant%20AccountService%20%23ff8b3d%0Aparticipant%20SqlDAO%20%23D3D3D3%0A%2F%2FSqlDAO%0Adatabase%20SqlServer(MariaDB)%20%2300FFFF%0A%0A%2F%2Factivate%20User%20%0Aactivate%20Controller.cs%20%2390EE90%0AUser-%3EController.cs%3A%20%2B%2BCreate%20new%20User%2B%2B%0A%0A%2F%2F%20Create%20new%20Admin%0AController.cs-%3ESystemAccountManager%3A%2B%2B%20manager%20%3D%20new%20SystemAccountManager()%2B%2B%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3AConstructor()%0ASystemAccountManager-%3ESqlDAO%3A%20%2B%2Bnew%20SqlDAO()%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlDAO%3A%20%2B%2BConstructor()%2B%2B%0ASystemAccountManager%3C--SqlDAO%3A%20%2B%2Bnew%20SqlDAO%2B%2B%0Adeactivate%20SqlDAO%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20New%20SystemAccountManager%2B%2B%0Adeactivate%20SystemAccountManager%0A%0A%2F%2F%0Aactivate%20UserAccount%20%23CBC3E3%0AController.cs-%3EUserAccount%3A%2B%2B%20new%20UserAccount(string%20username%2C%5Cn%20string%20password%2C%5Cn%20string%20email%2C%5Cn%20string%20securityQuestion%2C%5Cn%20string%20securityQuestionAnswer%2C%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AUserAccount-%3EUserAccount%3A%20%20%2B%2BConstructor(string%20username%2C%5Cn%20string%20password%2C%5Cn%20string%20email%2C%5Cn%20string%20securityQuestion%2C%5Cn%20string%20securityQuestionAnswer%2C%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AController.cs%3C--UserAccount%3A%2B%2BNew%20UserAccount%2B%2B%0Adeactivate%20UserAccount%0A%2F%2F%0AController.cs-%3ESystemAccountManager%3A%20%2B%2Bmanager.CreateUserRecord(user%3AUserAccount)%2B%2B%0A%0A%2F%2Fcheck%20if%20there%20is%20an%20admin%20user%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESqlDAO%3A%2B%2BisAdmin(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2BSqlRead%20confirmAdmin()%2B%2B%0Aactivate%20SqlServer(MariaDB)%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2BSelect%20*%20from%20Admins%5Cn%20where%20Username%20%3D%20%40UserName%20%5Cnand%20Password%20%3D%20%40Pwd%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASystemAccountManager%3C--SqlDAO%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlDAO%0A%0A%2F%2FUnauthorized%20role%20section%0Agroup%20%232f2e7b%20Unauthorized%20User%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Adeactivate%20SystemAccountManager%0AUser%3C--Controller.cs%3A%2B%2Breturn%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Aend%0A%0A%0A%2F%2FAuthorized%20role%20section%0Agroup%20%23blue%20Authorized%20User%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3A%2B%2BValidCredentials(user%3A%20UserAccount)%2B%2B%0Agroup%20%23red%20Invalid%20Information%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22Invalid%20input%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Invalid%20input%22%2B%2B%0Adeactivate%20SystemAccountManager%0Aend%0Agroup%20%23green%20Valid%20Information%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3EAccountService%3A%20%2B%2BAccountService.CreateUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20AccountService%20%09%23ff8b3d%0AAccountService-%3ESqlDAO%3A%20%2B%2BSqlDAO%5Cn.CreateUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%20%2B%2BisUser(user%3AUserAccount)%2B%2B%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2B%20Select%20*%5CnFrom%20Users%5Cnwhere%20Username%5Cn%3D%20%40UserName%20OR%5Cnemail%20%3D%20%40Email%2B%2B%0Agroup%20%23red%20data%20store%20timed%20out%20%23white%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2BSqlException%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASqlDAO-%3ESqlDAO%3A%20%20%20%20%20%20%2B%2BCatch%5CnSqlException%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22Database%20timed%20out%22%2B%2B%0A%0ASystemAccountManager%3C--AccountService%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0Aend%0Agroup%20%23blue%20data%20store%20is%20online%20%23white%0A%2F%2F%20User%20exists%0Agroup%20%23green%20User%20does%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20True%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20is%20already%20registered%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20is%20already%20registered%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20is%20already%20registered%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20is%20already%20registered%22%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0Aend%20%0A%2F%2F%20User%20doesn't%20exist%0Agroup%20%23green%20User%20does%20not%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20False%2B%2B%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2B%20SQL%20insert%5Cnuser%20credentials%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%201%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20is%20now%20registered%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20is%20now%20registered%22%2B%2B%0Adeactivate%20AccountService%0Adeactivate%20SqlDAO%0Adeactivate%20SqlServer(MariaDB)%0Adeactivate%20SystemAccountManager%0Adeactivate%20Controller.cs%0Aend%0A%2F%2Fdeactivate%20User%0Aend%0Aend%0Aend Create User Record User Controller.cs UserAccount SystemAccountManager AccountService SqlDAO SqlServer(MariaDB) Create new User manager = new SystemAccountManager() Constructor() new SqlDAO() Constructor() new SqlDAO New SystemAccountManager new UserAccount(string username, string password, string email, string securityQuestion, string securityQuestionAnswer, DateTime RegistrationTimeStamp) Constructor(string username, string password, string email, string securityQuestion, string securityQuestionAnswer, DateTime RegistrationTimeStamp) New UserAccount manager.CreateUserRecord(user:UserAccount) isAdmin(user:UserAccount) SqlRead confirmAdmin() Select * from Admins where Username = @UserName and Password = @Pwd return true return true return "Access Denied: Unauthorized" return "Access Denied: Unauthorized" ValidCredentials(user: UserAccount) return "Invalid input" return "Invalid input" AccountService.CreateUserRecord(user:UserAccount) SqlDAO .CreateUserRecord(user:UserAccount) isUser(user:UserAccount) Select * From Users where Username = @UserName OR email = @Email SqlException Catch SqlException return "Database timed out" return "Database timed out" return "Database timed out" return "Database timed out" return True return "User is already registered" return "User is already registered" return "User is already registered" return "User is already registered" return False SQL insert user credentials return 1 return "User is now registered" return "User is now registered" return "User is now registered" return "User is now registered" Unauthorized User Authorized User Invalid Information Valid Information data store timed out data store is online User does exist User does not exist
\ No newline at end of file
diff --git a/doc/Design Docs/UserManagement/User_Management_ Disable User.svg b/doc/Design Docs/UserManagement/User_Management_ Disable User.svg
new file mode 100644
index 0000000..241c171
--- /dev/null
+++ b/doc/Design Docs/UserManagement/User_Management_ Disable User.svg
@@ -0,0 +1 @@
+title%20Disable%20Specfied%20User%0Aactor%20User%0Aparticipant%20Controller.cs%20%2390EE90%0Aparticipant%20UserAccount%20%23CBC3E3%0Aparticipant%20SystemAccountManager%20%23ffffe0%0Aparticipant%20AccountService%20%23ff8b3d%0Aparticipant%20SqlDAO%20%23D3D3D3%0A%2F%2FSqlDAO%0Adatabase%20SqlServer(MariaDB)%20%2300FFFF%0A%0A%2F%2Factivate%20User%20%0Aactivate%20Controller.cs%20%2390EE90%0AUser-%3EController.cs%3A%20%2B%2BRequest%20to%20disable%20user%5Cn%20by%20a%20different%20user%2B%2B%0A%0A%2F%2F%20Create%20new%20Admin%0AController.cs-%3ESystemAccountManager%3A%2B%2B%20manager%20%3D%20new%20SystemAccountManager()%2B%2B%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3AConstructor()%0ASystemAccountManager-%3ESqlDAO%3A%20%2B%2Bnew%20SqlDAO()%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlDAO%3A%20%2B%2BConstructor()%2B%2B%0ASystemAccountManager%3C--SqlDAO%3A%20%2B%2Bnew%20SqlDAO%2B%2B%0Adeactivate%20SqlDAO%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20New%20SystemAccountManager%2B%2B%0Adeactivate%20SystemAccountManager%0A%0A%2F%2F%0Aactivate%20UserAccount%20%23CBC3E3%0AController.cs-%3EUserAccount%3A%2B%2B%20new%20UserAccount(string%20username%2C%5Cn%20string%20password%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AUserAccount-%3EUserAccount%3A%20%20%2B%2BConstructor(string%20username%2C%5Cn%20string%20password%2C%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AController.cs%3C--UserAccount%3A%2B%2BNew%20UserAccount%2B%2B%0Adeactivate%20UserAccount%0A%2F%2F%0AController.cs-%3ESystemAccountManager%3A%20%2B%2Bmanager.DisableUserRecord(user%3AUserAccount)%2B%2B%0A%0A%2F%2Fcheck%20if%20there%20is%20an%20admin%20user%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESqlDAO%3A%2B%2BisAdmin(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2BSqlRead%20confirmAdmin()%2B%2B%0Aactivate%20SqlServer(MariaDB)%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2BSelect%20*%20from%20Admins%5Cn%20where%20Username%20%3D%20%40UserName%20%5Cnand%20Password%20%3D%20%40Pwd%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASystemAccountManager%3C--SqlDAO%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlDAO%0A%0A%2F%2FUnauthorized%20role%20section%0Agroup%20%232f2e7b%20Unauthorized%20User%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Adeactivate%20SystemAccountManager%0AUser%3C--Controller.cs%3A%2B%2Breturn%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Aend%0A%0A%0A%2F%2FAuthorized%20role%20section%0Agroup%20%23blue%20Authorized%20User%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3A%2B%2BValidCredentials(user%3A%20UserAccount)%2B%2B%0Agroup%20%23red%20Invalid%20Information%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22Invalid%20input%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Invalid%20input%22%2B%2B%0Adeactivate%20SystemAccountManager%0Aend%0Agroup%20%23green%20Valid%20Information%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3EAccountService%3A%20%2B%2BAccountService.DisableUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20AccountService%20%09%23ff8b3d%0AAccountService-%3ESqlDAO%3A%20%2B%2BSqlDAO%5Cn.DisableUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%20%2B%2BisUser(user%3AUserAccount)%2B%2B%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2B%20Select%20*%5CnFrom%20Users%5Cnwhere%20Username%5Cn%3D%20%40UserName%20OR%5Cnemail%20%3D%20%40Email%2B%2B%0Agroup%20%23red%20data%20store%20timed%20out%20%23white%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2BSqlException%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASqlDAO-%3ESqlDAO%3A%20%20%20%20%20%20%2B%2BCatch%5CnSqlException%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22Database%20timed%20out%22%2B%2B%0A%0ASystemAccountManager%3C--AccountService%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0Aend%0Agroup%20%23blue%20data%20store%20is%20online%20%23white%0A%2F%2F%20User%20exists%0Agroup%20%23green%20User%20does%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20True%2B%2B%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2B%20SQL%20insert%5Cndisable%20command%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%201%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20is%20now%20disabled%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20is%20now%20disabled%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20is%20now%20disabled%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20is%20now%20disabled%22%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0Aend%20%0A%2F%2F%20User%20doesn't%20exist%0Agroup%20%23red%20User%20does%20not%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20False%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20does%20not%20exist%22%2B%2B%0Adeactivate%20AccountService%0Adeactivate%20SqlDAO%0Adeactivate%20SqlServer(MariaDB)%0Adeactivate%20SystemAccountManager%0Adeactivate%20Controller.cs%0Aend%0A%2F%2Fdeactivate%20User%0Aend%0Aend%0Aend Disable Specfied User User Controller.cs UserAccount SystemAccountManager AccountService SqlDAO SqlServer(MariaDB) Request to disable user by a different user manager = new SystemAccountManager() Constructor() new SqlDAO() Constructor() new SqlDAO New SystemAccountManager new UserAccount(string username, string password DateTime RegistrationTimeStamp) Constructor(string username, string password, DateTime RegistrationTimeStamp) New UserAccount manager.DisableUserRecord(user:UserAccount) isAdmin(user:UserAccount) SqlRead confirmAdmin() Select * from Admins where Username = @UserName and Password = @Pwd return true return true return "Access Denied: Unauthorized" return "Access Denied: Unauthorized" ValidCredentials(user: UserAccount) return "Invalid input" return "Invalid input" AccountService.DisableUserRecord(user:UserAccount) SqlDAO .DisableUserRecord(user:UserAccount) isUser(user:UserAccount) Select * From Users where Username = @UserName OR email = @Email SqlException Catch SqlException return "Database timed out" return "Database timed out" return "Database timed out" return "Database timed out" return True SQL insert disable command return 1 return "User is now disabled" return "User is now disabled" return "User is now disabled" return "User is now disabled" return False return "User does not exist" return "User does not exist" return "User does not exist" return "User does not exist" Unauthorized User Authorized User Invalid Information Valid Information data store timed out data store is online User does exist User does not exist
\ No newline at end of file
diff --git a/doc/Design Docs/UserManagement/User_Management_DeleteUser.svg b/doc/Design Docs/UserManagement/User_Management_DeleteUser.svg
new file mode 100644
index 0000000..def39fb
--- /dev/null
+++ b/doc/Design Docs/UserManagement/User_Management_DeleteUser.svg
@@ -0,0 +1 @@
+title%20Delete%20User%20Record%0Aactor%20User%0Aparticipant%20Controller.cs%20%2390EE90%0Aparticipant%20UserAccount%20%23CBC3E3%0Aparticipant%20SystemAccountManager%20%23ffffe0%0Aparticipant%20AccountService%20%23ff8b3d%0Aparticipant%20SqlDAO%20%23D3D3D3%0A%2F%2FSqlDAO%0Adatabase%20SqlServer(MariaDB)%20%2300FFFF%0A%0A%2F%2Factivate%20User%20%0Aactivate%20Controller.cs%20%2390EE90%0AUser-%3EController.cs%3A%20%2B%2BRequest%20to%20delete%20user%2B%2B%0A%0A%2F%2F%20Create%20new%20Admin%0AController.cs-%3ESystemAccountManager%3A%2B%2B%20manager%20%3D%20new%20SystemAccountManager()%2B%2B%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3AConstructor()%0ASystemAccountManager-%3ESqlDAO%3A%20%2B%2Bnew%20SqlDAO()%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlDAO%3A%20%2B%2BConstructor()%2B%2B%0ASystemAccountManager%3C--SqlDAO%3A%20%2B%2Bnew%20SqlDAO%2B%2B%0Adeactivate%20SqlDAO%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20New%20SystemAccountManager%2B%2B%0Adeactivate%20SystemAccountManager%0A%0A%2F%2F%0Aactivate%20UserAccount%20%23CBC3E3%0AController.cs-%3EUserAccount%3A%2B%2B%20new%20UserAccount(string%20username%2C%5Cn%20string%20password%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AUserAccount-%3EUserAccount%3A%20%20%2B%2BConstructor(string%20username%2C%5Cn%20string%20password%2C%5Cn%20DateTime%20RegistrationTimeStamp)%2B%2B%0AController.cs%3C--UserAccount%3A%2B%2BNew%20UserAccount%2B%2B%0Adeactivate%20UserAccount%0A%2F%2F%0AController.cs-%3ESystemAccountManager%3A%20%2B%2Bmanager.DeleteUserRecord(user%3AUserAccount)%2B%2B%0A%0A%2F%2Fcheck%20if%20there%20is%20an%20admin%20user%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESqlDAO%3A%2B%2BisAdmin(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2BSqlRead%20confirmAdmin()%2B%2B%0Aactivate%20SqlServer(MariaDB)%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2BSelect%20*%20from%20Admins%5Cn%20where%20Username%20%3D%20%40UserName%20%5Cnand%20Password%20%3D%20%40Pwd%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASystemAccountManager%3C--SqlDAO%3A%2B%2Breturn%20true%2B%2B%0Adeactivate%20SqlDAO%0A%0A%2F%2FUnauthorized%20role%20section%0Agroup%20%232f2e7b%20Unauthorized%20User%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Adeactivate%20SystemAccountManager%0AUser%3C--Controller.cs%3A%2B%2Breturn%20%22Access%20Denied%3A%20%5CnUnauthorized%22%2B%2B%0Aend%0A%0A%0A%2F%2FAuthorized%20role%20section%0Agroup%20%23blue%20Authorized%20User%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3ESystemAccountManager%3A%2B%2BValidCredentials(user%3A%20UserAccount)%2B%2B%0Agroup%20%23red%20Invalid%20Information%20%23white%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22Invalid%20input%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Invalid%20input%22%2B%2B%0Adeactivate%20SystemAccountManager%0Aend%0Agroup%20%23green%20Valid%20Information%20%23white%0Aactivate%20SystemAccountManager%20%23ffffe0%0ASystemAccountManager-%3EAccountService%3A%20%2B%2BAccountService.DeleteUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20AccountService%20%09%23ff8b3d%0AAccountService-%3ESqlDAO%3A%20%2B%2BSqlDAO%5Cn.DeleteUserRecord(user%3AUserAccount)%2B%2B%0Aactivate%20SqlDAO%20%23D3D3D3%0ASqlDAO-%3ESqlServer(MariaDB)%3A%20%2B%2BisUser(user%3AUserAccount)%2B%2B%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlServer(MariaDB)-%3ESqlServer(MariaDB)%3A%2B%2B%20Select%20*%5CnFrom%20Users%5Cnwhere%20Username%5Cn%3D%20%40UserName%20OR%5Cnemail%20%3D%20%40Email%2B%2B%0Agroup%20%23red%20data%20store%20timed%20out%20%23white%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2BSqlException%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0ASqlDAO-%3ESqlDAO%3A%20%20%20%20%20%20%2B%2BCatch%5CnSqlException%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22Database%20timed%20out%22%2B%2B%0A%0ASystemAccountManager%3C--AccountService%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20return%20%22Database%20timed%20out%22%2B%2B%0Aend%0Agroup%20%23blue%20data%20store%20is%20online%20%23white%0A%2F%2F%20User%20exists%0Agroup%20%23green%20User%20does%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20True%2B%2B%0ASqlDAO-%3ESqlServer(MariaDB)%3A%2B%2BDelete%20from%20users%5Cnwhere%20Username%20%3D%20%40UserName%20and%20Password%20%3D%20%40PWD%2B%2B%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%201%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20deleted%20successfully%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20deleted%20successfully%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20deleted%20successfully%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20deleted%20successfully%22%2B%2B%0Adeactivate%20SqlServer(MariaDB)%0Aend%20%0A%2F%2F%20User%20doesn't%20exist%0Agroup%20%23red%20User%20does%20not%20exist%20%23white%0Aactivate%20SqlServer(MariaDB)%20%2300FFFF%0ASqlDAO%3C--SqlServer(MariaDB)%3A%2B%2B%20return%20False%2B%2B%0AAccountService%3C--SqlDAO%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0ASystemAccountManager%3C--AccountService%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0AController.cs%3C--SystemAccountManager%3A%2B%2Breturn%20%22User%20does%20not%20exist%22%2B%2B%0AUser%3C--Controller.cs%3A%2B%2B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%5Cn%22User%20does%20not%20exist%22%2B%2B%0Adeactivate%20AccountService%0Adeactivate%20SqlDAO%0Adeactivate%20SqlServer(MariaDB)%0Adeactivate%20SystemAccountManager%0Adeactivate%20Controller.cs%0Aend%0A%2F%2Fdeactivate%20User%0Aend%0Aend%0Aend Delete User Record User Controller.cs UserAccount SystemAccountManager AccountService SqlDAO SqlServer(MariaDB) Request to delete user manager = new SystemAccountManager() Constructor() new SqlDAO() Constructor() new SqlDAO New SystemAccountManager new UserAccount(string username, string password DateTime RegistrationTimeStamp) Constructor(string username, string password, DateTime RegistrationTimeStamp) New UserAccount manager.DeleteUserRecord(user:UserAccount) isAdmin(user:UserAccount) SqlRead confirmAdmin() Select * from Admins where Username = @UserName and Password = @Pwd return true return true return "Access Denied: Unauthorized" return "Access Denied: Unauthorized" ValidCredentials(user: UserAccount) return "Invalid input" return "Invalid input" AccountService.DeleteUserRecord(user:UserAccount) SqlDAO .DeleteUserRecord(user:UserAccount) isUser(user:UserAccount) Select * From Users where Username = @UserName OR email = @Email SqlException Catch SqlException return "Database timed out" return "Database timed out" return "Database timed out" return "Database timed out" return True Delete from users where Username = @UserName and Password = @PWD return 1 return "User deleted successfully" return "User deleted successfully" return "User deleted successfully" return "User deleted successfully" return False return "User does not exist" return "User does not exist" return "User does not exist" return "User does not exist" Unauthorized User Authorized User Invalid Information Valid Information data store timed out data store is online User does exist User does not exist
\ No newline at end of file