3.6 KiB
3.6 KiB
راهنمای راهاندازی پروژه فانتزی فوتبال
🚀 نصب و راهاندازی
1. نصب وابستگیها
npm install
2. تنظیم دیتابیس
npx prisma generate
npx prisma db push
3. ساخت کاربران تست
کاربر عادی
npx tsx scripts/create-test-user.ts
- ایمیل:
test@test.com - رمز عبور:
123456
کاربر ادمین
npx tsx scripts/create-admin-user.ts
- ایمیل:
admin@admin.com - رمز عبور:
admin123
4. اجرای پروژه
npm run dev
پروژه روی http://localhost:3000 اجرا میشود.
📋 مراحل ساخت تیم
استپ 1: نام تیم و لوگو
- به صفحه
/teamبروید - یک لوگو برای تیم انتخاب کنید (از 10 گزینه موجود)
- نام تیم را وارد کنید (حداکثر 30 کاراکتر)
- روی "بعدی: انتخاب ترکیب" کلیک کنید
استپ 2: انتخاب ترکیب و بازیکنان
- یک ترکیب انتخاب کنید (4-3-3، 4-4-2، و...)
- از لیست سمت راست، بازیکنان را انتخاب کنید
- باید 11 بازیکن اصلی + 4 بازیکن ذخیره داشته باشید
- بودجه شما 100 میلیون است
- میتوانید با drag & drop بازیکنان را جابجا کنید
- یک کاپیتان و یک نایب کاپیتان انتخاب کنید
- وقتی تیم کامل شد، روی "وارد رقابت شو" کلیک کنید
🔧 اسکریپتهای مفید
بررسی کاربران
npx tsx scripts/check-users.ts
تست Session
مراجعه به: http://localhost:3000/api/test-session
🎨 ویژگیهای جدید
صفحه ساخت تیم
- ✅ طراحی استپبایاستپ (2 مرحله)
- ✅ انتخاب لوگو تیم (10 گزینه)
- ✅ انتخاب نام تیم با محدودیت 30 کاراکتر
- ✅ نمایش پیشرفت (Progress Indicator)
- ✅ طراحی مدرن و شماتیک
- ✅ رنگبندی بهتر و gradient ها
- ✅ پیامهای خطا و موفقیت واضحتر
- ✅ راهنمای تکمیل تیم
بهبودهای API
- ✅ بررسی وجود کاربر قبل از ساخت تیم
- ✅ ذخیره formation در زمان ساخت تیم
- ✅ پیامهای خطای بهتر
🐛 رفع مشکلات
خطای "Foreign key constraint violated"
این خطا زمانی رخ میدهد که userId در دیتابیس وجود ندارد. برای رفع:
- مطمئن شوید که لاگین کردهاید
- اسکریپت
check-users.tsرا اجرا کنید - در صورت نیاز، کاربر جدید بسازید
تیم ساخته نمیشود
- از مرورگر خارج شوید (Logout)
- دوباره وارد شوید (Login)
- به صفحه
/teamبروید - اگر باز هم مشکل دارید،
/api/test-sessionرا چک کنید
📱 صفحات
/- صفحه اصلی/login- ورود/register- ثبتنام/team- ساخت و مدیریت تیم/admin- پنل ادمین/profile- پروفایل کاربر
🎯 TODO
- آپلود تصویر برای لوگو تیم
- پیشنمایش تیم قبل از ثبت نهایی
- انیمیشنهای بهتر برای drag & drop
- نمایش آمار بازیکنان در هنگام انتخاب
- فیلتر پیشرفته بازیکنان (بر اساس قیمت، امتیاز، و...)