شفاف سازی/Django


کارها:

  • ثبت‌کامنت
  • نمایش کامنت‌ها

تعریف پروژه: در این سوال قصد داریم تا مهارت خواندن و تغییر و برطرف کردن باگ های کد های موجود را بسنجیم. بدین منظور یک پروژه موجود را از Github درنظر گرفته‌ایم. شما می‌توانید از این لینک پروژه را دانلود کنید و از آن به عنوان مبنا توسعه کد استفاده کنید. این فایل یک ورژن خاص از این پروژه در گیت هاب است. برای توضیحات بیشتر و توضیح نحوه اجرای پروژه به این صفحه مراجعه کنید.

ابتدا کد ها را خوانده و به فهم نسبی از پروژه برسید. در این سوال قصد داریم در قسمت Questions کار کنیم.

این قسمت از سایت، یک سایت پرسش و پاسخ مانند سایت Stack overflow است که در آن پرسش و پاسخ صورت می‌گیرد.

در این قسمت اگر ابهامی در سوال وجود داشته باشد، افرادی که می‌خواهند به سوال پاسخ دهند باید بتوانند سوال خود را بپرسند تا کسی که سوال را مطرح کرده است ابهام سوال را برطرف کند. برای این کار در سایت Stack overflow بخشی برای گذاشتن کامنت روی سوال ها وجود دارد که در سیستم مورد بحث سوال در نظر گرفته نشده است.
حال از شما می‌خواهیم این قابلیت را به سایت اضافه کنید.

۱. ثبت کامنت:🔗

میخواهیم یک url وجود داشته باشد تا کامنت های خود را به آن ارسال کنیم. آدرس Url باید به شکل زیر باشد.

/questions/question/comment
Plain text
  • این url باید فقط کامنت هایی را بپذیرد که با متد POST ارسال شده اند.
  • قرار است این url با استفاده از Ajax فراخوانی شود.
  • در دیکشنری داده های POST کلید های question و comment باید وجود داشته باشد که به ترتیب id سوالی که روی آن کامنت می‌گذاریم و متن کامنت است.
  • کاربر ای که روی سوال کامنت گذاشته است همان کاربری است که در حال حاضر در سایت لاگین است. بنابراین کاربرانی که login نکرده اند نباید بتوانند روی سوال کامنت بگذارند.
  • این تابع باید یک json به شکل زیر بازگرداند که مشخص کننده وضعیت ثبت کامنت است.
{ "status": <status-code> }
Plain text
  • در صورتی که ثبت کامنت موفقیت آمیز بود، کد وضعیت 0 بازگردد.
  • در صورتی که متن کامنت خالی بود یا فقط شامل white space بود این کامنت نباید ثبت شود و کد وضعیت 1 بازگردد.
  • در صورتی که سوالی با id فرستاده شده وجود نداشت کد وضعیت 2 بازگردد.
  • در صورتی که متد ارسالی به url مورد نظر POST نبود، کامنت ثبت نشود و کد وضعیت 3 بازگردد.

نمایش کامنت ها:🔗

تمام کامنت های مربوط به یک سوال باید در صفحه‌ی مربوط به سوال، یعنی url /questions/<question-id> نمایش داده شوند.

  • کنار هر کامنت باید username کسی که کامنت گذاشته نیز نمایش یابد.

تذکرات:🔗

  • تذکر: قابلیت‌ها فعلی سایت نباید تغییری کند!
  • از اهداف این سوال این است که بتوانید یک پروژه را با توجه به توضیحات ارائه دهنده ی پروژه اجرا کنید. بنابراین اجرا نشدن پروژه به معنای اشتباه بودن کد نیست.

فایل آپلودی

کل پروژه را zip کرده و ارسال کنید. فقط توجه کنید که فایل manage.py باید مستقیما در ریشه‌ی فایل zip باشد و در هیچ پوشه دیگری نباشد. یعنی ساختار فایل zip باید مانند زیر باشد.

<Your-zip-name>.zip
    ├── bootcamp
    │   ├── activities
    │   │   ├── __init__.py
    │   │   ├── migrations
    │   │   ├── models.py
    │   │   ├── static
    │   │   ├── templates
    │   │   ├── tests
    │   │   └── views.py
    │   ├── articles
    │   │   ├── forms.py
    │   │   ├── __init__.py
    │   │   └──  ...
    │   ├── authentication
    │   │   ├── forms.py
    │   │   └──  ...
    │   ├── core
    │   │   └──  ...
    │   ├── decorators.py
    │   ├── feeds
    │   │   └──  ...
    │   ├── __init__.py
    │   ├── locale
    │   │   ├── es
    │   │   ├── fr
    │   │   ├── jp
    │   │   ├── pt_BR
    │   │   └── zh_CN
    │   ├── messenger
    │   │   └──  ...
    │   ├── questions
    │   │   └──  ...
    │   ├── search
    │   │   ├── __init__.py
    │   │   ├── migrations
    │   │   └──  ...
    │   ├── settings.py
    │   ├── static
    │   │   ├── css
    │   │   ├── img
    │   │   └── js
    │   ├── templates
    │   │   ├── 400.html
    │   │   ├── 403.html
    │   │   ├── 404.html
    │   │   ├── 500.html
    │   │   ├── base.html
    │   │   ├── markdown_editor.html
    │   │   └── paginator.html
    │   ├── urls.py
    │   └── wsgi.py
    ├── LICENSE
    ├── manage.py
    ├── README.md
    ├── requirements.txt
    ├── runtime.txt
    └── setup.cfg
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.