1. Start
Shape: Oval
Label: Start
  1. Is User Logged In?
Shape: Diamond (Decision)
Label: IsLoggedIn?
Yes arrow → Proceed to IsAdmin?
No arrow → Go to Login
---
  1. Login Process
Shape: Rectangle (Process)
Label: Login()
After login → loop back to IsLoggedIn?
---
  1. Is Admin?
Shape: Diamond (Decision)
Label: IsAdmin?
Yes arrow → Go to AdminMenu
No arrow → Go to UserMenu
---
  1. Admin Menu
Shape: Rectangle (Process)
Label: AdminMenu()
Inside AdminMenu, you can have a subprocess block showing:
AddStudent()
ViewAllStudents()
RemoveStudent()
Logout
Exit
(You can summarize this as one process block to keep it simple)
---
  1. User Menu
Shape: Rectangle (Process)
Label: UserMenu()
Inside UserMenu, you can have a subprocess block showing:
RegisterSelf()
ViewMyInfo()
Logout
Exit
(Also summarized as one block)
---
  1. Logout
Shape: Rectangle (Process)
Label: Logout()
After logout → loop back to IsLoggedIn?
---
  1. Exit
Shape: Oval
Label: Exit Program