| | 1 | = UseCase: Додавање нов корисник = |
| | 2 | |
| | 3 | == Актер == |
| | 4 | |
| | 5 | Admin (Администратор) |
| | 6 | |
| | 7 | == Цел == |
| | 8 | |
| | 9 | Администраторот сака да додаде нов корисник во системот Stock Master. |
| | 10 | |
| | 11 | == Предуслови == |
| | 12 | |
| | 13 | * Администраторот мора да биде најавен во системот |
| | 14 | * Администраторот мора да има Admin привилегии |
| | 15 | |
| | 16 | == Главен тек == |
| | 17 | |
| | 18 | * Администраторот го отвора Dashboard-от |
| | 19 | [[Image(dashboard1.png, 1000px)]] |
| | 20 | * Администраторот го избира "Settings" од менито |
| | 21 | [[Image(dashboard2.png, 1000px)]] |
| | 22 | * Администраторот кликнува на "Users" од паѓачкото мени |
| | 23 | * Системот го прикажува екранот "User Management" со листа на сите корисници |
| | 24 | [[Image(dashboard3.png, 1000px)]] |
| | 25 | * Администраторот кликнува на копчето "+ Add New User" |
| | 26 | [[Image(dashboard4.png, 1000px)]] |
| | 27 | * Системот го прикажува екранот за додавање нов корисник |
| | 28 | * Администраторот ги внесува потребните информации: |
| | 29 | * Username (пр: ana_sales) |
| | 30 | * Full Name (пр: Ана аневска) |
| | 31 | * Email (пр: ana123@outlook.com) |
| | 32 | * Password (пр: secure123) |
| | 33 | * Role - избира од паѓачко мени (Admin, Inventory Manager, Sales Personnel, Warehouse Staff) |
| | 34 | * Администраторот го штиклира полето "Active" за да го активира корисникот |
| | 35 | * Администраторот кликнува на копчето "Save" |
| | 36 | * Системот ги валидира податоците (username и email мора да се уникатни) |
| | 37 | * Системот го зачувува новиот корисник во базата |
| | 38 | * Системот прикажува порака за успех |
| | 39 | [[Image(dashboard5.png, 1000px)]] |
| | 40 | * Системот го враќа администраторот на листата со корисници каде што новиот корисник е прикажан |
| | 41 | |
| | 42 | == Алтернативен тек == |
| | 43 | |
| | 44 | * Доколку username веќе постои, се прикажува грешка: "Username already exists" |
| | 45 | * Доколку email веќе постои, се прикажува грешка: "Email already exists" |
| | 46 | * Доколку некое задолжително поле е празно, се прикажува грешка: "Please fill all required fields" |
| | 47 | * Доколку администраторот кликне "Cancel", се враќа на листата со корисници без зачувување |
| | 48 | |
| | 49 | == Улоги на корисници == |
| | 50 | |
| | 51 | * '''Admin:''' Full system access - целосна контрола на системот, управување со корисници и пристап до извештаи |
| | 52 | * '''Inventory Manager:''' Manage products and stock - додавање и уредување на производи, следење на залихи и управување со добавувачи |
| | 53 | * '''Sales Personnel:''' Process sales - продажни операции и управување со клиенти |
| | 54 | * '''Warehouse Staff:''' Manage warehouse operations - операции за влез и излез од магацин и физичка проверка на залихите |
| | 55 | |
| | 56 | == SQL Команди == |
| | 57 | |
| | 58 | {{{#!sql |
| | 59 | -- 1. Проверка дали username е уникатно |
| | 60 | SELECT COUNT(*) FROM users WHERE username = 'marko_inv'; |
| | 61 | |
| | 62 | -- 2. Проверка дали email е уникатно |
| | 63 | SELECT COUNT(*) FROM users WHERE email = 'marko@system.mk'; |
| | 64 | |
| | 65 | -- 3. Додавање нов корисник |
| | 66 | INSERT INTO users (username, password, full_name, email, role, is_active) |
| | 67 | VALUES ('marko_inv', 'hashed_password', 'Марко Петровски', 'marko@system.mk', 'Inventory Manager', true); |
| | 68 | |
| | 69 | -- 4. Прикажување на сите корисници |
| | 70 | SELECT user_id, username, full_name, email, role, is_active, created_at |
| | 71 | FROM users |
| | 72 | ORDER BY created_at DESC; |
| | 73 | }}} |