Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ToDo] Improve Menu and User Interface #7

Open
gbowne1 opened this issue Feb 2, 2024 · 1 comment
Open

[ToDo] Improve Menu and User Interface #7

gbowne1 opened this issue Feb 2, 2024 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@gbowne1
Copy link
Owner

gbowne1 commented Feb 2, 2024

This program runs in the bash/shell/console/terminal/tty.

I believe a good UI for this would look good if said terminal was full screen running this program/app. I tested several of my screens at roughtly 207 characters wide by 56 characters high.

Use whatever ANSI, ASCII, ISO, UTF8, Unicode characters to create a UI.

This would likely involve adding a UI library in the fugure.

  • Login/Logout: This would include a exit program screen with login/logout option(s).

  • Menu Options: These could include options like "Manage Students", "Manage Teachers", "Assignments", "Grades", "Reports", etc. Each of these options could lead to a separate screen.

  • User Role Indicator: At the top or bottom of the screen, you could display the current user's role (Administrator, Teacher, or Student) and whether they're logged in or not.

  • Current Screen Indicator: This could be a short string indicating which screen the user is currently on. For example, if the user is on the "Manage Students" screen, you could display "Students" somewhere on the screen.

  • Prompt Area: This could be a small area at the bottom of the screen where you display prompts or messages to the user. For example, if the user selects the "Add New Student" option, you could display "Enter student ID:" in this area.

  • Input Field: Right next to the prompt area, you could have a single-line input field where the user can enter data. This could be used for entering IDs, names, grades, etc.

  • Error Messages: If the user enters invalid data or performs an invalid action, you could display an error message in the prompt area.

  • Confirmation Messages: If the user performs an action that requires confirmation (like deleting a record), you could display a confirmation message in the prompt area.

  • Help Option: You could include a "Help" option in the menu that displays brief instructions for each screen.

  • Exit Option: Lastly, you could include an "Exit" option in the menu that logs the user out and exits the program.

@gbowne1 gbowne1 added enhancement New feature or request help wanted Extra attention is needed labels Feb 2, 2024
@gbowne1 gbowne1 added this to the User Interface / Menu System milestone Feb 2, 2024
@gbowne1 gbowne1 added this to Gradebook Feb 2, 2024
@gbowne1 gbowne1 moved this to Ready in Gradebook Feb 7, 2024
@gbowne1
Copy link
Owner Author

gbowne1 commented Feb 7, 2024

The current menu is:

$ ./gradebook

  1. Load Grades
  2. Save Grades
  3. Show Grades
  4. Add Student
  5. Remove Student
  6. Load Students
  7. Save Students
  8. Show Students
  9. Exit
    Choose an option:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
Status: Ready
Development

No branches or pull requests

1 participant