Changes between Initial Version and Version 1 of UseCase0008PrototypeImplementation


Ignore:
Timestamp:
03/16/26 21:54:40 (5 days ago)
Author:
221511
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCase0008PrototypeImplementation

    v1 v1  
     1= UC0008 Prototype Implementation - Log In to the System =
     2
     3'''Initiating actor:''' Student / Teaching Staff / Faculty Administrator
     4
     5'''Other actors:''' None
     6
     7The user authenticates by entering their institutional email and password. The system looks up the user by email and verifies the password using bcrypt. On success, the user is presented with a role-based main menu. On failure, a generic error message is shown to prevent user enumeration.
     8
     9== Scenario ==
     10
     11 1. The user launches the application and is presented with the login prompt. The user enters their email address and password.
     12{{{
     13=== FRRUAS - Login ===
     14
     15  Email: elena.stojanova@finki.ukim.mk
     16  Password: ********
     17}}}
     18
     19 2. The system queries the database for the user account by email.
     20{{{
     21SELECT u.user_id, u.first_name, u.last_name, u.password, ut.type_name
     22FROM users u
     23JOIN user_types ut ON u.type_id = ut.type_id
     24WHERE u.email = 'elena.stojanova@finki.ukim.mk';
     25}}}
     26
     27 3. The system verifies the entered password against the stored bcrypt hash using `bcrypt.checkpw()`. The credentials are valid.
     28
     29 4. The system displays a welcome message and the role-based main menu.
     30{{{
     31  Welcome, Elena Stojanova (Teaching Staff)!
     32
     33=== Main Menu (Elena Stojanova - Teaching Staff) ===
     34
     35  1. Browse Available Resources
     36  2. Make a Resource Reservation
     37  3. Logout
     38  0. Cancel / Go back
     39}}}
     40
     41== Alternative: Invalid Credentials ==
     42
     43 3a. If the email is not found or the password does not match, the system displays a generic error message.
     44{{{
     45  Invalid email or password. Please try again.
     46}}}