פרויקט זה מיישם 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)
- יש להוריד את הפרויקט או לשכפל את הרפוזיטורי.
- לפתוח את הפרויקט ב-IDE כמו Visual Studio או VS Code.
- לוודא שהגדרות החיבור למסד הנתונים או קבצי JSON נכונות בקובץ
appsettings.json. - להריץ את ה-API (לדוגמה
dotnet runאו מתוך ה-IDE). - לפתוח את ממשק המשתמש בדפדפן דרך הקישור שמופיע, ולהתחבר למערכת.
- רק מנהלים יכולים להוסיף ולמחוק משתמשים.
- מנהל יכול לערוך את כל המשתמשים, כולל כל התכונות שלהם.
- משתמש רגיל יכול לערוך רק את פרטיו, ואינו יכול להפוך את עצמו למנהל.
- משתמשים יכולים לנהל רק את הפריטים שלהם ואינם יכולים לראות פריטים של משתמשים אחרים.
- פריטים ומשתמשים נשמרים בקובץ JSON.
- גישה לנתונים נעשית דרך שירות מוזרק (Dependency Injection) המממש ממשק, כדי לאפשר מעבר קל לשימוש במסד נתונים בעתיד.
- יש להוסיף שירות מבוסס Scope עבור המשתמש הפעיל ולהזריק אותו לפי הצורך (כדי לקבל את ה-user id והתפקיד בקלות).
- להוסיף Extension method ל־IServiceCollection לרישום נוח של כל השירותים.
- כל בקשה מתועדת בלוג הכולל תאריך ושעה, שם הקונטרולר והפעולה, שם המשתמש המחובר (אם קיים), ומשך הפעולה במילישניות.
- הדף הראשי מציג את פריטי המשתמש ומאפשר הוספה, עדכון ומחיקה של פריטים.
- אם אין משתמש מחובר (אין טוקן תקף באחסון מקומי), מוצגת עמודת התחברות במקום הדף הראשי.
- אם למשתמש יש הרשאות מנהל, מוצג קישור בין דף הפריטים לדף רשימת המשתמשים ולהפך.
- להחליף את Middleware הלוגים המובנה בשירותי לוג פופולריים כמו Serilog או log4net, עם הגדרת נתיב קובץ לוג והגבלת גודל הקבצים (עד 100MB).