Skip to content

NabeelYousafPasha/bayt-recommendation

Repository files navigation

Nabeel Yousaf Pasha

Following are the setps to setup the project

Environment

Tech Version
PHP ^8.1
LARAVEL ^10.10

Setup

1. Clone Repository [email protected]:NabeelYousafPasha/bayt-recommendation.git
2. Run cd bayt-recommendation
3. Run composer install
4. Run npm install
5. Run npm run dev

Database Migration and Seeder

1. Update your .env file
2. Run php artisan migrate
3. Run php artisan db:seed

Important Directories/Files to Reivew

1. app/Traits/*
2. app/Observers/ModelVisitObserver.php
3. app/Entities/ArticleEntity.php

Assignment: Building a Recommendation System

Assignment Overview:

Your task is to develop a recommendation system using PHP and the Laravel framework that suggests relevant content to users based on their preferences and behavior.

Requirements:

  1. Clean Code in Laravel:

    • Write clean, well-documented PHP code within the Laravel framework. Follow Laravel's coding conventions and best practices.
    • Ensure meaningful variable and function names.
    • Implement proper error handling.
  2. Design Patterns in Laravel:

    • Utilize advanced design patterns within Laravel, such as the Repository pattern, the Service pattern, and the Observer pattern.
    • Explain your use of these patterns within your code.
  3. Reusable Modules in Laravel:

    • Design your recommendation system within Laravel as a set of reusable services and components that can be easily integrated into different Laravel applications.
    • Include Laravel unit tests to demonstrate the functionality and reusability of your components.
  4. Performance Optimization in Laravel:

    • Optimize the recommendation algorithm for speed and resource efficiency within the Laravel framework.
    • Utilize Laravel's built-in caching and database optimization features to improve performance.

Assignment Details:

Create a Laravel-based recommendation system that suggests content (e.g., articles, videos, music, products) to users based on their historical preferences and behavior. Your system should allow users to:

  • Register and login using Laravel's built-in authentication.
  • Rate or interact with content.
  • Receive personalized content recommendations.
  • View their recommendation history.
  • Administer and manage user accounts and content items using Laravel's features.

Submission Instructions:

  • Submit your Laravel project in a Git repository hosted on platforms like GitHub, GitLab, or Bitbucket.
  • Provide clear documentation on how to set up and run your Laravel recommendation system.
  • Preferable to be dockerize.
  • Include a README.md that explains your design choices, the Laravel design patterns you used, and any performance optimizations made within the framework.

Assessment Criteria:

Your assignment will be evaluated based on:

  • Clean PHP code written within the Laravel framework.
  • Effective use of advanced design patterns within Laravel.
  • The modularity and reusability of your Laravel components and services.
  • Performance optimization within the Laravel framework.
  • The correctness and completeness of the implemented functionality.
  • This assignment focuses on assessing a candidate's skills with PHP and the Laravel framework, making it suitable for positions where Laravel expertise is essential.

Good luck with the assignment, and I am looking forward to hearing from you, please let me know If you have any questions.

Deadline 72 Hours.

About

Technical task for Bayt.com 2023

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages