Giter VIP home page Giter VIP logo

bp_sut_s2024_project's Introduction

logo

پروژه مبانی برنامه سازی پایتون

بهار 1403

StarStore

فروشگاه StarStore به تازگی آغاز به کار کرده است. در این پروژه، قصد داریم با استفاده از مفاهیم شی‌گرایی و پایگاه داده، یک رابط کاربری خط فرمان (CLI) طراحی کنیم که امکاناتی چون ورود کاربران، ثبت نام، مدیریت سفارشات، و نظارت بر محصولات را برای این فروشگاه فراهم آورد.

icon icon

صفحه اصلی

در ورودی این سیستم، ابتدا باید تعیین شود که کاربر ورود کننده ادمین است یا مشتری


ورود ادمین

  • ادمین باید نام کاربری و رمز عبور خود را وارد نماید.
  • سیستم صحت نام کاربری و رمز عبور را بررسی کرده و در صورت احراز هویت، ادمین به پنل مدیریتی دسترسی پیدا می‌کند.

ورود مشتری

•مشتری دو گزینه پیش رو دارد: ثبت نام یا ورود به حساب کاربری

  • ورود به حساب کاربری: مشتری باید نام کاربری و رمز عبور خود را وارد کند. سیستم صحت اطلاعات را بررسی کرده و در صورت تأیید، به حساب کاربری وارد می‌شود.
  • ثبت نام
    • مشتری باید اطلاعات لازم را وارد نماید
    • یک نام کاربری انتخاب کند که پیش از این در سیستم ثبت نشده باشد.
    • سپس باید رمز عبوری انتخاب کند که شامل حداقل 8 کاراکتر، یک کاراکتر بزرگ، و ترکیبی از اعداد و حروف باشد.

این مراحل اولیه اطمینان می‌دهند که تمامی کاربران به طور مناسبی شناسایی و مدیریت شوند و به بخش‌های مربوط به نقش خود در سیستم دسترسی پیدا کنند.

پس از ورود به پنل مشتری

نمایش اعتبار کیف پول

به محض ورود مشتری به پنل خود، مقدار اعتبار کیف پول او نمایش داده می‌شود.

منوی مشتری شامل

  1. ثبت سفارش جدید
    • o نمایش لیست کالاها به همراه قیمت‌ها.(هر کالا شامل یک کد منحصر به فرد است می تواند برای انتخاب کالا ها توسط مشتری از کد آن ها استفاده نمایید.)
    • مشتری می‌تواند کالاهای مورد نظر خود را به همراه تعداد مشخص کند.
    • اگر تعداد درخواستی بیشتر از موجودی باشد، به مشتری اطلاع داده می‌شود که تنها تعداد محدودی از کالا موجود است.(موجودی در انبار را به او نشان داده تا مجدد تعداد مورد نظر را وارد کند)
    • پس از تأیید تعداد و کالا، مجموع بهای خرید به مشتری نشان داده می‌شود.
    • از مشتری پرسیده می‌شود که آیا مایل به استفاده از اعتبار کیف پول خود برای پرداخت است یا خیر. در صورت تأیید، مبلغ اعتبار از کل خرید کسر می‌گردد.
    • مشتری می تواند در صورت داشتن کد تخفیف ان را وارد کرده و از ان استفاده کند. هر کد شامل یک درصد تخفیف و تاریخ انقضاست که پس از گذشت از این تاریخ امکان استفاده از ان میسر نیست
    • این کد ها به صورت یک فایل جیسون در اختیار شما قرار داده شده است.
    • پس از هر خرید 5 درصد مبلغ خریداری شده به عنوان اعتبار به کیف پول اون اضافه خواهد شد.
  2. تاریخچه سفارشات:نمایش تمام سفارشات گذشته مشتری به همراه مبلغ پرداخت شده و تاریخ
  3. تغییر رمز عبور:امکان تغییر رمز عبور برای تأمین امنیت بیشتر حساب کاربری.رمز عبور جدید باید شامل حداقل 8 کاراکتر باشد و ترکیبی از اعداد و حروف را دارا باشد و حداقل شامل یک کاراکتر بزرگ باشد

پنل ادمین

پنل ادمین شامل گزینه‌های زیر است تا به مدیریت دقیق و اثربخش فروشگاه کمک کند:

  1. اضافه کردن کالا جدید
    • ادمین با وارد کردن کد منحصر به فرد برای کالای جدید، در صورت نبود آن در سیستم، می‌تواند آن را به فروشگاه اضافه کند.
    • همچنین اطلاعات مربوط به قیمت و موجودی اولیه کالا را تعیین می‌کند.
  2. تغییر موجودی یک کالا:با وارد کردن کد کالا، ادمین می‌تواند موجودی آن را با افزایش یا کاهش به روز رسانی کند.
  3. تغییر قیمت یک کالا:ادمین با دسترسی به کد کالا، قادر است قیمت آن را تنظیم کند، چه با افزایش و چه با کاهش
  4. تغییر رمز عبور:این قابلیت به ادمین اجازه می‌دهد تا جهت تامین امنیت بیشتر حساب کاربری خود، رمز عبورش را تغییر دهد.رمز عبور جدید باید شامل حداقل 8 کاراکتر باشد و ترکیبی از اعداد و حروف را دارا باشد و حداقل شامل یک کاراکتر بزرگ باشد.

کلاس های اصلی

  • User : کلاس های ادمین و مشتری از این کلاس ویژگی های مشترک خود را ارث می برند.
  • ادمین
  • مشتری
  • کالا

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

دستورات ورودی در CLI

برای استفاده از دستورات ورود به سیستم می توانید از شرط ها برای parse کردن استفاده کنید یا می توانید برای سادگی و راحتی کار از کتابخانه argparser استفاده کنید.اما به این نکته توجه داشته باشید که عدم استفاده از کتابخانه باعث یادگیری بهتر شما خواهد شد.

نمایش جداول

براش نمایش جداول موجود در پروژه مانند لیست محصولات و ... برای زیبایی بهتر از کتابخانه tabulate استفاده کنید.

جداول مورد نیاز پایگاه داده

  1. جدول users برای مدیریت کاربران : این جدول علاوه بر ستون های username و password باید حتما دارای یک ستون به نام access باشد که تفاوت بین مشتری و ادمین را مشخص نماید. عدد 1 به معنای سطح دسترسی ادمین و عدد 2 به معنای سطح دسترسی مشتری می باشد.
  2. جدول Extrainfos : هر کاربر با سطح دسترسی 2 که همان مشتری می باشد با این جدول یک رابطه ی 1-1 دارد که اطلاعات اضافه تر خود در این جدول ذخیره می شود.(منظور از اطلاعات اضافه اطلاعاتی می باشد که با کاربر با سطح دسترسی 1 که همان ادمین می باشد، متفاوت باشد. به طور مثال ستون اعتبار کیف پول در این بخش قرار می گیرد.)
  3. جدول کالاها:اطلاعات مربوط به کالا ها در این جدول قرار خواهد گرفت.
  4. جدول کد های تخفیف : با استفاده از نمونه فایل جیسون چیدمان مربوط به این جدول انجام داده خواهد شد. این جدول باید دارای یک ستون used باشد که دارای دو مقدار 0 و 1 است. عدد 0 به معنای کد تخفیف استفاده شده و عدد 1 به معنای کد تخفیف استفاده نشده می باشد.
  5. جدول تاریخچه سفارشات : در این جدول به ازای هر سفارش موفق یک کاربر با سطح دسترسی 2 که همان مشتری می باشد ، یک رکورد اضافه خواهد شد. بدیهی است که جدول کاربران با این جدول رابطه 1-چند دارد. به این معنی که هر کاربر می تواند چندین سفارش ثبت کرده باشد.


Created by Project Team

bp_sut_s2024_project's People

Contributors

supuna97 avatar leili-m avatar yousofdavamkar avatar

Stargazers

Iman Mohammadi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.