⚽ فانتزی فوتبال - Fantasy Football
یک پلتفرم فانتزی فوتبال کامل با Next.js، Prisma و PostgreSQL
🌟 ویژگیها
برای کاربران
- ✅ ثبتنام و ورود امن با NextAuth
- ✅ ساخت تیم به صورت استپبایاستپ
- ✅ انتخاب لوگو و نام تیم
- ✅ انتخاب از 6 ترکیب مختلف
- ✅ مدیریت بودجه (100 میلیون)
- ✅ انتخاب 11 بازیکن اصلی + 4 ذخیره
- ✅ Drag & Drop برای جابجایی بازیکنان
- ✅ انتخاب کاپیتان و نایب کاپیتان
- ✅ فیلتر و جستجوی بازیکنان
- ✅ نمایش زمین فوتبال واقعی
- ✅ پیگیری امتیازات
برای ادمین
- ✅ مدیریت کشورها و پرچمها
- ✅ مدیریت بازیکنان
- ✅ مدیریت مسابقات و راندها
- ✅ ثبت رویدادهای بازی (گل، کارت، و...)
- ✅ محاسبه خودکار امتیازات
- ✅ تایید تیمهای کاربران
- ✅ مدیریت قوانین امتیازدهی
- ✅ آمار و گزارشگیری
🚀 نصب و راهاندازی
پیشنیازها
- Node.js 18+
- PostgreSQL
- npm یا yarn
مراحل نصب
- کلون کردن پروژه
git clone <repository-url>
cd football-next
- نصب وابستگیها
npm install
- تنظیم متغیرهای محیطی
فایل
.envرا ایجاد کنید:
DATABASE_URL="postgresql://user:password@host:port/database"
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"
- راهاندازی دیتابیس
npm run db:generate
npm run db:push
- ساخت کاربران تست
# کاربر عادی
npm run setup:test-user
# کاربر ادمین
npm run setup:admin
- اجرای پروژه
npm run dev
پروژه روی http://localhost:3000 اجرا میشود.
📋 اسکریپتهای NPM
npm run dev # اجرای development server
npm run build # ساخت برای production
npm run start # اجرای production server
npm run db:push # اعمال تغییرات schema به دیتابیس
npm run db:generate # تولید Prisma Client
npm run db:studio # باز کردن Prisma Studio
npm run setup:test-user # ساخت کاربر تست
npm run setup:admin # ساخت کاربر ادمین
npm run check:users # بررسی کاربران موجود
🔐 کاربران پیشفرض
کاربر عادی
- ایمیل:
test@test.com - رمز عبور:
123456
ادمین
- ایمیل:
admin@admin.com - رمز عبور:
admin123
📁 ساختار پروژه
football-next/
├── app/ # Next.js App Router
│ ├── (admin)/ # صفحات ادمین
│ ├── (user)/ # صفحات کاربر
│ └── api/ # API Routes
├── components/ # کامپوننتهای React
├── lib/ # توابع کمکی
│ ├── auth.ts # تنظیمات NextAuth
│ └── db.ts # Prisma Client
├── prisma/ # Schema و Migrations
├── public/ # فایلهای استاتیک
├── scripts/ # اسکریپتهای کمکی
└── styles/ # فایلهای CSS
🎮 راهنمای استفاده
برای کاربران
مستندات کامل در USER-GUIDE.md
برای توسعهدهندگان
مستندات راهاندازی در SETUP.md
🛠️ تکنولوژیها
- Framework: Next.js 16 (App Router)
- Database: PostgreSQL
- ORM: Prisma
- Authentication: NextAuth.js
- Styling: Tailwind CSS
- Language: TypeScript
- Drag & Drop: Native HTML5
📊 مدل دیتابیس
جداول اصلی
User- کاربرانTeam- تیمهای کاربرانPlayer- بازیکنانCountry- کشورهاMatch- مسابقاتRound- راندهاMatchEvent- رویدادهای بازیPlayerMatchStat- آمار بازیکنانScoringRule- قوانین امتیازدهی
🎨 ویژگیهای طراحی
- طراحی Responsive
- حالت RTL برای فارسی
- انیمیشنهای روان
- رنگبندی مدرن
- UX بهینه
- دسترسیپذیری
🔄 فرآیند ساخت تیم
استپ 1: مشخصات تیم
- انتخاب لوگو (10 گزینه)
- وارد کردن نام تیم
- ساخت تیم
استپ 2: انتخاب بازیکنان
- انتخاب ترکیب
- اضافه کردن 11 بازیکن اصلی
- اضافه کردن 4 بازیکن ذخیره
- انتخاب کاپیتان و نایب کاپیتان
- ثبت نهایی
🐛 رفع مشکلات
خطای Foreign Key
# بررسی کاربران
npm run check:users
# ساخت کاربر جدید
npm run setup:test-user
مشکل Session
- از مرورگر خارج شوید
- Cache را پاک کنید
- دوباره وارد شوید
خطای دیتابیس
# ریست کردن دیتابیس
npx prisma db push --force-reset
# تولید مجدد Client
npm run db:generate
📈 TODO
- آپلود تصویر برای لوگو تیم
- پیشنمایش تیم
- انیمیشنهای بهتر
- نمایش آمار تفصیلی بازیکنان
- فیلتر پیشرفته
- مقایسه بازیکنان
- پیشبینی امتیازات
- اعلانهای Real-time
- چت و نظرات
- لیگهای خصوصی
🤝 مشارکت
برای مشارکت در پروژه:
- Fork کنید
- Branch جدید بسازید
- تغییرات را Commit کنید
- Push کنید
- Pull Request بزنید
📄 لایسنس
این پروژه تحت لایسنس MIT است.
📞 تماس
برای سوالات و پشتیبانی، با ما تماس بگیرید.
ساخته شده با ❤️ برای علاقهمندان فوتبال
Description
Languages
TypeScript
69.9%
JavaScript
28.4%
PowerShell
0.7%
Shell
0.6%
Dockerfile
0.2%
Other
0.2%