<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: aktoyyib</title>
    <description>The latest articles on DEV Community by aktoyyib (@aktoyyib).</description>
    <link>https://dev.to/aktoyyib</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F918877%2Fc5ca446d-2d5b-46dd-9422-77f2ba72b0e3.png</url>
      <title>DEV Community: aktoyyib</title>
      <link>https://dev.to/aktoyyib</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aktoyyib"/>
    <language>en</language>
    <item>
      <title>Why you should leverage a Content Management System when rolling out an MVP</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Thu, 01 Sep 2022 00:13:38 +0000</pubDate>
      <link>https://dev.to/aktoyyib/why-you-should-leverage-a-content-management-system-when-rolling-out-an-mvp-2k70</link>
      <guid>https://dev.to/aktoyyib/why-you-should-leverage-a-content-management-system-when-rolling-out-an-mvp-2k70</guid>
      <description>&lt;p&gt;The goal of an MVP is to provide immediate value quickly while minimising development costs and gathering data and feedback that can then be applied to improve future iterations of the product. Start-ups have limited resources and one of the ways founders can quickly roll out an MVP is to leverage CMSs like WordPress, Shopify, Wix, etc. It will save founders the cost of setting up a team of developers while ensuring the quality of the developed product. There is always a CMS that will work for every business idea. CMS is as simple as embedding forms on web pages to collect data from users.&lt;/p&gt;

&lt;p&gt;MVP is not only the best player in the team but also a minimum viable product in the start-up space. A service that has sufficient qualities to attract the first users. This is very important in the conditions of a start-up – to get feedback and understand in which direction it is worth moving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What makes up the MVP’s price?  What factors affect the development budget for the first product release?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The cost of developing a minimum viable product can vary from zero to infinity – the final figure largely depends on the budget and complexity of the project. The price of an MVP is primarily determined by the decisions made at the start. So, for example, you can:&lt;/p&gt;

&lt;p&gt;Ask for help from fellow developers or assemble an in-house team (recruit developers, designers, testers). Make a simple landing page or build a technically complex solution with many different features (some are convinced that at the MVP stage, it is critical to fit everything within the budget). The total development cost will vary greatly depending on the scenario you choose. From all this, we can conclude that there is no such thing as "the exact cost of an MVP". And it's true, and there is nothing in the start-up world that can be set in stone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What affects the MVP’s cost?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's say you have an idea. There is a desire to turn the concept into reality, but no technical background exists. As well as fellow developers. What will you do? You will likely start looking for people who can help with design and development.&lt;/p&gt;

&lt;p&gt;And so, you started looking for an MVP development agency. In this case, the cost of the first version will depend on the following factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Location and team.&lt;/strong&gt; Nigeria, kenya, UK, Europe or India – the cost of developing an MVP will be different everywhere. We will not dwell on the top outsourcing countries in detail – this issue can be quickly closed using Google. But rest assured, the closer you get to the US, the higher the price tag will rise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Number of features.&lt;/strong&gt; A way to minimise development costs is to leave only the most necessary ones in the backlog. What does that mean? It means those features without which the product will not be able to function normally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrations with third-party services.&lt;/strong&gt; We are talking about those services that help the user achieve the primary goal. For example, you can set up an SMTP server to send emails and configure all the mail logic there. Or you can lower the price by using a ready-made email service.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design.&lt;/strong&gt; Creating a design is a lot like sewing. The same dresses, for example. If you abandon the minimalistic “basic” option and move towards something more complex and custom (with beads or lace), sewing even one such dress will take a lot of time. The same happens if you ask a designer to do something "unique and unlike anything else."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;"Native" or "Crossplatform" (for mobile apps).&lt;/strong&gt; Development on native technologies consumes more time and resources, while cross-platform solutions allow you to develop simultaneously for both platforms – iOS and Android. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reliable partner.&lt;/strong&gt; It is essential to choose a partner with a reliable tech service provider. It would be better if you consider partnering with a reliable contractor to help you resolve your business issues. Otherwise, an unreliable software vendor will overcharge you and provide you with a poor-quality product. This means that the product will have numerous bugs, slow page loading speeds, performance issues, and quality.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Why you should use a CMS to improve your business website&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that we have figured out the MVP and the importance of careful financial planning before launching, we can move on to the next step – CMS.&lt;/p&gt;

&lt;p&gt;Using a content management system (CMS) for your website can be one of the best investments you can make in your digital presence and business. And you need to invest – your website is one of your main tools for communicating with your customers, and you want to make sure they love it. But that doesn't mean you want to get bogged down in technical details. After all, a CMS combines power and simplicity, so you still have time to focus on improving your business.&lt;/p&gt;

&lt;p&gt;You need to use a CMS to run your business website for several reasons.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. This is just for those who are not tech-savvy.&lt;/strong&gt;&lt;br&gt;
Not all users have the same level of comfort with technology, but the basic CMS features of writing and publishing content and the slightly more advanced features of adding media are generally easy to understand for everyone. Even people who are not proficient in word processing software can use CMSs for essential functions, so you don't have to spend much time learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. It allows multiple users.&lt;/strong&gt;&lt;br&gt;
Many people in business can contribute to your website, from those who add product pages to those who create blog posts for your content marketing efforts. The CMS makes it easy to manage roles and publishing permissions for all of these users so that only those you allow can publish content, and content only becomes available when you're ready.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. It makes planning easier.&lt;/strong&gt;&lt;br&gt;
Because of this, any decent CMS will give you a quick overview of the status of all content, whether it's live, under review, or in the draft. This applies not only to blog posts but also to product pages and other website pages. Moreover, it allows you to assign tasks and check their progress. And it's easy to integrate scheduled content into your marketing plan, so everyone knows what's happening and when.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Improves site maintenance.&lt;/strong&gt;&lt;br&gt;
Need to change something on your site? Without a CMS, this can mean having to go through hundreds of pages, making changes to each one. However, the basic architecture of the CMS is the same, so you can complete maintenance changes, update the CMS software, and add functionality without breaking the site. In fact, with a suitable CMS, it can update itself automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Design changes are effortless.&lt;/strong&gt;&lt;br&gt;
Speaking of making changes, let's talk about the site's appearance. If you want to change the design of your website, a CMS will make the process easier. This is because the content and design are in separate virtual boxes, so you can make changes to the design while still keeping the site functional. Another advantage is making changes to your admin panel and automatically propagating them to the entire site. This gives your site a consistent look and feel and is excellent for branding. It also makes updating your site's mobile experience much more straightforward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. It helps you manage content.&lt;/strong&gt; It may seem obvious, but for some businesses, content management isn't just about publishing content; it's about being able to remove it when it's out of date. For example, if you're running a Thanksgiving or Christmas promotion, you'll want to delete and change it before the season ends. With a CMS, it's as easy as unpublishing content – all menus and links are automatically updated to keep your customers on the site. And if you want to include custom content like countdown calendars and lists, the CMS can be configured to do just that. And a good CMS also includes SEO, ensuring your content ranks well in search engines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. You are in control.&lt;/strong&gt; All this is the most significant advantage of CMS. Instead of relying on an external provider, with a CMS, you are in control, with the ability to assign tasks and roles and check progress at any time. This puts you in the driver's seat regarding this critical business tool.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summing up&lt;/strong&gt;&lt;br&gt;
As content management systems continue to evolve, we see a continuous evolution in the features that customers require and what you should expect from your CMS in growing your business website. From new microdata requirements to robust and easy-to-use templates, your next CMS should take advantage of these advanced features to make your website and administration faster.&lt;/p&gt;

</description>
      <category>startup</category>
      <category>mvp</category>
      <category>cms</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Every Developer Should Employ Test Driven Development</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Thu, 01 Sep 2022 00:02:50 +0000</pubDate>
      <link>https://dev.to/aktoyyib/why-every-developer-should-employ-test-driven-development-2npa</link>
      <guid>https://dev.to/aktoyyib/why-every-developer-should-employ-test-driven-development-2npa</guid>
      <description>&lt;p&gt;As software development approaches have evolved over the past two decades, various agile models have gradually taken hold. Since software development needs are rapidly changing, best practices have evolved, moving progressively toward continuous delivery and accelerating time to market.&lt;/p&gt;

&lt;p&gt;The test-driven development (TDD) practice has gained popularity because it works to resolve the speed vs quality dilemma once and for all. As part of the agile software development niche, Test-Driven Development (TDD) ensures that quality comes first, and it is one of the newest approaches. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is test-driven development?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The main idea of ​​this methodology is to write tests to determine and verify what the code should do. In other words, it is the practice of forming a test before coding a piece of functionality. When an automated test fails, developers must write new code. Therefore, this idea allows developers to spend more time analysing the final product's design or requirements before writing the code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why You Should Use TDD&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using TDD for software development is a more balanced approach emphasising three primary tasks: coding, testing, and designing. Coding and testing are built for one use case at a time, not for an optimal solution. As a result, software development can become more efficient and smooth by delivering feedback more rapidly and encouraging developers to write clean, solid code. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Speeds up development.&lt;/strong&gt; As developers get used to writing tests, things will get slower. Once you get used to it, development speeds up;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;High coverage of functional tests.&lt;/strong&gt; For each feature, I write 20-25 tests to cover all possible use cases;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Less time for debugging.&lt;/strong&gt; Usually debugging starts when the main functionality is already done. Here we are debugging the concept of functionality in advance while writing tests.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The path of any code in the development of TDD goes through 3 stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Red stage:&lt;/strong&gt; writing tests. The first test run will always return an error because the interface they are testing is not ready. Each test should experience at least one fail in its life. At least right after writing. As the TDD proponents say, "I can't trust a test that I've never seen fail." A failed test will draw attention to itself, and you will think about the correct implementation of the functionality or the test itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Green stage:&lt;/strong&gt; we develop the functionality and re-test it. Our task is to ensure that the test turns green. So we understand that the functionality is developed correctly. As I said before, it is important that the test fails at least once and passes at least once. It's easy to make the mistake of writing a test that always fails or always passes. But the test, which both fails and passes, clearly checks some kind of logic. After that, we can assume that the functionality works correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Refactoring.&lt;/strong&gt; We refactor a particular task since we are certain that the test code is already functional. We just write logical and clean code for our project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where does it apply&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The choice of TDD depends on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Teams and a person who sets and accepts tasks (let's call him the customer).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Internal processes on the project. For example, the team does not use continuous integration. You should not use TDD here, because the developer will not run tests every time before uploading the code to the repository. He or she will get lazy eventually.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are criteria by which you can determine that TDD will work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The project clearly describes the structure of interfaces, for example, JSON-API or REST-API are used. Our goal is to speed up product development. When there is a clear structure, the programmer does not invent the structure himself. If there is no clarity, the programmer thinks over the structure of the interfaces, and his vision may not coincide with what is in the head of the customer. Therefore, if the project has a well-thought-out API structure, write tests before the code;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The project has a similar approach to the implementation of interfaces, i.e. the logic and order of work on different entities is the same or very similar. Before writing tests, we organise the required data in the test environment. If the project has a certain approach to the implementation of interfaces, you can safely apply one pattern and save time writing tests. If there is no single approach in development, you will have to create your own conditions for each test before launching. This will take the same amount of time as normal development, so using TDD will not bring any benefit;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tasks are set in the style: one subtask - one test. Usually such tasks are set by the customer-technician. Start the system: inside a task, each subtask is one test. Then the developers calmly write tests that describe subtasks, then the implementation, and the tests gradually become green. If several tests can be isolated in each subtask, the process will not gain in time compared to conventional development;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is a high-level test framework with support for integration tests on the technology used in the project. Alternative option: a test framework abstracted from the implementation of another technology. All my TDD is Laravel projects. Here I use PHPunit testing tool. Tests should be abstracted from the implementation, so it doesn't matter which tool you choose. It is better to use a tool that exists in your language. This way the programmer doesn't have to switch context during development;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are no individual testers in the team. If there are testers in the team, they should write the tests. As a result, the main advantage of TDD is lost - “the mental connection of the programmer with the functionality”, because the tests are written by another person. For TDD to be useful, tests must be written by a programmer.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TDD is a must if a programmer writes an API that returns JSON to the frontend. If a programmer writes an API without TDD, checking JSON just with “a look” takes a very long time. The longer it checks, the more errors and the longer it takes to fix them. When tests are written, they automatically check JSON for errors. Pre-written tests will help the programmer validate the JSON output. As a result, development goes faster.&lt;/p&gt;

</description>
      <category>tes</category>
      <category>tdd</category>
      <category>test</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Best Way to Send an Email in Laravel</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Wed, 31 Aug 2022 23:49:48 +0000</pubDate>
      <link>https://dev.to/aktoyyib/the-best-way-to-send-an-email-in-laravel-56pn</link>
      <guid>https://dev.to/aktoyyib/the-best-way-to-send-an-email-in-laravel-56pn</guid>
      <description>&lt;p&gt;Sending an email shouldn’t have to be complicated. Laravel provides a clean, simple email API powered by the popular Symfony Mailer component. Laravel and Symfony Mailer provide drivers for sending email via SMTP, Mailgun, Postmark, Amazon SES, and sendmail, allowing you to quickly get started sending mail through a local or cloud based service of your choice.&lt;/p&gt;

&lt;p&gt;The best way to send an email in laravel is to use the laravel queuing system. Laravel queues provide a unified API across a variety of different queue backends, such as Beanstalk, Amazon SQS, Redis, or even a relational database. Queues allow you to defer the processing of a time consuming task, such as sending an email, until a later time. &lt;br&gt;
&lt;a href="https://onlinecode.org/how-to-send-mail-using-queue-in-laravel-4/?amp=1" rel="noopener noreferrer"&gt;https://onlinecode.org/how-to-send-mail-using-queue-in-laravel-4/?amp=1&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 : Create Mail&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;php artisan make:mail SendEmailTest&lt;br&gt;
After executing the code above, Laravel will create a new email file app/Mail/SendEmailTest.php&lt;/p&gt;

&lt;p&gt;&amp;lt;?php&lt;br&gt;
namespace App\Mail;&lt;/p&gt;

&lt;p&gt;use Illuminate\Bus\Queueable;&lt;br&gt;
use Illuminate\Contracts\Queue\ShouldQueue;&lt;br&gt;
use Illuminate\Mail\Mailable;&lt;br&gt;
use Illuminate\Queue\SerializesModels;&lt;/p&gt;

&lt;p&gt;class SendEmailTest extends Mailable&lt;br&gt;
{&lt;br&gt;
    use Queueable, SerializesModels;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/**
 * Create a new message instance.
 *
 * @return void
 */
public function __construct()
{

}

/**
 * Build the message.
 *
 * @return $this
 */
 public function build()
{
    return $this-&amp;gt;view('emails.test');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;}&lt;/p&gt;

&lt;p&gt;Now we need to create a new view for this email resources/views/emails/test.blade.php&lt;/p&gt;

&lt;center&gt;
&lt;h2&gt;
    &lt;a href="https://onlinecode" rel="noopener noreferrer"&gt;Visit Our Website : ItSolutionStuff.com&lt;/a&gt;
&lt;/h2&gt;
&lt;/center&gt;

&lt;p&gt;Hi, Sir&lt;/p&gt;

&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you Sir. :)&amp;gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now we need to set up sending mail&lt;br&gt;
So let’ set configuration in .env file:&lt;/p&gt;

&lt;p&gt;MAIL_DRIVER=smtp&lt;br&gt;
MAIL_HOST=smtp.gmail.com&lt;br&gt;
MAIL_PORT=587&lt;br&gt;
MAIL_USERNAME=&lt;a href="mailto:xyz@gmail.com"&gt;xyz@gmail.com&lt;/a&gt;&lt;br&gt;
MAIL_PASSWORD=123456&lt;br&gt;
MAIL_ENCRYPTION=tls&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 : Configuration of Queue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next step is to configure the queues themselves. To begin with, in the .env file, we will specify the database as the queue driver&lt;/p&gt;

&lt;p&gt;QUEUE_DRIVER=database&lt;/p&gt;

&lt;p&gt;Then we need to generate the migration and create tables for the queues&lt;br&gt;
php artisan queue:table&lt;br&gt;
php artisan migrate&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 : Create Queue Job&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, create a queue task handler&lt;br&gt;
php artisan make:job SendEmailTest&lt;/p&gt;

&lt;p&gt;This command will create the app/Jobs/SendEmailJob.php file. Let's fill it with the following code&lt;/p&gt;

&lt;p&gt;&amp;lt;?php&lt;/p&gt;

&lt;p&gt;namespace AppJobs;&lt;/p&gt;

&lt;p&gt;use IlluminateBusQueueable;&lt;br&gt;
use IlluminateQueueSerializesModels;&lt;br&gt;
use IlluminateQueueInteractsWithQueue;&lt;br&gt;
use IlluminateContractsQueueShouldQueue;&lt;br&gt;
use IlluminateFoundationBusDispatchable;&lt;br&gt;
use AppMailSendEmailTest as SendEmailTestMail;&lt;br&gt;
use Mail;&lt;/p&gt;

&lt;p&gt;class SendEmailTest implements ShouldQueue&lt;br&gt;
{&lt;br&gt;
   use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;&lt;/p&gt;

&lt;p&gt;protected $details;&lt;/p&gt;

&lt;p&gt;/**&lt;br&gt;
    * Create a new job instance.&lt;br&gt;
    *&lt;br&gt;
    * @return void&lt;br&gt;
    */&lt;br&gt;
   public function __construct($details)&lt;br&gt;
   {&lt;br&gt;
       $this-&amp;gt;details = $details;&lt;br&gt;
   }&lt;/p&gt;

&lt;p&gt;/**&lt;br&gt;
    * Execute the job.&lt;br&gt;
    *&lt;br&gt;
    * @return void&lt;br&gt;
    */&lt;br&gt;
   public function handle()&lt;br&gt;
   {&lt;br&gt;
       $email = new SendEmailTestMail();&lt;br&gt;
       Mail::to($this-&amp;gt;details['email'])-&amp;gt;send($email);&lt;br&gt;
   }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 : Use Queue Job&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's test the queues. First of all, let's create a route in which a new task for the queue will be created.&lt;/p&gt;

&lt;p&gt;routes/web.php&lt;/p&gt;

&lt;p&gt;Route::get('email-test', function(){&lt;br&gt;
    $details['email'] = '&lt;a href="mailto:add_your_email@gmail.com"&gt;add_your_email@gmail.com&lt;/a&gt;';&lt;/p&gt;

&lt;p&gt;dispatch(new AppJobsSendEmailTest($details));&lt;/p&gt;

&lt;p&gt;dd('done');&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;Ok, the route has been created. Start the queue listener using the following command&lt;br&gt;
php artisan queue:listen &lt;/p&gt;

&lt;p&gt;Let's start the server with the command&lt;/p&gt;

&lt;p&gt;php artisan serve&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>sendanemail</category>
      <category>queue</category>
    </item>
    <item>
      <title>How to use Laravel Soft Deletes</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Wed, 31 Aug 2022 23:45:35 +0000</pubDate>
      <link>https://dev.to/aktoyyib/how-to-use-laravel-soft-deletes-466h</link>
      <guid>https://dev.to/aktoyyib/how-to-use-laravel-soft-deletes-466h</guid>
      <description>&lt;p&gt;The Laravel web framework has been considered the best PHP framework for website development for many years. It provides ready-made template solutions for the implementation of web projects of varying complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Laravel?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prior to going into Laravel’s unique Soft Delete feature, let’s understand what Laravel encompasses. Laravel is an MVC framework for fast, convenient and, most importantly, correct writing of sites in PHP. The framework has a large set of features, plugins and templates that allow you to bring even the most ambitious projects to life.&lt;/p&gt;

&lt;p&gt;The Laravel web framework is open source and absolutely free for all developers. The project source code can be found on the GitHub page.&lt;/p&gt;

&lt;p&gt;The framework often receives various awards and accolades. For example, Laravel gets the title of the best PHP framework for both corporate and personal use and the popularity of the framework is constantly growing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why should we use Laravel?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Laravel values beauty and it is worth using if only for the reason that it allows you to write functional, clean and attractive code. After all, if you write code yourself, there is a possibility that you can implement something not so simple and elegant, but through this framework everything turns out beautifully and correctly.&lt;/p&gt;

&lt;p&gt;Laravel allows you to do things like: unit testing, tracking URLs, setting security, working with sessions and creating an authorisation system, light database work, working with mail, error tracking and many other things. All this is possible to implement without Laravel, but in implementing it you will use ready-made solutions and your code will turn out to be much simpler and smaller than writing everything yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laravel Soft Deletes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even if you provide users several warnings before they permanently remove a record from your database, it still happens that people delete data by accident in your applications. What you can do to backup data, is introduce the idea of a trash can that your customers are familiar with from their desktop and this way you can control when the trashed data is erased for good. &lt;/p&gt;

&lt;p&gt;If the scenario above is relevant to you, then the Soft Deletes function of Laravel is what you're looking for. All you have to do is add a new database column to your Laravel Model and use the ‘SoftDeletes’ trait on your model. This will allow you to restore deleted data easily and quickly when a user mistakenly deletes some data.&lt;/p&gt;

&lt;p&gt;A soft deleting feature is provided by Laravel using the Illuminate\Database\Eloquent\SoftDeletes trait.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code examples&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;force delete soft delete Laravel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Soft Delete : $user-&amp;gt;delete();&lt;br&gt;
Force Delete : $user-&amp;gt;forceDelete();&lt;br&gt;
Restore Soft Deleted Item : $user-&amp;gt;restore(); &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;soft delete Laravel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;/** in migrations this changes need to&lt;br&gt;
    add for table we want to add soft delete (LARAVEL)*/&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** The migrations. START */
public function up()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table-&amp;gt;softDeletes();
    });
}
/** The migrations. END */

/** after adding softdelete you need to
point that column in table related model (LARAVEL)*/

/** The Model. START */
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model {
  use SoftDeletes;
  protected $dates = ['deleted_at'];
}
/** The Model. END */
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;laravel restore soft delete&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Post::withTrashed()-&amp;gt;find($post_id)-&amp;gt;restore();&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Every company is unique. When developing applications, each business develops a unique list of their needs, software requirements, and indicators to track performance. Whether you're upgrading an existing application or building a new one from scratch, always start with the application's performance requirements, and also consider why you're specifying those requirements. Answers these questions are needed to make decisions about the architecture of the application. If possible, you should also consider on-premises and hybrid deployments. This will ensure that your choice is compatible with the languages ​​and frameworks you use. Laravel is the ideal PHP framework for business-related projects.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Data-driven decision making: “He who owns the information - owns the world.”</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Wed, 31 Aug 2022 23:35:08 +0000</pubDate>
      <link>https://dev.to/aktoyyib/data-driven-decision-making-he-who-owns-the-information-owns-the-world-3nfb</link>
      <guid>https://dev.to/aktoyyib/data-driven-decision-making-he-who-owns-the-information-owns-the-world-3nfb</guid>
      <description>&lt;p&gt;Data-driven decision management (DDDM) is a corporate governance strategy that prioritises decisions that can be supported by verifiable data. That is, any critical decision is made only based on data processing results according to the specified parameters.&lt;/p&gt;

&lt;p&gt;In fact, this is a representation of the old wise saying: "He who owns the information - owns the world." Indeed, the decisions made in the data-driven concept are much more objective and practical, taking into account long-term strategies. In the material presented below, you will learn about how the data-driven approach works and whether it can be implemented.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Essence of DDDM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A thorough analysis of information allows you to create an idea of ​​the effectiveness of the business, as well as outline the main directions of its development. At the turn of the 2000s, a new approach to making strategic decisions based on the study of data emerged. Over the past two decades, data-driven decision making has become one of the basic principles for the work of business leaders, marketers, managers and other professionals.&lt;/p&gt;

&lt;p&gt;Data-driven decision making eliminates any possibility of building a strategy and calculating steps based on intuition, unsupported guesses and assumptions. Instead, accurate information and hard figures, the only valid basis for finding business solutions, are put at the forefront.&lt;/p&gt;

&lt;p&gt;It would seem that what is innovative about this approach is that business people have always been distinguished by the ability to analyse the current situation and draw conclusions based on positive and negative experiences, both their own and competitors. However, the risk of succumbing to emotions and, as a result, misjudging the state of circumstances unique to a person frequently considerably affects a business's effectiveness. The desire to outperform competition and take risks to earn more without supported calculations leads to the downfall of many entrepreneurs.&lt;/p&gt;

&lt;p&gt;A business that has made data-driven decision making the main principle of its activity is more protected from a subjective approach to assessing the situation and, accordingly, makes decisions responsibly, favouring a strategy that is most likely to be successful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the characteristics of such an approach?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are several of them:&lt;/p&gt;

&lt;p&gt;Understanding the need to incur additional costs associated with the implementation of data-driven decision making. Information will need to be collected, stored, processed, and this is the work of specialists who must be compensated.&lt;/p&gt;

&lt;p&gt;Analytical skills to get the most out of your data. The figures in the report are not an end in themselves; they are only tools for making strategic and tactical decisions.&lt;/p&gt;

&lt;p&gt;Flexibility in business planning, the ability to rely on the collected data, but at the same time trust the opinion of experienced professionals and find a compromise. At the same time, it is important to keep in mind that facts and figures are the main guidelines for making a final decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data-driven culture in the company&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Suppose the leadership of a commercial organisation believes that it is best to be guided by accurate data when developing a strategy and making current decisions. In that case, the company adheres to a data-driven culture.&lt;/p&gt;

&lt;p&gt;In practice, this looks like the introduction of the following principles into the activities of the business structure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Planned investments in working with data, namely in their collection, storage, analysis, interpretation, and preparation of recommendations to help make the right decision.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Focus on accurate information in the process of determining the company's strategy: numbers are more important than emotions; they are the ones that guide organisations that employ a data-driven approach.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Careful study of the collected data and the formation of the only correct conclusions. Business decision-makers need to have analytical thinking skills to interpret charts, tables and graphs competently. It is essential not only to focus on numbers but also to be able to justify the rationality of the proposed solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Maintaining a balance between the results of analytical calculations and the experience of managers making decisions. It is worth considering criteria that are not reflected in reports and charts but are worthy of attention: suppose the data analysis was carried out before the onset of an important event that affects the current situation. The optimal decision, in this case, will be made in conditions of cooperation and mutual trust between analysts and managers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data-driven culture takes root without problems when the initiators of the implementation of this approach are the founders of the company themselves. However, making decisions based on the results of studying data complicates the workflow and requires additional labour costs. Therefore, without convincing the business owner of the need for such expenses, it will not be possible to make data-driven decision making the foundation of the organisation's activities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DDDM &amp;amp; Marketing as the best combination&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A strategy based on the study of data allows us to solve the main task of successful marketing at the present stage – to personalise communication with the client. The most effective targeting campaigns result from careful collection and analysis of information about the target audience and building individual relationships with each consumer.&lt;/p&gt;

&lt;p&gt;The high level of competition explains the choosiness of users: in surveys, the vast majority say they do not want to stay on the site if the content does not meet their needs. To retain and grow the customer base, companies are forced to pay more and more attention to collecting and analysing data on potential and existing customers.&lt;/p&gt;

&lt;p&gt;Data-driven tools make it easy to personalise the approach to every customer. Today, addressing a user by name in an email is no longer enough to stay competitive. Instead, a seller who wants to outperform his competitors must know what and when to show any of his customers. In other words – which banner ads and pop-ups will work more effectively at one time or another.&lt;/p&gt;

&lt;p&gt;Data-driven marketing pays off when a company can gather detailed information about its audience and target markets. Of course, careful data collection, as well as subsequent analysis, will require a significant investment. Still, this investment will pay off due to an accurate understanding of the needs of different customer groups.&lt;/p&gt;

&lt;p&gt;It would be a mistake to think that working with data can be a one-time deal. On the contrary, you will need to build data-driven marketing in such a way as to ensure that the information is up-to-date. Data becomes outdated quickly, and a strategy developed five years ago may be ineffective in the current environment. This is crucial because the most effective decisions are based on data. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using data-driven principles in web development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An inevitable consequence of global digitalisation is the constant updating of data, which also serves as the basis for creating new software. Developers are forced to collect up-to-date information so that their product meets current needs and realities.&lt;/p&gt;

&lt;p&gt;Another reason for regularly analysing information about user behaviour, their reviews of digital products, and error reports is the desire to create software that people will not have problems using. To assess the quality of the services provided, development companies regularly monitor information about traffic, downloads, internal issues of the service and the number of users.&lt;/p&gt;

&lt;p&gt;As a basis for improving the software product, the results of the evaluation of the code and the consistency of its blocks are used. All these actions show the company's desire to adhere to the principles of data-driven business development.&lt;/p&gt;

&lt;p&gt;Data-driven analysis is integral to working on any product or process today. By collecting and processing data, engineers receive information based on which they can optimise the outcome. However, without well-established consumer feedback, it is difficult to count on a complete hit in their needs and, therefore, on an industrial enterprise's success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data-driven Decision Making Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To collect and study large amounts of data, unique tools have been developed: &lt;/p&gt;

&lt;p&gt;&lt;u&gt;Business Intelligence tools&lt;/u&gt; – allow you to use all the data that business and marketing platforms accumulate by integrating them into one solution. With BI tools, a company has everything it needs on one dashboard, which simplifies decision-making and can minimise the time it takes to accomplish tasks, enhancing productivity.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;CRM-system&lt;/u&gt; – allows for automation sales and gives an impartial assessment of the results of marketing activities. With a CRM solution, companies obtain acces to each client’s full profile that includes personal information and demographics, a purchase history, interactions with the company, etc. A CRM boosts lead generation, customer acquisition and retention, allowing the company to grow its business with satisfied and loyal customers.;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Market Research&lt;/u&gt; - the king of all data sources, providing the most accurate and valuable first-hand data. It allows a company to analyse its competition, formulate an optimal pricing strategy, understand the user experience, improve current products, etc.;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Attribution Modelling&lt;/u&gt; – allows you to understand better how each optimisation contributes to the success of your business. This technique measures conversions across communication channels and allocates value based on their participation in the transaction. This information helps you recognise how much each streamline contributes to your company's performance.;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Website Analytics&lt;/u&gt; – a priceless tool that lets you know about your customer’s behaviour. This data reveals which content works well and keeps clients interested, as well as which pages have a significant churn rate.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In closing&lt;/strong&gt;&lt;br&gt;
Some of the immediate benefits of the DDDM approach include increased profits, reduced costs, improved pricing, minimised bias, better problem-solving, and happier customers. Transferring the company's activities to a data-driven decision making approach can be the beginning of a breakthrough in its expansion. The basis of strategic and tactical decisions will be only real numbers obtained from a thorough study of a large amount of data. This approach minimises the risk of going down the wrong path, prompted by intuition or experience.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to become a self taught developer</title>
      <dc:creator>aktoyyib</dc:creator>
      <pubDate>Wed, 31 Aug 2022 23:26:21 +0000</pubDate>
      <link>https://dev.to/aktoyyib/how-to-become-a-self-taught-developer-1n0a</link>
      <guid>https://dev.to/aktoyyib/how-to-become-a-self-taught-developer-1n0a</guid>
      <description>&lt;p&gt;As we enter a technology-driven era, students no longer have to attend certain graduation programs to become well-versed programmers or developers. As long as you have a passion for programming, you can learn from various resources (both online and offline) to become a Self-Taught Developer. This collection of methods and resources can be used to teach yourself coding skills without any curriculum constraints. In the meantime, this journey as a self-taught developer required a lot of commitment and consistency! &lt;/p&gt;

&lt;p&gt;According to the statistics, around 65-70% of developers consider themselves self-taught innovators, and the number is proliferating. Although self-taught developers don't attend a school or follow a mentor, they generally aren't dependent on any particular person or platform to master their development skills, so they can follow various learning methods to become proficient Self-Taught Developers. Here are a few significant benefits of being a Self-Taught Developer:&lt;/p&gt;

&lt;p&gt;Self-taught developers tend to be more experienced as they are not required to follow any particular curriculum to master programming or development skills;&lt;br&gt;
In addition, besides development, self-taught developers know various other areas such as design, deployment, etc;&lt;br&gt;
Self-taught developers have an extensive portfolio, because they create several projects in the learning process, participate in various competitions, etc.&lt;/p&gt;

&lt;p&gt;Now, let's look at the most common and practical methods to enhance your skills and knowledge in development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choose a Niche&lt;/strong&gt;&lt;br&gt;
The first step in your path as a self-taught developer is to choose a niche. This ensures that you don't put too much pressure on yourself. It restricts your learning and enables you to focus on a small segment in order to establish an entrance point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read books&lt;/strong&gt;&lt;br&gt;
No matter how trite it may sound, books are still the primary source of knowledge in any field. However, all aspiring self-taught developers should start off the path by reading relevant books. You may find it difficult to find important information about programming and software development anywhere else, but reading up-to-date and high-quality books will give you a detailed and comprehensive introduction to the world of programming. A few developer books are recommended, such as Clean Code by Robert S. Martin, The Pragmatic Programmer: From Journeyman to Master by Andy Hunt and Dave Thomas, and Game Programming Gems by Mark DeLoura.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Courses &amp;amp; Online Tutorials&lt;/strong&gt;&lt;br&gt;
Self-taught developers benefit significantly from online learning. A wide range of online resources is available today, such as YouTube videos, tutorials, courses, etc., which can enhance your skills. To master the development skills, you may also choose relevant online platforms such as GeeksforGeeks, which offer free and paid tutorials and courses. To gain more learning exposure, you can also attend a few webinars and watch some live sessions. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coding Bootcamps&lt;/strong&gt;&lt;br&gt;
While self-taught learning does not restrict you from participating in training programmes, you can also attend coding bootcamps for your Self-Taught Developer voyage. As a result of these coding bootcamps, you will be able to enhance your tech skills and become proficient in the field. Having graduated from such a bootcamp opens up opportunities for working in some of the industry’s top players like Konga, Jumia, Paystack, Google, Microsoft, Amazon, Facebook, etc. &lt;br&gt;
Learn from Other People's Code&lt;br&gt;
Reading other people's codes is one of the most effective and widely used learning techniques by Self-Taught Developers. You can explore various open-source principles available over the web to grasp some crucial insight and grow your knowledge. However, you're required to examine and run the code, review it, and do code refactoring, in addition to other practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming Contests&lt;/strong&gt;&lt;br&gt;
Developing your skills and knowledge at various stages is essential to becoming a proficient Self-Taught Developer. It is also possible to showcase your development skills through coding contests, as they allow you to compete with the best minds worldwide. Many reputable platforms offer these contests, including TopCoder and International Collegiate Programming Contest (ICPC). Furthermore, you gain many ravishing career opportunities through these contests, including rankings, badges, scholarships, and prizes. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apply the Obtained Knowledge&lt;/strong&gt;&lt;br&gt;
Even though you may have read hundreds of coding books and taken dozens of development courses, if you don't know how to apply all those concepts and knowledge practically, they are useless to you! The ability to build projects is vital for self-taught developers because it validates their knowledge, gives them confidence, and encourages them. To begin with, you do not need to build a complex app, for example, a text editor, a calculator, a snake/chess game, and then move on to more complex ones. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Join Relevant Online Communities&lt;/strong&gt;&lt;br&gt;
In addition to joining and connecting with relevant online software developer communities, you must get involved in related ones. By joining these communities, you can connect and collaborate with a wide range of skilled developers worldwide who can help you grow as a developer yourself. Additionally, it will keep you updated on all recent developments in the industry, offer code feedback, and facilitate project idea sharing. To network, developers can look at many online forums and groups like &lt;a href="https://stackoverflow.com" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt;, &lt;a href="https://www.webdeveloper.com/" rel="noopener noreferrer"&gt;Developers Forum&lt;/a&gt;, &lt;a href="https://hashnode.com" rel="noopener noreferrer"&gt;Hashnode&lt;/a&gt;, &lt;a href="https://www.experts-exchange.com/" rel="noopener noreferrer"&gt;Experts-Exchange&lt;/a&gt;, &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;As you can see, it is possible to become a proficient Self-Taught Developer through various primary learning methods. Other than these, you can also select your own learning methods, but &lt;strong&gt;regardless of what you choose, you must work hard and remain consistent to succeed!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>career</category>
    </item>
  </channel>
</rss>
