The Phases of Software Testing Life Cycle (STLC)

corona image

Coronavirus Impact on eCommerce Industry!

The software testing life cycle (STLC) is the sequence of testing activities throughout development. Described as a string of activities handled by the testing team in their testing process over a particular product, it is the sequence of activities carried out by the testing team from the beginning of the project until the end of the project.

The testing activities start from the requirements analysis phase and goes through all the phases one by one before completing with the Test cycle closure phase.

The Six STLC Phases are

1. Requirement Analysis

2. Test Planning

3. Test Case Development

4. Environment Setup

5. Test Execution

6. Test Cycle Closure

STLC Life Cycle Phase Details

Let us discuss each phase of the STLC Life Cycle in detail. The STLC life cycle runs in parallel or overlaps with the project life cycle-

Phase 1: Requirement Analysis

This is the very first phase of the Software Testing Life Cycle (STLC). In this phase testing team goes through the Requirement document with both functional and non-functional details to identify the testable requirements.

In case of any confusion, the QA team may set up a meeting with the clients and the stakeholders (Technical Leads, Business Analyst, System Architects and Client, etc.) in order to clarify their doubts.

Once the QA team is clear with the requirements, they will document the acceptance criteria and get it approved by the customers.

Phase 2: Test Planning

Test Planning phase starts soon after the completion of the Requirement Analysis phase. In this phase, the QA manager or QA Lead will prepare the Test Plan and Test strategy documents. As per these documents, they will also come up with the testing effort estimations.

Phase 3: Test Case Development

In this phase, the QA team writes test cases. They also write scripts for automation if required. Verification of both the test cases and test scripts is done by peers. Creation of Test Data is done in this phase.

Tests cases can be designed by two approaches:

  • By knowing the Functions / Requirements which is Black Box Approach
  • By knowing the internal implementations which is White Box Approach

Phase 4: Test Environment Setup

During this phase, testing environments are configured and deployed. This phase may include a variety of testing tools, including TestComplete, Selenium, Appium, or Katalon Studio, and so on.

Sometimes this phase also includes setting up test servers. Once environments are deployed, smoke tests are performed to ensure that environments are working as expected with all intended functionality.

Phase 5: Test Execution

In the Test Execution phase, the test cases are executed in the testing environment. While execution of the test cases the QA team may find bugs that will be reported against that test case. This bug is fixed by the developer and is retested by the QA.

Phase 6: Test Cycle Closure

This is just the phase where the evaluation of the whole cycle takes place. The members of the testing team evaluate the criteria of the cycle completion on the basis of Quality, Test Coverage, Time, Software, Cost, and crucial business objectives.

The team also discusses all the things which went well and the areas which need some improvement in the software testing life cycle process. The bug and test case report will be used to analyze and find out the distribution of defects by severity and type.

After the completion of the test cycle, the test metrics and test closure reports will be prepared.

Share this post

View Composers:

View Composers are callback or a class method that gets executed when a view is rendered. That means when Laravel loads a *.blade.php file to serve to the browser to display contents it executes View Composers.

When to Use:

Suppose we have some data, we will be needing on multiple views or on any layout file that gets loaded into multiple views. Writing the logic or executing a query inside the blade is bad practice. Or passing the data from multiple controller functions is not a good idea either. That’s exactly when view composers comes into play. Let me give you some example and procedure on how to use view composers to bind data to multiple views using a single logic location.

Procedure to use View Composers:

Suppose we have an e-commerce application that has many categories stored in DB. And we will need the categories list in every view that is being rendered.

We can send the categories to home page like this

public function index() {     $categories = Category::all();     return view('welcome', compact('categories')); } 

Rendered Data

If we need the category list on /home page, we’ll have to do the same query for the same listing in different function. Now imagine what if we need the data on many pages. Doing that same query over and over again makes it hard to maintain code base. But using View Composers, we can pass the data to multiple view files from one logic block. Let me show you how we can do that.  

First lets create a ViewComposer Service provider by running command
php artisan make:provider ComposerServiceProvider

The newly created ComposerServiceProvider will look like this.

Now let’s add the ComposerServiceProvider class to config/app.php providers array so that Laravel can recognise it.

On the next step lets create a View Composer CategoryComposer class inside App\Http\ViewComposers folder.

Modify the boot method in the new Provider by adding a composer method that extends view().

public function boot()
{
view()->composer(
'app',
'App\Http\ViewComposers\CategoryComposer'
);
}

Laravel will execute a CategoryComposer@compose method every time app.blade.php is rendered. This means that every time the view is loaded , we will be ready to show the categories in home.blade.php & welcome.blade.php with the categories list from our view composer.

Next, we’ll pass the categories list from our view composer to our views from the compose method.

public function compose(View $view)
{
    $categories = Category::all();
    $view->with(['categories' => $categories]);
}

Now we can access the categories array on both view files without needing to send data from multiple controller functions.

** Controller **
public function index()
{

    return view('home');
}

public function welcome()
{

    return view('welcome');
}

Accessing the categories array on welcome.blade.php

@extends('layouts.app')
@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">Dashboard</div>

                    <div class="card-body">
                       <ul class="list-group">
                           @foreach($categories as $category)
                           <li class="list-group-item">{{$category>title }}</li>
                               @endforeach
                       </ul>
                    </div>
                </div>
            </div>
        </div>
    </div>
    @endsection

Note: It is possible to create a view composer that is executed when all views are rendered by replacing the view name with an asterisk wildcard

view()->composer('*', function (View $view) {
    //Logic block
});

That’s all for today. See you one the next one.

Share this post

Today’s world is changing day by day. Robotics, Artificial Intelligence, Augmented Reality (AR), Big Data, IOT and a lot of things exist in front of us. That is why a web developer must be proactive in learning new programming languages as well as new techniques. Today I am going to discuss several web development and management tools and resources for 2020 that will help web developers managing a company/firm or individual client.

Behind all the web development tools is language. A programming language is a formal constructed language which is designed to communicate with the computer and create programs in which we can control the behavior. There are so many programming languages such as- PHP, NodeJS, JavaScript, HTML5, Python, Ruby, Scala, CSS3, SQL, Golang, Rust, Elixir, TypeScript etc. I think as a web developer; you have already known details about these languages. You have to choose one or more than one particular language where you are good at.

Now, I’m sharing a list of database which refers to a collection of information that is stored to be retrieved, managed and updated.

  1. MySQL  
  2. MangoDB (Next-generation database)
  3. PostgreSQL 
  4. MariaDB 

Let’s talk about some special management tools that make you smart. 

Collaboration Tools 

For effective communication and collaboration, a web development team needs some useful tools. These following tools can help employees streamline their development workflow.  

i) Slack is a great messaging app by which your working life becomes productive and straightforward. Our Augnitive team uses Slack for communication purpose. 

ii) Trello helps your team stay organized, which is a flexible and visual way. It’s our favourite tool. 

iii) Glip helps to chat, share files, and for task management and video conferencing to unlock your team’s full potential.

iv) Skype is a wonderful tool for chatting, file sending, video conferencing smoothly with your clients or employees.

Without the above tools, you can use Asana, Jira, etc. as collaboration tools. 

Website Speed Test Tools 

Website speed is an essential factor for success because when your site will be loading faster, have higher conversion rates and lower bounce rate; it will be beneficial for higher SEO ranking. So, you can follow some free available tools: 

i) GTmetrix provides you insight about your site loads and suggestions on how to optimize it. 

ii) Google PageSpeed Insights can analyze the content of a web page and then it generates suggestions for making the page faster. 

iii) Dotcom-Tools Speed Test is important for analyzing your website’s speed regularly from 25 locations worldwide.  

iv) WebPageTest helps to run a free website speed test at real consumer connection speeds.  

v) Website Speed Test is a page speed test that includes a waterfall breakdown and the website preview. 

Web Development Newsletters 

A web development newsletter can carry a substantial amount of information, making it easier to create awareness around your products and services. It is a great marketing tool. By using it, you can connect with new prospects.

Fresh Brewed

i) Fresh Brewed is a weekly reading digest for UX designers as well as front-end developers. 

ii) WDRL refers a handcrafted which carefully selected list of web development related resources. 

iii) StatusCode Weekly is a weekly newsletter covering software development, Web operations, infrastructure, platforms, and performance, from the browser down to the metal. 

v) Friday front-end is related front-end development links tweeted daily, emailed weekly.

Project proposal Tools

Sometimes, web developers have to send project offer or proposal to clients. You can use the following tools which create your proposal automatically. 

Bonsai

i) Bonsai products have deep integration and smart automation to save you time. 

ii) Venngage is an online proposal maker. It offers a library of fully customization templates.

Meeting Tool 

Web developers need to set a meeting with domestic or foreign clients. So, you can use the following tool for your meeting purpose smoothly. 

Hugo

i) Hugo focuses on centralized, searchable meeting setting and note-taking. You can also connect it with Slack.  

Finally, I hope these web development tools and resources will be more beneficial for making your task smartly in 2020. I can’t list every tool and resource, but I mention the core part. So, what kind of tools can I include in my next blog, comment Us. Keep connecting with us- Augnitive|Blog for getting update.


Share this post

In my previous blog, I have shown you how to set up your project using create-react-app. In this one, I will discuss more theoretical type of things. You may think why react is easy to work with or why most people prefer it. Well, the first beautiful thing about react is its component-based approach. It divides merely its every work into single components, so at the end of the day, it’s reusable, easy to manage, and easier to understand.

What is Component?

In React, the total user interface is the combination of components. Here we make component by component and add them together, and at last, we get a full view. These components are reusable. You must be familiar with JavaScript functions, React acts just like JS functions and will return HTML via a render function.

It’s ok if you are still confused as it is a very new thing. Let’s create a component and add it to another file.

I hope you have your previous project setup. If not, then you can see my last blog Let’s Dive Into React. Open your VS code, and in the file you created, you will see some files are already built for you. In there, you will see App.js file in which you will see a return function and import and export files. Here App is a functional component as it has a render function. 

React App.js

So we will run our file in this App.js file. Now let’s open a new JS file. I have named my file FirstComponent.js. In that file, we will create a component.

Alright, now you can see above our very first component! It’s necessary to import React; at the end of the file, you will have to export the component of that file. Always capitalize your component name. Here I have created (FirstComponent) component and returned a simple paragraph. Now in App.js file, you will have to import this component file and call the component there.

Calling Component in React

As you can see above, I have imported the file. Now it will inherit all the file contents. After that, we will declare it like I did here <FirstComponent />

React Component

And you can see the component named ‘FirstComponent’ is shown here.

That is for today. Before the next blog, try creating as many components as possible. Always remember that practice makes a man perfect. Do little things with component and later share that with me.

Share this post

A smart school management system is an online application for managing your students, teachers, and administrative information along with school functionalities making everything digitized. Also, it includes day to day administration, attendance management, notices, events, examination schedule, course management, and many other services. This management system reduces the paperwork of school as well as helps you to track everything of a school including administration, teachers, students, and staff under one platform. 

Why School Management System? 

Easy accounting, secured and cloud data storage, save money and time, reduce manual work, increase reputation, real-time report, smart attendance and so many benefits, we can get from a school management system. So let’s discuss some points.

  • Safe & Secure 

Usually, all data of a school like students, teachers, and staff records and other information are stored manually in files. In case of an accident like fire or any mother nature incidents, there’s a chance to lose those important data. But the school management system stores all the data in the database automatically & those data are automatically backed up after a certain period. So your information will be stored safely.

  • Regular Upgrades 

As technological advancement is increasing, schools are also improving their operational strategy that means new functionalities or a new way to conduct any task. So, generally, software provider also introduces new features & improvements regularly.

  • Flexibility 

This application is easily capable of adjusting with new strategies in the framework as well as methods. So, it’s more flexibility with time.

Now I want to show an example of a smart school management system named “ShoroBorno“.

ShoroBorno: The School Management System

ShoroBorno is a product of Augnitive which is a digital enterprise providing Web design, Web application, UI/UX design, Machine Learning, E-commerce solution, and many other tech services worldwide. Let’s see some basic modules of ShoroBorno.

Basic Modules of ShoroBorno

School Management System: ShoroBorno

1. Role-Based login

In this web application, the user can log in as a teacher or student or admin and others.

2. Admin Management

There are lots of features included in admin management such as-  

  • All Classes Management 
  • Student Management 
  • Teacher Management
  • Department Management
  • Grade & Result Management
  • Syllabus Management
  • Notice Board Management 
  • Event Board Management
  • Exam Management
  • Academic Settings
  • Account Management
  • Library Management
  • Notification Management 
  • Inactive items Management

3. Teacher Management 

By having access to take attendance, sending messages to students as well as submitting grades, teaches can save their 80% time and effort from their manual painful clerical engagement.

4. Student Management 

With having a profile with photos, easy access to student particulars, their class schedules, checking massage, exam schedules and also many features are included like-

  • Check Attendance, Exam Schedule, Event and Notice details
  • Course Details
  • Grade History
  • Check Message

5. Account Management

An accountant can easily generate fees, as well as additional income or expense items; he also can collect fees from each student and the financial statement automatically created.

6. Library Management 

A librarian can add new books, issue books, as well as can maintain all library activities through ShoroBorno.

7. Parent

Track daily attendance by homeroom as well as checking notice, exam list, student’s result history and also can track-

  • Attendance history 
  • SMS notification
  • Academic Calendar 
  • Class Schedule

8. Other Features of ShoroBorno

  • Identify the Customer’s need
  • Advanced Search Options
  • SMS and Email Notification
  • Easier and Faster interface for processing complaints or service requests etc. are some basic features of ShoroBorno

Link : https://augnitive.com/shoroborno/

Share this post

CSS, Cascading Style Sheets, who may have thought it could be so creative, optimized and organized? Moreover day by day, it’s adding more dimensions and areas. Many may argue about the fact that is it fair to add frameworks in CSS, as they prefer it raw. But in this argument, frameworks have made its way and proved that adding it can create a proper ecosystem with lots of variations.

It’s 2019, and CSS frameworks are widely introduced everywhere. Some CSS frameworks are not that famous, though but you will be amazed to hear their features. So here are some powerful CSS frameworks:

  • Bootstrap
  • Materialize CSS
  • Foundation
  • Semantic UI
  • Bulma
  • PureCSS
  • Ant Design
  • Tachyons
  • UI Kit
  • Tailwind
  • Primer

We will talk about Bootstrap, Materialize CSS, Foundation, Buma, and Tailwind. Let’s now look at the amazing features they are providing.

Bootstrap

Magical Bootstrap

Bootstrap, your most favorite and almost renowned to everyone. About 52% of people are satisfied using bootstrap. Moreover, It has HTML, CSS and JS frameworks and together it gives you facilities like collapse system, tooltip, modal, etc. It has mobile-responsive features that give you a standard, modern view altogether.

Features:
  • Mobile-Friendly
  • Easy to Use
  • Responsive Features
  • Browser Compatibility
  • Great Grid System
  • Bundled Javascript plugins
  • Good Documentation
  • Base Styling for most HTML Elements
  • Extensive list of Components

Disadvantage:
  • Require a lot of styles overriding if you have a specific design planned
  • To create unique designs you will have to customize many things otherwise all website will look the same
  • Also, Javascript is tied to JQuery, which sometimes create unnecessary plugins.

Materialize CSS

Materialize CSS


Material Design, Created and designed by Google,  is a design language that combines the classic principles of successful design along with innovation and technology.

Features:
  • Mobile Friendly
  • Easy to Use
  • 12-Column Responsive Grid System
  • Various table options
  • Badge, Breadcrumbs with unique styles
  • Raised button, floating action button and flat button
  • Standard Cards, Chips, Collections 
  • Footer, Forms
  • Different Navbar options
  • Color System
  • Shadow variations
  • Sass Mixins
  • Responsive Flow Text
  • Ripple Effect with Waves

Disadvantage:
  • Refuses to use flexbox model
  • It’s heavy and large, may slow down speed

Foundation

Foundation

The responsive front end framework, Foundation has satisfied almost 45% of people with its magic. Moreover, it’s fast, prototype-based and has production code which makes it work on any device.

Advantage:
  • It’s flexible and lets you customize your website. So in this way, your website remains unique and not similar to other websites that have used Foundation. 
  • Flexible grids
  • Less CSS bloat in the HTML
  • Centered Columns
  • Collapse class removes gutters and also helps to collapse quickly.
  • Readymade pricing tables.
  • Multilingual option. As a result you can write from right to left in case of the Arabic language
  • Rich documentation

Disadvantage:
  • Less community support
  • For beginners, it will take time to learn Foundation
  • Less information for issues fixing also troubleshooting issues

Bulma

A flexbox model-based framework which is super responsive and very lightweight.

Advantage:
  • Responsive design
  • Easy to use and lightweight
  • Handle flexbox gracefully
  • Flexible, can be customized and highly modularizable
  • Simple syntax

Disadvantage:
  • As it doesn’t have a large community, so it is challenging to fix issues.
  • Slow CSS framework
  • It’s still in a development phase, and the final version is not released yet.

Tailwind

This framework is mainly famous for its rich library of UI kits and responsive behavior.

Advantage:
  • You won’t have to think of class names because it has built-in utility classes. 
  • Your CSS will be short, optimized and easy to manage
  • One config file (tailwind.config.js) and you can customize everything. Moreover, you won’t have to worry about the default configuration.
  • A basic design system is provided at very first so that you can work from a base.
  • It makes you stop switching from HTML to CSS and again from CSS to HTML. Therefore you can do everything in your HTML file.
  • You can easily create a component or extract them.
  • Of course, responsive! What were you thinking?

Disadvantage:
  • Binds you to a framework, not semantic
  • It’s still not very improvised and in alpha stage
Share this post

In this corporate era, people use Google for business, admission, travel or in any case. From their house, people are steadily able to find a product or service consistent with their required features and budget. Then why they will be harassed by spending money in the wrong place without visiting the online website? Either large or small, every business should have a website.

Look at the second-largest online shopping website, Amazon.com. It started its journey only through the business of books. They didn’t own much. Do you think they could grow up to the present stage without a website?

For the lack of technological knowledge, many developing countries have no known for their excellent quality items or services. But as an Intermediary-busines­sman using their services or products, other countries are increasing their fame and being financially profitable. We all know that a website can save our time, money, energy and ability to reach our information to more people. Is that all?

Here are 11 main reasons and advantages of having a website for your business:

Attraction Seeking

Before buying your items, clients search online for that. This time if you don’t have your website, the search will lead to visit them into other sites related to your items. With these similar items, they might be affected, which can ruin their enthusiasm or attention towards your items.

Beat The Better Companies

Sometimes, your product is comparatively less acceptable. Only using a website, you can proceed from the businessman, who provides better service than you. A domain name, developing a website, and SEO tracking will help you.

Assembling & Centering

Suppose you have a business with books( only for example). Many book publications don’t have any website you can represent the books of all publications together on your website. In this way; you can assemble all publishing books and become a center. Every people will visit your site for the books.

Easy To Access

Many buyers can’t make the right decision in a short time. Hurriedly they aren’t able to select the correct item for them. After that, they blame the company.

If you have a website for your items, sitting in the house, people will steadily able to find a product or service consistent with their required features and budget.

Websites Create A Trust Factor

If you have a website, you can provide all the information and features with your product.

It brings two benefits-

  • By information, the client will be reassured for buying an item from you rather than others.
  • It will help to reduce their accusations of the product because proper information can help them to select the right item.


Controlling Business

There is no chance of indiscipline in the price of your products. The huge contrast between the cost of an item among different places is impossible for its website. No intermediary-busines­sman can take advantage of your clients. Another hand, you will be able to control your whole business with a click.

Profoundly Reaches To The Real Clients

You can connect through your website with the most popular sites which contain similar items of yours. Also, you can comment and post your link there and relate social media to your website. Social media also helps to connect you with your similar sites. In the same way, you can reach to your clients here. That will make it easy to search for your product for your client.

Trust us; it is more helpful than TV, Newspaper and other expensive mediums because you are representing your items before the searcher, who are searching for it.

Websites Save Time, Money & Energy 

You can get pre-order hugely by using your website because of SEO-FRIENDLY view. Before marketing, you will be able to know the demand for the upcoming product and correctly invest in your production. You can also promote your website. You can promote the social media channel and pages at less expense. It also saves time and energy. Other media are not useful for this.

Improves Customer services

Customers’ feedback keeps you informed about your product quality, demand, changing requirements, etc. That’s also helpful to develop your business. Clients positive review increases the number of clients.

24 Hours Accessibility

Do you want to keep your service always available to customers? Only your website can do it. Clients don’t have to be harassed when they want to get information or visit your items or services.

It Also Can Be Your Income Source

Websites can make money. By the conditional settings of your website, you can earn money according to the visitor’s number.

By affiliate marketing or sponsorship, you can make money from your website. That is why many people who don’t have a business are creating websites for earning. So it’s not your waste of money, it’s an investment.

Share this post

This blog is not intended to make you feel bad about your coding skills. Let’s be honest we make mistakes and that’s the point we can learn from. Been in the IT industry for almost a year, I do make a lot of mistakes every day, but looking back at a time that rate changed from hundreds to ten or fifteen. Make mistakes, learn from it & don’t be ashamed of that. Today I’m going to point out some mistakes I did as a programmer and how I learned from it. The list is just in random order.

1. Plan before you start to write code

When we are assigned to write a code for a specific functionality without adequately understanding the problem statement or without any planning, we jump off and start writing codes. It needs planning & research. Think of writing code as art. You can’t jump off and start drawing you’ll have to plan what you want to draw, how you are going to draw, what are the things you are going to need to draw that. Same goes for writing codes also. You need to plan how you are going to solve the problem, research how to make it better, data you are going to need to complete the functionality. If you are working with a team, discuss with other members, plan your goal, draw diagrams, take notes, to make everything clear in your mind or if you are working alone, give yourself some time to think of possible solutions and choose the best from them and then start writing.

One of the great mistakes was to jump in and start coding without thinking of the impacts or anything. It might work for small projects but not for big ones and once done check and recheck every line of code. Make it even better.

2. Improving code quality

Like I told already think of writing code as art. Your art should be beautiful, right? So why your code shouldn’t be? We often make the mistake of not following some standard protocols to make codes readable.

Choose variable names wisely. Your variable name should describe what kind of data it’s holding. For instance, I am fetching some students data from the database of a particular school using Laravel.


i) $a = Student::where('school_name', 'LIKE', 'ABC')

->get();

ii) $students = Student::where('school_name', 'LIKE', 'ABC')->get();

Which variable name suits better for the data you are fetching? It’s $students, right? Same goes for function names, classes names and other files name.

Write documentation before each function. What parameter it receives, what the function does, what it returns, comment in some lines if needed. So that whenever another person reads the code, it’s readable for him. If your code is not readable, it’s complete trash.

Avoid duplicating codes. If you need specific functionality in different places, you shouldn’t write that code in different files every time. Just write it in some other file. And, call the function from where you need.

Follow MVC rules. Write the different type of codes in different files. Make separate folders for separate fill types.

Use spaces, comma, new line where necessary.

3. Coding alone while watching tutorials & reading documentation of a programming language

Another mistake we always do is not to follow along and write code while watching tutorials. It’s a good practice to watch and write code that helps you to understand better. That’s an excellent chance to practice what you are trying to learn.

Reading the documentation of a programming language is a must. Most of the time, we only focus on just watching tutorials. But, it’s always better to read the official documentation of the programming language you are trying to learn. It gives you the inside of that language also a better understanding of every features that language provides.

4. Performance improvement

Most of the time, we focus just on the functionality without giving much thought about its performance, user input validation, security vulnerabilities We have the habit of assuming everything works. Every line of code should be bulletproof, that means 100% performance in any possible scenario.

  • Reduce database query if possible.
  • Check every possible input that can come from user and validate
  • if your code hurts other functionalities,in that case Check & recheck.
  • Have a clear understanding of data changes and possible outcome after the function executes.
  • Your code shouldn’t bring any security threats to the system.
  • Try to reduce the number of iterations.
  • find out what Exception the function might through and correctly handle that Exception.
  • Try to understand other peoples code & question those if those are not well documented or readable.
  • Find bugs and solve them. “Ignorance is bliss” but not in this case.
  • Learn to use debugging tools.

5. Admit that you don’t know everything

We are human beings. It is a fact that we are not perfect & we don’t know everything. You always have something to learn. But, when you start to think that you know everything that will be your greatest mistake of all time because, when you lose the interest to learn anything new, and if you are not learning anything new, you won’t survive in this ever-growing IT industry. If someone finds out mistakes in you, appreciate them. Appreciate code reviewers. Take their suggestion into accounts.

6. Learn to ask for help & learn to google

It’s always good to ask for help if you are stuck somewhere for a long time. Talk with experts & discuss your issue, they might guide you for a solution Learn to search in google. There’s 99% possibility that the problem you stuck on right now someone else must have faced that too. They may have asked it on forums, and some others may have given some outstanding solutions. Learn to R&D, and the best way doing that is to Google it and find out the solution, you are looking for.

7. Stop being scared & doubting yourself

The number one mistake you can make as a beginner programmer is to think you’re not good enough, not smart enough and you’ll never get it. I believe that anyone can learn to program to at least a basic level if they stick with it.

Code may seem like an incomprehensible wall of alien language at first. That’s normal! But, bit-by-bit you learn what each part does, and it’s not scary anymore, and then you see it’s really all very logical when you know what it means.There’s an element of natural talent for programming and logical thinking, but it’s massively outweighed by hard work and hours spent plugging away at your code, reading tutorials and looking-up documentation.

Master your fear, or fear will be your master!

That’s all that came out of my head while writing this blog. Surely I’ll make many mistakes & learn from those in the future. And I will share those too. Till then keep on coding, make mistakes, learn from them, start improving your codes.

Share this post

In this blog, we are going to discuss the fundamentals of JavaScript like variables, data types, conditions, looping, and other topics. 

The previous blog was about Introduction to JavaScript where we discussed on JavaScript history why it is famous among all web developers, why should we use it in modern web development, and it’s future. 

Run First Script 

JavaScript codes can be inserted into any part of HTML documents (I hope you have enough knowledge of HTML & CSS) with the help of script tag. For example  

Code inside <script> tag automatically executed when the browser renders the page.

<script> tag has few attributes that are rarely used nowdays.

The type attribute : <script type = “text/javascript”>

External Script: If we have a lot of JavaScript code, we can put it into a separate JavaScript file. JavaScript file attach to HTML using <src> attribute.

Variables 

Most of the time, JavaScript needs to work with information. Consider two scenarios- 

  1. In an online shop, we store different kinds of data like sold goods, pricing etc. 
  2. In a chat application, the data might include users, messages, and much more

Variables which are used to store information.

To create a JavaScript variable, use the let keyword. 

The statement below creates (in other words: declares or defines) a variable with the name “message”:

Now we can put some value in message variable using assignment operators =,


var instead of let

The var keyword is almost the same as let. It also declares a variable, but in a slightly different. We will discuss briefly about that topic our next blog.

Variable naming

There are two limitations on variable declaration javascript variable-  

  1. The name must contain only character, number and digit and symbol
  2. The first character must not be a digit

Examples of some valid variables name in JavaScript- 

Examples of some invalid variables- 


Case matters

Variable named message and Message are two different variables.

Constants

Constant variable means unchangeable. To declare constant variable, we use const keyword in JavaScript.


Name Things right 

Talking about variables, there’s one more extremely important thing.

A variable name should have clean, obvious meaning, as it describes the data that it stores.

Variable naming is one of the most important and complex skills in programming. So a quick glance at variable names can reveal which code was written by a beginner versus an experienced developer.

Data Types

A variable in JavaScript can contain any data. A variable can at one moment be a string and at another be a number- 

Programming languages that allow such things are called “Dynamically Typed”, meaning that there are data types, but variables are not bound to any of them.

There are seven data types in JavaScript-

A Number 

The number type represent both integer and floating point number.

There are many operation for number data type, for example multiplication “*” ,division “/” , Addition “+”, substract “-” and so on.

A String 

A string in JavaScript must be surrounded by quotes.

In JavaScript, there are three types of quotes- 

  1. Double quote : “Hello”.
  2. Single quote : ‘Hello’.
  3. Backtics : `Hello`.

Double and single quotes are same. Because there is no difference between them in JavaScript.

Back-ticks are “Extended Functionality” quotes. They allow us to embed variables and expressions into a string by wrapping them in ${…}, 

for example:


A boolean (Logical type)

The boolean type has only two types- true and false.

This type commonly used to store yes/no value. True means yes and false means no.


A Null 

Null type just a special value which represents “nothing”, “empty” or “value unknown”.

The code above states that age is unknown or empty for some reason.

The undefined value 

The meaning of undefined is “value is not assigned”.

If a variable is declared, but not assigned,its value is undefined:


Objects and Symbols 

All other types are called “Primitive” because their values can contain only a single thing. In contrast, objects are used to store collections of data and more complex entities.

The symbol type is used to create unique identifiers for objects.

The type of operator 

The type of operator returns the type of the argument. It’s useful when we want to process values of different types differently or just want to do a quick check.

There are two types of syntax : 

  1. As an operator : typeof a
  2. As a function : typeof(a)

The call to type of variable  returns a string with the type name.

We will discuss more about the Fundamentals of JavaScript like operators, conditions and other things in my next blogs. 

Share this post

In the last blog, we installed our first Laravel application on our local machine and served it using php artisan serve. But we didn’t connect any database or anything. So today we are going to do that. Instead of serving our Laravel application with php artisan serve command on local machine, we are going to serve our application using Vagrant a virtual machine that take cares of all the dependencies for your application. I don’t want to go in the details of what the Homestead or virtual machine or vagrant is. You can simply just google about them or visit Laravel official documentation for that. So without farther a due let’s get started- “Installing Homestead”.

Installation Process

As we are going to install a virtual machine first, you need to enable virtualization from your local PC BIOS settings. After that download any virtualization software that you prefer. In my case, I used Virtual box. So just go to their website download the one which suits your PC configuration and install. After installing Virtual box, you need to install vagrant for your PC. To do that visit https://www.vagrantup.com/downloads.html . After that download the one which suits your PC configuration. As I am Ubuntu user, I downloaded the Debian package.

Adding Laravel/Homestead box to vagrant installation

Now, we need to add Laravel/homestead box to our vagrant installation. So to do that open up your terminal type in this command vagrant box add Laravel/homestead and hit enter. After that type in 3, if you are using virtual box and press enter. Depending on your internet speed, it may take 30-45 minutes to download.

If you are following correctly till now, you are ready to install Homestead.

So just copy git clone https://github.com/laravel/homestead.git ~/Homestead this git command and clone this repository by typing in this line in terminal. After cloning this repository cd into this directory from your terminal by cd Homestead. After that inside Homestead directory on your terminal, enter bash init.sh ( for Ubuntu/Linux/Mac) or init.bat (For windows) .

Connecting Our Application with Homestead

Now all the installations steps are done. Finally we are ready to serve our application. But first let’s make some necessary changes to connect our application with Homestead. So go to your homestead directory on your PC from file explorer or any GUI application.

Open Homestead.yaml file in any text editor.

Homestead.yaml

In this file on the folders section

-map: ( Type the directory of your project folder)

to:( location of your application in vagrant virtual machine)

Sites section: -map: (any domain you want for your application except .com domain for instance for my crud app I used crud.test)

to: (location of the index.php file which is in public folder of your project) we need to map inside the public folder inside vagrant.

databases: just type the database name you prefer for your application. I used crud for my project. After doing all of that save the file and open your hosts file.

For ubuntu open your terminal cd into etc folder ,

cd /etc .

Open hosts file by sudo nano hosts in your terminal from etc directory. And, add the domain name, you added in Homestead.yaml crud.test . After that press ctrx+x to exit and Y to save and hit enter to save the modified hosts file.

Fire Up Vagrant to Serve Our Application

We are almost done for now. Time to fire up vagrant and serve our application. So go to your terminal, cd into Homestead folder type and enter vagrant up to fire up vagrant/our virtual machine.

Now our application should be running on localhost on this domain crud.test. Just verify that by opening your browser and visiting this address crud.test

Now let’s connect our database with our application and check if everything is working perfectly as should. So to do that first lets use php artisan make:auth command to create Laravel default authentication/login system. To do that ssh into your vagrant machine from terminal. cd Homestead -> vagrant ssh -> cd crud . Now if you are inside crud project folder inside vagrant, run auth command and create default authentication method.

Now open your project folder. Copy .env.example file to .env and open the .env file.

For DB_Database = your database name for this project
DB_USERNAME = homestead

DB_PASSWORD = secret.

And, everything is done. Now run php artisan migrate to migrate your database columns to your database you created from your virtual machine.

And, everything is done. You might be wondering why going through all of these hassle. Well, at first to make our project encapsulated from OS dependencies to easily manage project. Also connecting to individual databases for individual application and many more. We are done for today. In the next tutorial, we will learn about Model, Controllers, route view and all of the fun stuffs.

My Previous Blogs on Laravel:

Getting Started with LARAVEL ( Chapter 01)

Things you need to know about Laravel in 2019

Share this post

Subscribe to our newsletter