این پروژه یک وبسایت انجمن علمی دانشگاهی است که با فریمورک Django توسعه داده شده است. این وبسایت شامل بخشهای مختلفی مانند مدیریت کلاسها، وبلاگ، ثبتنام کاربران و... میباشد.
برای راهاندازی و اجرای این پروژه، نیاز به نصب موارد زیر دارید:
- پایتون (نسخه 3.8 یا بالاتر)
- pip (مدیر بستههای پایتون)
- وابستگیهای پروژه (در فایل requirements.txt)
برای راهاندازی پروژه، مراحل زیر را دنبال کنید:
git clone [آدرس مخزن]
cd [نام پوشه پروژه]
python -m venv venv
venv\Scripts\activate
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
حالا میتوانید به آدرس http://127.0.0.1:8000
در مرورگر خود دسترسی داشته باشید و وبسایت را مشاهده کنید.
وابستگیهای اصلی پروژه عبارتند از:
- Django==4.2.9
- Pillow==10.1.0 (برای مدیریت تصاویر)
- jdatetime==4.1.1 (برای تبدیل تاریخ میلادی به شمسی)
- django-debug-toolbar==4.2.0 (برای دیباگ)
- django-jalali==6.0.1 (برای پشتیبانی از تقویم جلالی)
برای نصب همه وابستگیها میتوانید از فایل requirements.txt استفاده کنید.
ساختار اصلی پروژه به شرح زیر است:
project/
├── accounts/ # اپلیکیشن مدیریت کاربران
├── blog/ # اپلیکیشن وبلاگ
├── classes/ # اپلیکیشن مدیریت کلاسها
├── config/ # تنظیمات اصلی پروژه
├── home/ # اپلیکیشن صفحه اصلی
├── static/ # فایلهای استاتیک (CSS, JS, images)
├── media/ # فایلهای آپلود شده توسط کاربران
├── templates/ # قالبهای پایه مشترک
├── venv/ # محیط مجازی پایتون (در .gitignore)
├── manage.py # اسکریپت مدیریت جنگو
├── requirements.txt # وابستگیهای پروژه
└── README.md # این فایل
مدیریت ثبتنام، ورود و پروفایل کاربران
مدیریت پستهای وبلاگی، دستهبندیها و نظرات
مدیریت کلاسها، ثبتنام در کلاسها و نظرات کلاسها
صفحه اصلی و صفحات عمومی وبسایت
/admin/
- پنل مدیریت/
- صفحه اصلی/accounts/login/
- صفحه ورود/accounts/register/
- صفحه ثبتنام/classes/
- لیست کلاسها/classes/detail/<slug>/
- جزئیات کلاس/blog/
- لیست پستهای وبلاگ/blog/<slug>/
- جزئیات پست وبلاگ
برای ایجاد فایل requirements.txt کامل، میتوانید از دستور زیر استفاده کنید:
pip freeze > requirements.txt
پیشفرض این پروژه استفاده از SQLite است، اما میتوانید از دیتابیسهای دیگر مانند PostgreSQL یا MySQL نیز استفاده کنید. برای این کار، تنظیمات DATABASES
در فایل config/settings.py
را ویرایش کنید.
# در فایل settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
برای استقرار پروژه در محیط تولید، موارد زیر را در نظر بگیرید:
- تنظیم
DEBUG = False
در فایل settings.py - تنظیم
ALLOWED_HOSTS
به دامنههای مجاز - استفاده از وبسرور مانند Nginx یا Apache
- استفاده از Gunicorn یا uWSGI به عنوان WSGI server
- استفاده از دیتابیس قویتر مانند PostgreSQL
- هرگز کلید مخفی (
SECRET_KEY
) را در کد منبع عمومی قرار ندهید. از متغیرهای محیطی یا فایلهای تنظیمات محلی استفاده کنید. - اطمینان حاصل کنید که
DEBUG = False
در محیط تولید تنظیم شده است. - از HTTPS استفاده کنید.
- اگر از Django Admin در محیط تولید استفاده میکنید، URL آن را تغییر دهید.
برخی از ایدهها برای توسعه آینده پروژه:
- پشتیبانی از پرداخت آنلاین
- سیستم ارسال اعلانها
- اضافه کردن API برای اپلیکیشن موبایل
- بهبود سیستم جستجو
برای مشارکت در این پروژه، لطفاً یک درخواست pull ارسال کنید. برای تغییرات بزرگ، ابتدا یک issue باز کنید تا در مورد آنچه میخواهید تغییر دهید بحث کنیم.