Skip to content

aliniko79/Amlak-Shahriar

Repository files navigation

وبسایت املاک شهریار

وبسایت ساده و خوانا برای مدیریت آگهی‌های املاک که با Django و Bootstrap ساخته شده است. در پنل ادمین از جزمین (Jazmin) برای بهبود رابط کاربری استفاده شده، و در پیاده‌سازی از Class-Based Views و Generic Views بهره برده‌ایم. برای استقرار از Docker و Docker Compose استفاده شده و فایل‌های استاتیک توسط کانتینرها سرو می‌شوند.


ویژگی‌ها

  • پیاده‌سازی با Django (ساختار ماژولار)
  • رابط کاربری واکنش‌گرا با Bootstrap
  • پنل ادمین زیبا و قابل استفاده با جزمین
  • استفاده از Class-Based Views و Generic Views برای خوانایی و قابل نگه‌داری بودن کد
  • استقرار و اجرای ساده با Docker / Docker Compose
  • سرویس‌دهی مستقیم فایل‌های استاتیک توسط کانتینرها

تکنولوژی‌ها

  • Python / Django
  • Bootstrap
  • Jazmin (مدیریت بهتر رابط ادمین)
  • Docker & Docker Compose

قبل از شروع

اطمینان حاصل کنید که روی سیستم شما docker و docker-compose (یا docker compose) نصب و فعال شده باشند.


راه‌اندازی با Docker Compose (سریع)

فرض می‌کنیم سرویس وب شما در یک سرویس با نام web در docker-compose.yml قرار دارد.

  1. کلون کردن مخزن:
git clone <REPO_URL>
cd <REPO_DIR>
  1. (اختیاری) ایجاد فایل .env بر اساس نمونه:
cp .env.example .env
# سپس مقادیر متغیرها را در .env ویرایش کنید (SECRET_KEY, DEBUG, DATABASE_*)
  1. ساخت و اجرای کانتینرها:
docker-compose up -d --build
# یا اگر از پلگین جدید استفاده می‌کنید:
# docker compose up -d --build
  1. اجرای مایگریشن‌ها و ایجاد اکانت ادمین:
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser
  1. (در صورت نیاز) اجرای collectstatic — توجه: در این پروژه فایل‌های استاتیک معمولاً توسط کانتینرها مستقیم سرو می‌شوند، اما در صورت نیاز:
docker-compose exec web python manage.py collectstatic --noinput

پس از اجرا، اپ روی پورتی که در docker-compose.yml تنظیم کرده‌اید در دسترس خواهد بود (مثلاً http://localhost:8000 یا پورتی که مپ کرده‌اید).


دربارهٔ مدیریت استاتیک

همان‌طور که ذکر شده، در این پروژه فایل‌های استاتیک توسط کانتینر/وب‌سرور سرو می‌شوند (بدون استفاده از whitenoise یا از طریق تنظیمات nginx/apache در کانتینر). اگر بخواهید فایل‌ها را به سرویس ابری (S3) منتقل کنید یا از پلاگین‌های دیگر استفاده کنید، بخش مربوطه را در settings.py و مستندات اضافه کنید.


توسعه و تست

  • برای اجرای لوکال بدون داکر می‌توانید محیط مجازی ایجاد کرده و وابستگی‌ها را نصب کنید:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
  • از تست‌های Django و ابزارهای linting (در صورت وجود) برای کیفیت کد استفاده کنید.

مشارکت

اگر تغییری پیشنهاد دارید یا باگی پیدا کردید:

  1. یک issue باز کنید.
  2. یک branch جدید بسازید (feature/… یا fix/…).
  3. پس از اعمال تغییرات، یک PR ارسال کنید و در توضیحات تغییرات را شرح دهید.

لایسنس

این پروژه تحت [لایسنس دلخواه شما] ارائه می‌شود. (مثلاً MIT — در صورت تمایل اضافه کنید)

About

A django websire for real estate.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published