مشروع بسيط لتجربة FastAPI + MariaDB مع تسجيل دخول
1. الفكرة العامة
المشروع ده عبارة عن نموذج خفيف لتجميع افلامك و العابك المفضلة و بيساعدك تتعلم إزاي تبني API حديث فيه تسجيل دخول (Authentication).
بيجمع بين:
FastAPI: لتسجيل المستخدمين وتسجيل الدخول باستخدام كلمة مرور وتوليد JWT Tokens.
MariaDB: قاعدة بيانات علائقية مع SQLAlchemy ORM.
Frontend بسيط (HTML + JS) عشان تجربه تسجيل الدخول.
Docker و docker-compose لتشغيل كل الخدمات بسهولة.
خاصية Hot Reload عشان التطوير يكون أسرع.
الفكرة إنه تعليمي أكتر من كونه نظام كامل للإنتاج.
تقدر:
تعمل حساب جديد.
تسجل دخول وتاخد Token.
تستعمل الـToken ده في استدعاء API محمي بيرجعلك بيانات المستخدم الحالي.
2. المكونات الرئيسية
المشروع بيتكوّن من 3 خدمات (مكتوبة في docker-compose.yml):
MariaDB
بيشغل قاعدة البيانات وبيقرأ ملف init.sql
Backend (FastAPI)
بيشتغل بـ Uvicorn ومعاه --reload للتطوير.
Frontend (Nginx)
بيقدّم ملفات ثابتة (index.html, script.js, style.css).
3. طريقة عمل النظام
المتصفح بيوصل للـ Frontend.
الـFrontend بيكلم الـ FastAPI Backend.
الـBackend بيتعامل مع قاعدة بيانات MariaDB.
تسجيل الدخول بيتم عن طريق JWT Token، بيتخزن مؤقتًا في JavaScript (مش في الكوكيز أو localStorage).