لینک‌های مفید برای شرکت در مسابقه:

بعد از مسابقه در ساعت ۱۹ امروز وبیناری برای حل بخشی از سوالات مسابقه و پاسخگویی به سوالات شما تدارک دیده‌ایم که می‌توانید از طریق این لینک به رایگان ثبت‌نام نمایید.

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

ورود با موبایل


همان‌طور که می‌دانید، در لاراول عملیات ورود به‌صورت پیش‌فرض توسط ایمیل و رمز عبور انجام می‌شود. در این سؤال شما باید این فرآيند را طوری تغییر دهید که کاربر بتواند علاوه بر ایمیل با شماره موبایل نیز وارد شود.

جزئیات پروژه🔗

در این پروژه از Laravel 8 استفاده شده است.

پروژه‌ی اولیه را از این لینک دانلود کنید.

ساختار فایل‌ها
login_phone
├── app
│   ├── Actions
│   │   ├── Fortify
│   │   │   ├── CreateNewUser.php
│   │   │   ├── PasswordValidationRules.php
│   │   │   ├── ResetUserPassword.php
│   │   │   ├── UpdateUserPassword.php
│   │   │   └── UpdateUserProfileInformation.php
│   │   └── Jetstream
│   │       └── DeleteUser.php
│   ├── Console
│   │   └── Kernel.php
│   ├── Exceptions
│   │   └── Handler.php
│   ├── Http
│   │   ├── Controllers
│   │   │   └── Controller.php
│   │   ├── Middleware
│   │   │   ├── Authenticate.php
│   │   │   ├── EncryptCookies.php
│   │   │   ├── PreventRequestsDuringMaintenance.php
│   │   │   ├── RedirectIfAuthenticated.php
│   │   │   ├── TrimStrings.php
│   │   │   ├── TrustHosts.php
│   │   │   ├── TrustProxies.php
│   │   │   └── VerifyCsrfToken.php
│   │   └── Kernel.php
│   ├── Models
│   │   └── User.php
│   ├── Providers
│   │   ├── AppServiceProvider.php
│   │   ├── AuthServiceProvider.php
│   │   ├── BroadcastServiceProvider.php
│   │   ├── EventServiceProvider.php
│   │   ├── FortifyServiceProvider.php
│   │   ├── JetstreamServiceProvider.php
│   │   └── RouteServiceProvider.php
│   └── View
│       └── Components
│           ├── AppLayout.php
│           └── GuestLayout.php
├── bootstrap
│   ├── cache
│   │   ├── .gitignore
│   │   ├── packages.php
│   │   └── services.php
│   └── app.php
├── config
│   ├── app.php
│   ├── auth.php
│   ├── broadcasting.php
│   ├── cache.php
│   ├── cors.php
│   ├── database.php
│   ├── filesystems.php
│   ├── fortify.php
│   ├── hashing.php
│   ├── jetstream.php
│   ├── logging.php
│   ├── mail.php
│   ├── queue.php
│   ├── sanctum.php
│   ├── services.php
│   ├── session.php
│   └── view.php
├── database
│   ├── factories
│   │   └── UserFactory.php
│   ├── migrations
│   │   ├── 2014_10_12_000000_create_users_table.php
│   │   ├── 2014_10_12_100000_create_password_resets_table.php
│   │   ├── 2014_10_12_200000_add_two_factor_columns_to_users_table.php
│   │   ├── 2019_08_19_000000_create_failed_jobs_table.php
│   │   ├── 2019_12_14_000001_create_personal_access_tokens_table.php
│   │   └── 2020_11_17_093623_create_sessions_table.php
│   ├── seeders
│   │   └── DatabaseSeeder.php
│   └── .gitignore
├── public
│   ├── css
│   │   └── app.css
│   ├── js
│   │   └── app.js
│   ├── storage
│   │   └── .gitignore
│   ├── .htaccess
│   ├── favicon.ico
│   ├── index.php
│   ├── mix-manifest.json
│   ├── robots.txt
│   └── web.config
├── resources
│   ├── css
│   │   └── app.css
│   ├── js
│   │   ├── app.js
│   │   └── bootstrap.js
│   ├── lang
│   │   └── en
│   │       ├── auth.php
│   │       ├── pagination.php
│   │       ├── passwords.php
│   │       └── validation.php
│   └── views
│       ├── api
│       │   ├── api-token-manager.blade.php
│       │   └── index.blade.php
│       ├── auth
│       │   ├── forgot-password.blade.php
│       │   ├── login.blade.php
│       │   ├── register.blade.php
│       │   ├── reset-password.blade.php
│       │   ├── two-factor-challenge.blade.php
│       │   └── verify-email.blade.php
│       ├── layouts
│       │   ├── app.blade.php
│       │   └── guest.blade.php
│       ├── profile
│       │   ├── delete-user-form.blade.php
│       │   ├── logout-other-browser-sessions-form.blade.php
│       │   ├── show.blade.php
│       │   ├── two-factor-authentication-form.blade.php
│       │   ├── update-password-form.blade.php
│       │   └── update-profile-information-form.blade.php
│       ├── dashboard.blade.php
│       ├── navigation-dropdown.blade.php
│       └── welcome.blade.php
├── routes
│   ├── api.php
│   ├── channels.php
│   ├── console.php
│   └── web.php
├── storage
│   ├── app
│   │   ├── public
│   │   │   └── .gitignore
│   │   └── .gitignore
│   ├── framework
│   │   ├── cache
│   │   │   ├── data
│   │   │   │   └── .gitignore
│   │   │   └── .gitignore
│   │   ├── sessions
│   │   │   └── .gitignore
│   │   ├── testing
│   │   │   └── .gitignore
│   │   ├── views
│   │   │   └── .gitignore
│   │   └── .gitignore
│   └── logs
│       └── .gitignore
├── tests
│   ├── Feature
│   │   └── ExampleTest.php
│   ├── Unit
│   │   └── ExampleTest.php
│   ├── CreatesApplication.php
│   └── TestCase.php
├── .editorconfig
├── .env
├── .env.example
├── .gitattributes
├── .gitignore
├── .styleci.yml
├── README.md
├── artisan
├── composer.json
├── composer.lock
├── package-lock.json
├── package.json
├── phpunit.xml
├── server.php
├── tailwind.config.js
├── webpack.config.js
└── webpack.mix.js
Plain text
راه‌اندازی پروژه

برای اجرای پروژه، باید php و composer را از قبل نصب کرده باشید.

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

پس از آن، می‌توانید با دستور php artisan migrate مایگریشن‌ها را اجرا کنید.

نکات🔗

  • نام ستونی از جدول users که شماره موبایل در آن ذخیره می‌شود phone است.
  • شماره موبایل و ایمیل هر دو از طریق فیلد email و از طریق متد POST ارسال می‌شوند.
  • شماره موبایل به صورت 09xxxxxxxxx و ایمیل‌ها به فرمت

[ترکیبی از حروف انگلیسی و .]@[وب‌سایت بدون www]

هستند و کاربر با هیچ حالتی غیر از این فرمت‌ها نباید اجازه ورود پیدا کند.

  • شما تنها مجاز به اعمال تغییرات در پوشه‌ی app هستید.

آن‌چه باید آپلود کنید🔗

پس از اعمال تغییرات، کل پروژه به غیر از پوشه‌ی vendor را Zip کرده و آپلود کنید.

توجه کنید که نام فایل Zip اهمیتی ندارد.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.