Following are the setps to setup the project
Tech | Version |
---|---|
PHP | ^8.1 |
LARAVEL | ^10.10 |
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
1.
Update your .env file
2.
Run php artisan migrate
3.
Run php artisan db:seed
1.
app/Traits/*
2.
app/Observers/ModelVisitObserver.php
3.
app/Entities/ArticleEntity.php
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.
-
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.
-
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.
-
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.
-
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.
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.
- 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.
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.