Skip to content

Latest commit

 

History

History
53 lines (39 loc) · 3.68 KB

File metadata and controls

53 lines (39 loc) · 3.68 KB

פרויקט Web API לניהול משתמשים ופריטים

פרויקט זה מיישם API REST לניהול משתמשים ופריטים עם דגש על אבטחת מידע, תחזוקה ואיכות קוד.

תיאור

  • מימוש API REST לניהול משתמשים ופריטים עם אימות והרשאות מבוססי JWT Tokens לשיפור אבטחת המידע.
  • יישום מנגנון Dependency Injection להפרדת שכבות וכתיבת קוד מודולרי ותחזוקתי.
  • הוספת Middlewares וניהול לוגים עם Serilog לניטור מתקדם ולשיפור איכות הקוד והתחזוקה.
  • שמירה על מבנה קוד ברור ויעילות בביצועים.
  • פיתוח ממשק משתמש ידידותי ב-JavaScript לשימוש נוח ויעיל במערכת.
  • שמירת נתוני משתמשים ופריטים בקובצי JSON דרך שירות מוזרק (Dependency Injection), עם אפשרות להחלפה למסד נתונים בעתיד.
  • עבודה בצוות סטודנטיות על תכנון ה-API והמערכת.

טכנולוגיות

  • .NET Core
  • JWT Authentication
  • Dependency Injection
  • Serilog Logging
  • JavaScript (Frontend)

הוראות הפעלה

  1. יש להוריד את הפרויקט או לשכפל את הרפוזיטורי.
  2. לפתוח את הפרויקט ב-IDE כמו Visual Studio או VS Code.
  3. לוודא שהגדרות החיבור למסד הנתונים או קבצי JSON נכונות בקובץ appsettings.json.
  4. להריץ את ה-API (לדוגמה dotnet run או מתוך ה-IDE).
  5. לפתוח את ממשק המשתמש בדפדפן דרך הקישור שמופיע, ולהתחבר למערכת.

דרישות הפרויקט

צד שרת (Server-side)

  • רק מנהלים יכולים להוסיף ולמחוק משתמשים.
  • מנהל יכול לערוך את כל המשתמשים, כולל כל התכונות שלהם.
  • משתמש רגיל יכול לערוך רק את פרטיו, ואינו יכול להפוך את עצמו למנהל.
  • משתמשים יכולים לנהל רק את הפריטים שלהם ואינם יכולים לראות פריטים של משתמשים אחרים.
  • פריטים ומשתמשים נשמרים בקובץ JSON.
  • גישה לנתונים נעשית דרך שירות מוזרק (Dependency Injection) המממש ממשק, כדי לאפשר מעבר קל לשימוש במסד נתונים בעתיד.
  • יש להוסיף שירות מבוסס Scope עבור המשתמש הפעיל ולהזריק אותו לפי הצורך (כדי לקבל את ה-user id והתפקיד בקלות).
  • להוסיף Extension method ל־IServiceCollection לרישום נוח של כל השירותים.
  • כל בקשה מתועדת בלוג הכולל תאריך ושעה, שם הקונטרולר והפעולה, שם המשתמש המחובר (אם קיים), ומשך הפעולה במילישניות.

צד לקוח (Client-side)

  • הדף הראשי מציג את פריטי המשתמש ומאפשר הוספה, עדכון ומחיקה של פריטים.
  • אם אין משתמש מחובר (אין טוקן תקף באחסון מקומי), מוצגת עמודת התחברות במקום הדף הראשי.
  • אם למשתמש יש הרשאות מנהל, מוצג קישור בין דף הפריטים לדף רשימת המשתמשים ולהפך.

אתגר (Challenge)

  • להחליף את Middleware הלוגים המובנה בשירותי לוג פופולריים כמו Serilog או log4net, עם הגדרת נתיב קובץ לוג והגבלת גודל הקבצים (עד 100MB).