Skip to content

Tzipi10/NetCoreAPI

Repository files navigation

פרויקט 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).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •