دانشگاه صنعتی شریف دانشکده مهندسی کامپیوتر برنامه سازی وب پروژهی شماره ۲ شلگرام موعد ارسال۹۴/۲/۲۸ : نیمسال دوم سال تحصیلی ۹۵-۹۴ مقدمه قرار است در این پروژه سیستمی برای به اشتراکگذاری گروهی مطالب تولید شود. کلیت نحوهی کار این سیستم به این صورت است که تعدادی گروه وجود دارد و در هر گروه افراد میتوانند پست بگذارند ،ولی هدف چت کردن افراد نیست و قرار است صرفاا مطالبی را به اشتراک بگدارند. اهداف پروژه انتظار میرود که با انجام این پروژه ،دانشجویان مهارتهای زیر را فراگرفته باشند: CreateView UpdateView FormView View ListView inline_formset_factory formset_factory Ajax Authentication and Privilage Levels searching + infinite scroll پیش نیازها در این پروژه نیاز به استفاده از یک IDEمناسب دارید که Pycharmگزینهی خوبی است. نیاز به نصب پایتون نسخهی بزرگتر از .۳ نیاز به pipبرای نصب djangoو دیگر packageهای مورد نیاز. نیاز به نصب virtualenvو برای راحتی بیشتر .virtualenvwrapper برای کار گروهی اکیدا پیشنهاد میشود از gitبه عنوان version controllاستفاده کنید. استفاده از تمامی packageهای پایتون که روی pipقرار دارند مجاز است. شر ح پروژه ریز صورت پروژه برای تفهیم بهتر در قالب تعدادی ) User Storyبه همراه مقداری توضیحات اضافه در پرانتز( بیان شده است .همچنین در انتها پروتوتایپ سادهای از ۳صفحهی اصلی سایت آمده. خواسته ها • به عنوان یک فرد وارد نشده در شلگرام میخواهم توضیحی در ارتباط با چیستی شلگرام • به عنوان یک کاربر میخواهم صفحهی مدیریت کاربری داشته باشم که در آن بتوانم و لینک عضویت و ورود را ببینم).پیادهسازی Forget Passwordنمره ی اضافی دارد( اطلعات کاربریام)شامل عکس پروفایل و نام نمایشی( را تغیر دهم و به درخواستهای عضویت در گروههایی که مدیر آنها هستم پاسخ دهم. • به عنوان یک کاربر میخواهم در صفحهی مدیریت بتوانم گروه جدید بسازم .کاربر • به عنوان یک کاربر میخواهم در کنار اسم دیگر کاربران عکس آنها را در صورت وجود • بهعنوان یک کاربر شلگرام میخواهم پس از وارد شدن لیست همهی گروههای شلگرام و سازندهی هر گروه مدیر آن گروه است. ببینم و در صورت عدم وجود عکس یک عکس پیشفرض مشاهده کنم. لیست گروههایی که در آنها عضویت تاید شده دارم را ببینم) .نمایش لیستها بهصورت Infinite Scrollنمره اضافی دارد( • به عنوان یک کاربر میخواهم در اولین صفحه بعد از ورود روی اسم هر گروه نوتیفیکیشنهایش )تعداد پستهای جدید( را ببینم ،روی هر یک از گروهها کلیک میکنم به صفحهی مورد نظر بروم و نوتیفهای آن حذف شود .همچنین دکمهای برای تبدیل شدن همهی نوتیفهای جدید به قدیمی وجود داشته باشد).(Mark all as read • به عنوان یک کاربر میخواهم در صفحهی مدیریت کاربری درخواست عضویت در گروهی که در آن عضو نیستم را بدهم .انجام آن بهاین صورت است که در یک Search Box اسمی را وارد میکنم و پس از سابمیت لیست گروههایی که اسمشان شامل این عبارت است برای عضویت بیاید) .تا هنگامیکه در گروهی عضو نیستم نمیتوانم محتوای آن را ببینم و این کار در صفحهی خانهی هر کس که شامل لیست همهی گروهها بود انجام میشود( • به عنوان یک کاربر میخواهم در صفحهی گروهی که در آن عضو هستم لیست همهی پستها به ترتیب زمان گذاشته شدن را ببینم )پیادهسازی Infinite Scrollنمره اضافی دارد( و بتوانم پست جدید در گروه بگذارم. • به عنوان یک کاربر میخواهم در همهی مدت زمانی که لگین هستم روی هر گروه تعداد نوتیفیکیشنهای جدیدم را ببینم و در صورت کلیک کردن روی آن به صفحهی مورد نظر بروم .همچنین در صورت باز بودن صفحهای از بهوجود آمدن نوتیفیکیشن جدید با حداکثر ۱دقیقه تاخیر مطلع شوم)بدون refreshشدن صفحه(. نکات مهم در این پروژه به بررسی زیبایی رابط کاربری شما پرداخته نمیشود .البته باید در حدی که به طور کامل کاربری سیستم نمایش داده شود به آن بپردازید.پروژه باید در گروههای دو نفره انجام شود. شما باید در این پروژه از Generic Viewهای جنگو استفاده کنید و در صورت استفاده از Function Viewها نمره از دست میدهید .همچنین متناسب با رفتار Viewباید از Generic Viewمتناسب استفاده کنید .برای مثال اگر قرار است شئیی ساخته شود حتماا از CreateView استفاده شود. Authenticationو Authorizationنمره دارد. حداکثر نمرهای که در این پروژه به شما داده میشود ۱۰۰نمره است و موارد نمره اضافه فقط میتوانند نمرههایی که از دست میدهید را جبران کنند ) .مینیمم ۱۰۰و نمره ای که از پروژه می گیرید برایتان محاسبه می شود(. مهم :شما باید در ابتدایی ترین پوشه ی شامل پروژه ،یک فایل requirements.txt داشته باشید که همه ی پکیج های مورد استفاده در آن آمده باشد .پروژه ی شما به صورت زیر اجرا می شود و در صورت اشکال در این روند نمره ی اجرای پروژه را از دست می دهید) .ورژن پایتون مورد استفاده باید بزرگ تر یا مساوی ۳باشد!( mkvirtualenv your-group-number pip install -r requirements.txt python manage.py runserver همهی فرمها باید اعتبارسنجی شوند و شرایط درستی از قبیل تعداد کارکتر و حروفی که استفاده میشود برای آن تعین شود)جزئیاتی مثل حداقل تعداد مجاز و کارکترهای مجاز به عهدهی خودتان است( .همچنین در صورت نادرست بودن موارد باید پیغام متناسب نمایش داده شود. لطف اا در صورت داشتن هرگونه سؤال یا ابهامی در مورد پروژه ،با آدرس ایمیل [email protected]تماس بگیرید. لطفاا به تاریخ ارسال پروژه دقت لزم را داشته باشید .این تاریخ به هیچ عنوان تمدید موارد خواسته شده را حداکثر تا تاریخ ۹۴/۲/۲۸ساعت ۲۳:۵۹در سامانهی Queraارسال نخواهد شد ،لذا در روز بارگذاری ،صورت پروژه را دریافت کرده و مطالعه کنید. کنید .زمان تحویل حضوری روز ۹۴/۲/۲۹خواهد بود .دیرکرد در ارسال پروژه به منزلهی از دست دادن تمامی نمره خواهد بود. شرکت تمامی اعضای گروه در زمان تحویل حضوری الزامیست. تمامی اعضای گروه باید در انجام تمامی بخشهای پروژه مشارکت داشته و در زمان تاریخ جلسات رفع ابهام پروژه از طریق صفحهی رسمی درس و کانال تلگرام اعلم خواهد شد .شرکت در این جلسات شدیداا توصیه میشود. تحویل حضوری تسلط کامل داشته باشند. همکاری بین گروهی )بین دو یا چند گروه( مجاز نیست و به منزلهی تقلب محسوب هرگونه رونویسی ،اقتباس ،بهرهگیری و استفاده از کارر گروه های دیگر ،چه به صورت جزئی و چه کلی ،مجاز نیست و تبعات انظباطی به همراه خواهد داشت. استفاده از توابع ،کدها و کتابخانههای آماده در انجام پروژهها مجاز نیست ،مگر آنکه در میشود. شرح پروژه به صورت مستقیم به مجاز بودن آنها اشاره شده باشد. پ.ن پروتوتایپ: :صفحه ی اول صفحه ی فرد وارد شده: صفحه ی مدیریت حساب کاربری:
© Copyright 2025 Paperzz