/cinema_ticket

a system for reserve tickets of cinema and enjoy from a better art in the word!!!

Primary LanguagePython

README

سیستم رزرو بلیط سینما

این پروژه یک سیستم رزرو بلیط سینما را با استفاده از زبان پایتون و پایگاه داده SQLite پیاده‌سازی می‌کند. این سیستم شامل ثبت‌نام کاربران، افزودن سینما و فیلم، رزرو بلیط، مشاهده رزروها و غیره می‌باشد.

ساختار پروژه

  • cinema_system.py: منطق اصلی برنامه.
  • user.py: کلاس کاربر.
  • bank_account.py: کلاس حساب بانکی.
  • subscription.py: کلاس اشتراک.
  • movie.py: کلاس فیلم.
  • cinema.py: کلاس سینما.
  • reservation.py: کلاس رزرو.
  • review.py: کلاس نظر.
  • database.py: تنظیمات پایگاه داده و مدل‌ها.
  • client.py: اسکریپت سمت کاربر.
  • server.py: اسکریپت سمت سرور.
  • run_project.py: اجرای پیوسته پروژه.

نصب و راه‌اندازی

  1. کلون کردن مخزن:

    git clone https://github.com/your-repo/cinema-ticket-reservation.git
    cd cinema-ticket-reservation
  2. نصب وابستگی‌ها: اطمینان حاصل کنید که Python 3.x و pip نصب شده باشند.

  3. ایجاد جداول پایگاه داده:

    ابتدا فایل database.py را برای ایجاد جداول پایگاه داده اجرا کنید:

    python database.py
  4. اجرای پروژه:

    فایل run_project.py را برای اجرای پیوسته سرور و کلاینت اجرا کنید:

    python run_project.py

نحوه استفاده

ثبت‌نام

  1. اجرای run_project.py.
  2. انتخاب گزینه 1 برای ثبت‌نام.
  3. وارد کردن اطلاعات کاربری.

ورود

  1. اجرای run_project.py.
  2. انتخاب گزینه 2 برای ورود.
  3. وارد کردن نام کاربری.

مشاهده سینماها

  1. ورود به سیستم.
  2. انتخاب گزینه 1 برای مشاهده لیست سینماها و فیلم‌ها.

رزرو بلیط

  1. ورود به سیستم.
  2. انتخاب گزینه 2 برای رزرو بلیط.
  3. وارد کردن نام سینما، نام فیلم، سانس و شماره صندلی.

مشاهده رزروها

  1. ورود به سیستم.
  2. انتخاب گزینه 3 برای مشاهده لیست رزروهای کاربر.

ساختار کلاس‌ها

کلاس User

  • ویژگی‌ها:

    • user_id: شناسه کاربر (تولید خودکار).
    • username: نام کاربری (منحصر به فرد).
    • email: ایمیل (منحصر به فرد).
    • phone_number: شماره تلفن (اختیاری).
    • password: گذرواژه (هش شده).
    • birth_date: تاریخ تولد.
    • registration_date: تاریخ ثبت‌نام (تولید خودکار).
    • last_login: تاریخ آخرین ورود.
    • wallet_balance: موجودی کیف پول.
    • subscription: نوع اشتراک.
  • متدها:

    • validate_username: اعتبارسنجی نام کاربری.
    • validate_email: اعتبارسنجی ایمیل.
    • validate_phone_number: اعتبارسنجی شماره تلفن.
    • hash_password: هش کردن گذرواژه.
    • save_to_db: ذخیره اطلاعات کاربر در پایگاه داده.
    • update_profile: به‌روزرسانی پروفایل کاربر.
    • change_password: تغییر گذرواژه کاربر.
    • login: ورود کاربر.

کلاس BankAccount

  • ویژگی‌ها:

    • account_number: شماره حساب.
    • user_id: شناسه کاربر.
    • password: گذرواژه (هش شده).
    • cvv2: CVV2.
    • balance: موجودی حساب.
  • متدها:

    • hash_password: هش کردن گذرواژه.
    • save_to_db: ذخیره اطلاعات حساب بانکی در پایگاه داده.
    • deposit: واریز وجه به حساب.
    • withdraw: برداشت وجه از حساب.
    • transfer: انتقال وجه به حساب دیگر.
    • update_balance: به‌روزرسانی موجودی حساب در پایگاه داده.

کلاس Subscription

  • ویژگی‌ها:

    • type: نوع اشتراک.
    • duration: مدت زمان اشتراک.
    • cashback_policy: سیاست کش بک.
  • متدها:

    • apply_cashback: اعمال کش بک بر اساس نوع اشتراک و تعداد خریدها.

کلاس Movie

  • ویژگی‌ها:

    • movie_id: شناسه فیلم.
    • title: عنوان فیلم.
    • rating: امتیاز فیلم.
    • cinema_id: شناسه سینما.
  • متدها:

    • save_to_db: ذخیره اطلاعات فیلم در پایگاه داده.
    • add_showtime: افزودن سانس به فیلم.
    • update_movie_details: به‌روزرسانی جزئیات فیلم.
    • add_review: افزودن نظر به فیلم.
    • calculate_average_rating: محاسبه امتیاز میانگین فیلم.

کلاس Cinema

  • ویژگی‌ها:

    • cinema_id: شناسه سینما.
    • name: نام سینما.
  • متدها:

    • save_to_db: ذخیره اطلاعات سینما در پایگاه داده.
    • add_movie: افزودن فیلم به سینما.
    • update_cinema_details: به‌روزرسانی جزئیات سینما.
    • list_movies: نمایش لیست فیلم‌های سینما.

کلاس Reservation

  • ویژگی‌ها:

    • reservation_id: شناسه رزرو.
    • user_id: شناسه کاربر.
    • movie_id: شناسه فیلم.
    • showtime_id: شناسه سانس.
    • seat_number: شماره صندلی.
    • status: وضعیت رزرو.
  • متدها:

    • save_to_db: ذخیره اطلاعات رزرو در پایگاه داده.
    • cancel_reservation: لغو رزرو و اعمال سیاست بازپرداخت.
    • update_status: به‌روزرسانی وضعیت رزرو در پایگاه داده.

کلاس Review

  • ویژگی‌ها:

    • review_id: شناسه نظر.
    • user_id: شناسه کاربر.
    • movie_id: شناسه فیلم.
    • rating: امتیاز نظر.
    • comment: نظر.
  • متدها:

    • save_to_db: ذخیره اطلاعات نظر در پایگاه داده.
    • add_reply: افزودن پاسخ به نظر.

مشارکت

اگر می‌خواهید به این پروژه کمک کنید، لطفاً یک فورک از مخزن ایجاد کرده و تغییرات خود را اعمال کنید. سپس یک پول ریکوئست (Pull Request) ایجاد کنید تا تغییرات شما بررسی شود.

مجوز

این پروژه تحت مجوز MIT منتشر شده است. برای اطلاعات بیشتر به فایل LICENSE مراجعه کنید.