72 lines
2.8 KiB
Markdown
72 lines
2.8 KiB
Markdown
Tadrisino API
|
||
|
||
این پروژه بخش API و سرویسهای سمت سرور سامانه Tadrisino را شامل میشود و ساختار آن بهصورت ماژولار طراحی شده است.
|
||
|
||
ساختار پروژه به گونهای است که هر بخش اصلی سیستم در یک اپلیکیشن مستقل قرار گرفته و مدلها، منطق مربوط به API، Serializerها، Viewها، URLها و Migrationهای موردنیاز هر بخش در همان اپ مدیریت میشوند.
|
||
|
||
اجرای پروژه
|
||
|
||
ابتدا محیط مجازی را ایجاد و فعال کنید:
|
||
|
||
python3 -m venv venv
|
||
source venv/bin/activate
|
||
|
||
سپس وابستگیهای پروژه را نصب کنید:
|
||
|
||
pip install -r requirements.txt
|
||
|
||
اجرای Migrationها:
|
||
|
||
python manage.py migrate
|
||
|
||
در صورت نیاز میتوان یک کاربر مدیریتی ایجاد کرد:
|
||
|
||
python manage.py createsuperuser
|
||
|
||
در نهایت پروژه را اجرا کنید:
|
||
|
||
python manage.py runserver
|
||
|
||
مستندات API
|
||
|
||
پس از اجرای پروژه، مستندات API از طریق Swagger در دسترس است:
|
||
|
||
http://127.0.0.1:8000/api/docs/
|
||
|
||
مستندات Redoc:
|
||
|
||
http://127.0.0.1:8000/api/redoc/
|
||
|
||
پنل مدیریت:
|
||
|
||
http://127.0.0.1:8000/admin/
|
||
|
||
ساختار پروژه
|
||
|
||
config/
|
||
accounts/
|
||
content/
|
||
progress/
|
||
ai_tutor/
|
||
subscription/
|
||
payment/
|
||
discount/
|
||
affiliate/
|
||
support/
|
||
notifications/
|
||
family/
|
||
|
||
بخشهای مختلف پروژه شامل مدیریت حساب کاربری، محتوای آموزشی، پیشرفت و عملکرد کاربر، سیستم آموزشی، اشتراک، پرداخت، تخفیف، همکاری در فروش، پشتیبانی، اعلانها و مدیریت اعضای خانواده هستند.
|
||
|
||
نکات فنی
|
||
|
||
* ساختار پروژه بهصورت ماژولار و قابل توسعه طراحی شده است.
|
||
* APIها از طریق مسیرهای مشخص و مستند قابل دسترسی هستند.
|
||
* احراز هویت و مدیریت Session برای استفاده از APIها در نظر گرفته شده است.
|
||
* پنل مدیریت برای مدیریت دادههای اصلی سیستم فراهم شده است.
|
||
* Migrationهای مربوط به مدلهای پروژه در هر اپ نگهداری میشوند.
|
||
* ساختار فعلی پروژه امکان توسعه و اضافه شدن قابلیتهای جدید را بدون ایجاد تغییرات گسترده در بخشهای موجود فراهم میکند.
|
||
|
||
تست
|
||
|
||
برای بررسی و تست APIها میتوان مستقیماً از Swagger استفاده کرد. همچنین برای ایجاد و مدیریت دادههای اولیه، پنل مدیریت Django در دسترس است. |