Skip to content

im-mcma/Private-chat

Repository files navigation

# Flask Chat Project

این پروژه یک چت‌روم آنلاین ساده و مدرن با استفاده از فریم‌ورک Flask و Socket.IO است که امکانات زیر را فراهم می‌کند:

- ثبت‌نام و ورود کاربران  
- ساخت و مدیریت اتاق‌های چت  
- چت آنلاین و ارسال پیام‌ها در زمان واقعی  
- پنل مدیریت برای مدیریت کاربران و اتاق‌ها  
- قابلیت تنظیم زمان حذف اتاق‌ها از طریق پنل تنظیمات  
- طراحی مدرن و ریسپانسیو با استفاده از Bootstrap  

---

## شروع سریع (Quick Start)

### پیش‌نیازها

- Python 3.8 یا بالاتر  
- pip برای نصب پکیج‌ها  

---

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

1. مخزن پروژه را کلون کنید:

```bash
git clone <repository_url>
cd flask_chat_project
  1. نصب وابستگی‌ها:
pip install -r requirements.txt
  1. اجرای پروژه در محیط محلی:
export FLASK_APP=app.py
export FLASK_ENV=development
flask run

یا

python app.py

راه‌اندازی روی Render.com (وب‌سرویس)

  1. اطمینان حاصل کنید که Procfile شامل دستور زیر است:
web: gunicorn -k eventlet -w 1 app:app --bind 0.0.0.0:$PORT
  1. تنظیم متغیر محیطی DATABASE_URL در پنل رندر (برای اتصال به دیتابیس).
  2. رندر خودش متغیر محیطی PORT را به برنامه می‌دهد و برنامه باید روی این پورت گوش دهد.
  3. دقت کنید که در app.py پورت را اینگونه بگیرید:
import os

port = int(os.environ.get('PORT', 5000))
socketio.run(app, host='0.0.0.0', port=port)

ساختار پروژه

flask_chat_project/
│
├── app.py                 # فایل اصلی برنامه و اجرای Socket.IO
├── models.py              # مدل‌های دیتابیس (User, Room, Message)
├── routes.py              # تعریف تمام مسیرها و لاجیک‌های Flask
│
├── templates/             # قالب‌های HTML
├── static/                # فایل‌های استایل و جاوااسکریپت
│
├── requirements.txt       # پکیج‌های مورد نیاز
├── Procfile               # دستور اجرای برنامه روی Render
├── README.md              # این فایل مستندات

نکات مهم

  • استفاده از دیتابیس: پروژه به یک دیتابیس متصل است که آدرس آن باید در متغیر محیطی DATABASE_URL تعریف شود.
  • پورت داینامیک: روی Render پورت به صورت داینامیک از متغیر محیطی PORT خوانده می‌شود.
  • Socket.IO: برای عملکرد صحیح وب‌سرویس باید از Gunicorn با worker eventlet استفاده شود (همانطور که در Procfile هست).
  • امنیت: در تولید از کلید محرمانه قوی (SECRET_KEY) استفاده کنید.
  • زمان حذف روم: از پنل مدیریت قابل تنظیم است.

توسعه و افزودن قابلیت‌ها

  • اضافه کردن امکانات بیشتر به پنل مدیریت
  • بهینه‌سازی UI و UX
  • پشتیبانی از پیام‌های چندرسانه‌ای
  • اضافه کردن قابلیت‌های امنیتی بیشتر

سوالات متداول (FAQ)

چگونه می‌توانم دیتابیس را تغییر دهم؟ آدرس دیتابیس را در متغیر محیطی DATABASE_URL تنظیم کنید.

آیا می‌توانم پروژه را روی سرور دیگری اجرا کنم؟ بله، کافی است پورت را متناسب با سرور تنظیم کرده و Procfile را با دستور مناسب اصلاح کنید.


تماس

اگر سوالی دارید یا به کمک نیاز دارید، خوشحال می‌شوم کمکتان کنم.


*موفق باشید!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published