Blog

  • How to create multiple language website in Angular 16+?

    How to create multiple language website in Angular 16+?

    Hello friends, welcome back to my blog and today in this blog post, I am going to tell you, how to create multiple language website in Angular 16+?

    Angular Language Translate

    Angular 16 came and if you are new then you must check below two links:

    1. Angular16 for beginners
    ngx-translate working demo
    ngx-translate working demo

    Friends now I proceed onwards and here is the working code snippet for how to create multiple language website in Angular 16+?and please use carefully this to avoid the mistakes:

    1. Firstly friends we need fresh angular 16 setup and for this we need to run below commands but if you already have angular 16 setup then you can avoid below commands. Secondly we should also have latest node version installed on our system:

    npm install -g @angular/cli 
    
    ng new angulartranslate //Create new Angular Project
    
    cd angulartranslate // Go inside the Angular Project Folder
    
    ng serve --open // Run and Open the Angular Project
    
    http://localhost:4200/ // Working Angular Project Url

    2. Now friends, here we need to run below commands into our project terminal to install bootstrap(for good looks) and ngx-translate  modules into our angular application:

    npm i bootstrap --save 
    
    
    npm install @ngx-translate/http-loader@6.0.0 
    
    
    npm install @ngx-translate/core@13.0.0 
    
    
    ng serve --o

    3. Now friends, here we need to add below  into our angular.json file to get modules styles and scripts:

    ...
    "styles": [
                  ...
                  "node_modules/bootstrap/dist/css/bootstrap.min.css",
                  
              ]
    ...

    4. Now friends we just need to add below code into src/app/app.module.ts file:

    ...
    import {HttpClientModule, HttpClient} from '@angular/common/http';
    import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
    import {TranslateHttpLoader} from '@ngx-translate/http-loader';
    // required for AOT compilation
    export function HttpLoaderFactory(http: HttpClient) {
      return new TranslateHttpLoader(http);
    }
    
    @NgModule({
      ...
      imports: [
         ...
        // ngx-translate and the loader module
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        }),
        
      ],
      ...
    })
    
    

    5. Now friends inside src/assets folder create ‘i18n’ folder and now inside ‘i18n’ folder, we need to create two files name ‘en.json’ and ‘fr.json’ and we need to add below code inside these files and for better understanding of files and folder, please check below image:

    /**  en.json file code **/
    
    {
        "HELLO": "Hello World"
    }
    
    /**  fr.json file code **/
    
    {
        "HELLO": "Bonjour le monde"
    }
    angular ngx-translate

    6. Now friends we just need to add below code into src/app/app.component.ts file:

    import {TranslateService} from '@ngx-translate/core';
    
    export class AppComponent {
    ...
    constructor(private translate: TranslateService) {
        
     
        // the lang to use, if the lang isn't available, it will use the current loader to get them
        translate.use('en');
    
        // for default language to be french, you need to use below code
        //translate.use('fr');
      }
    }

    7. Now friends we just need to add below code into src/app/app.component.html file to see the output on browser:

    <div class="jumbotron text-center">
      <h1>tehrichpost.com</h1>
      
    </div>
    
    <div class="container">
      <div class="row">
        <div class="col-sm-12 text-center">
          <h1>{{ 'HELLO' | translate }}</h1>
        </div>
        
    </div>

    Now we are done friends. If you have any kind of query or suggestion or any requirement then feel free to comment below.

    Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.

    1. NGX-Translate
    2. ngx-translate
    3. Angular i18n change language dynamically
    4. Angular multi language
    5. best practice Language translation in angular
    6. Multi language support in angular ngx-translate
    7. pipe no pipe found with name ‘translate’

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad.

    Jassa

    Thanks

  • Angular 16+ Crud using Json Server working Example

    Angular 16+ Crud using Json Server working Example

    Hello friends, welcome back to my blog. Today this blog post I will tell you, Angular 16+ Crud using Json Server working Example.

    Live Demo

    Angular 16 came and if you are new then you must check below two links:

    1. Angular 16+ Basic Tutorials
    2. Angular Free Admin Templates
    3. Angular Free Ecommerce Templates
    Angular 16+ Crud using Json Server working Example
    Angular 16+ Crud using Json Server working Example
    Angular crud json server api
    Angular crud json server api

    Friends now I proceed onwards and here is the working code snippet and please use carefully this to avoid the mistakes:

    1. Firstly friends we need fresh angular 16 setup and for this we need to run below commands but if you already have angular 16 setup then you can avoid below commands. Secondly we should also have latest node version installed on our system:

    npm install -g @angular/cli 
    
    ng new angulardemo //Create new Angular Project 
    
    cd angulardemo // Go inside the Angular Project Folder 
    
    ng g c api //will create api crud component
    
    ng g s services/recipe //will create services files
    
    ng g i models/recipe //will create interface file
    
    npm i bootstrap
    
    npm i @popperjs/core

    2. Now guys we need to add below code inside angulardemo/angular.json files to call bootstrap 5 script and styles:

    "styles": [
              ...
                "node_modules/bootstrap/dist/css/bootstrap.min.css"
              ],
              "scripts": [
                "node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"
              ]

    3. Now guys we need to add below code inside src/app/api/api.component.html file:

    <div class="container w-50 p-5">
        <h1 class="text-center pb-4 ">Add, Update and Delete a Recipe </h1>
        <form  #isFormValid="ngForm" [formGroup]="recipeFormGroup" class="form-group">
    
              <div class="mb-3">
                <!-- name -->
                <label for="name" class="form-label">Name</label>
                <input type="text" class="form-control" name="name" formControlName="name" id="name" placeholder="Enter Recipe Name">
    
                <!-- name errors -->
                <div *ngIf="name?.touched && name?.invalid">
                  <small class="text-danger" *ngIf="name?.errors?.['required']">Name is required</small>
                  <small class="text-danger" *ngIf="name?.errors?.['minlength']">Name is too short</small>
                </div>
              </div>
    
              <!-- price -->
              <div class="mb-3">
                <label for="price" class="form-label">Price</label>
                <input type="price" class="form-control" name="price" formControlName="price" id="price" placeholder="price">
    
                <!-- price errors -->
                <div *ngIf="price?.touched && price?.invalid">
                  <small class="text-danger" *ngIf="price?.errors?.['required']">Price is required</small>
                  <small class="text-danger" *ngIf="price?.errors?.['pattern']">Price is invalid</small>
                </div>
              </div>
    
              <!-- create(Add) or Update(put) -->
              <div class="mb-3">
                <!-- create -->
                <button *ngIf="!addOrPut" (click)="postRecipe()" class="form-control btn btn-dark hvr" [disabled]="!isFormValid.valid">Add</button>
                <!-- Update -->
                <button *ngIf="addOrPut" (click)="putRecipe()" class="form-control btn btn-warning hvr" [disabled]="!isFormValid.valid">Update</button>
              </div>
        </form>
    
    <div *ngIf="array.length == 0" class="alert alert-warning text-center">Empty array</div>
    </div>
    
    <div *ngIf="array.length != 0" class="container w-50">
      <table class="table table-striped table-bordered">
          <thead>
              <tr>
                  <th>#Id</th>
                  <th>Name</th>
                  <th>Price (MAD)</th>
                  <th>Edit</th>
                  <th>Delete</th>
              </tr>
          </thead>
          <tbody>
              <tr *ngFor="let eachCmd of array">
                  <td scope="row">{{eachCmd.id}}</td>
                  <td>{{eachCmd.name}}</td>
                  <td>{{eachCmd.price}}</td>
                  <td><button (click)="editRecipe(eachCmd)" class="btn btn-warning">Update</button></td>
                  <td><button (click)="deleteRecipe(eachCmd.id)" class="btn btn-danger">Delete</button></td>
              </tr>
    
          </tbody>
      </table>
    </div>

    4. Now guys we need to add below code inside src/app/api/api.component.ts file:

    import { Component, OnInit } from '@angular/core';
    import { RecipeDto } from '../models/recipe.interface';
    import { RecipeService } from '../services/recipe.service';
    import { FormGroup, FormControl, Validators } from '@angular/forms';
    
    
    @Component({
      selector: 'app-api',
      templateUrl: './api.component.html',
      styleUrls: ['./api.component.css']
    })
    
    export class ApiComponent implements OnInit {
      array: RecipeDto[] = new Array<RecipeDto>();
    
      recipeFormGroup: FormGroup = new FormGroup({
        id: new FormControl<number>(+''),
    
        name: new FormControl<string>('', [
          Validators.required,
          Validators.minLength(3)
        ]),
    
        price: new FormControl<number>(+'', [
          Validators.required,
          Validators.pattern('[0-9]*'),
        ])
      });
    
      get name() {
        return this.recipeFormGroup.get('name');
      }
    
      get price() {
        return this.recipeFormGroup.get('price');
      }
    
      addOrPut = false;
    
      constructor(private recipeService:RecipeService) { }
    
      ngOnInit(): void {
        this.getRecipe();
      }
    
      getRecipe() {
        this.recipeService.getAll()
        .subscribe((data: RecipeDto[]) =>{
          this.array = data;
        })
      }
    
      deleteRecipe(id: number){
        this.recipeService.delete(id).subscribe(
          () => {this.array = this.array.filter( (aRecipe) => aRecipe.id != id)
          })
      }
    
      postRecipe(){
        if(!confirm(`api.component.ts:58 -> Did you run the JSON-SERVER ? if yes please comment this line`)) alert(`You should run the json-server  (read README file) ^^`);
        this.recipeService.post(this.recipeFormGroup.value)
        /*
          this.recipeFormGroup.value is equivalent to:
          {
            name,
            price
          }
        */
        .subscribe(
          (eachRecipe: any)=>{
              this.array = [eachRecipe, ...this.array];
              this.clearInputs();
        })
    
      }
    
      // make inputs empty
      clearInputs(){
        this.recipeFormGroup.reset({
          name: '',
          price: +''
        });
      }
    
      // edit recipeService
      editRecipe(eachRecipe: RecipeDto){
        this.recipeFormGroup.get('id')?.setValue(eachRecipe.id);
        this.recipeFormGroup.get('name')?.setValue(eachRecipe.name);
        this.recipeFormGroup.get('price')?.setValue(eachRecipe.price);
        this.addOrPut=true;
      }
    
      // update recipeService
      putRecipe(){
        this.recipeService.updateRecipe(this.recipeFormGroup.value)
       
        .subscribe( () => {
          this.clearInputs();
          this.getRecipe();
          this.addOrPut = false;
        })
      }
    }

    5. Now guys we need to add below code inside src/app/api/api.component.css file:

    .hvr:hover{
        background-color: rgb(173, 201, 192);
        color:black;
    }

    6. Now guys we need to add below code inside src/app/models/recipe.interface.ts file:

    export class RecipeDto {
        id!: number;
        name!: string;
        price!: number;
    }
    

    7. Now guys we need to add below code inside src/app/services/recipe.service.ts file:

    import { HttpClient } from '@angular/common/http';
    import { Injectable } from '@angular/core';
    import { environment } from 'src/environments/environment.prod';
    import { RecipeDto } from '../models/recipe.interface';
    
    @Injectable({
      providedIn: 'root'
    })
    export class RecipeService {
      urlApi= environment.api;
    
      constructor(private http:HttpClient) {   }
    
      // GET all
      getAll(){
        return this.http.get<RecipeDto[]>(this.urlApi);
      }
    
      // DELETE one
      delete(id: number){
        return this.http.delete(`${this.urlApi}/${id}`);
      }
    
      // CREATE one
      post(recipe: RecipeDto){
          return this.http.post<RecipeDto>(this.urlApi, recipe);
      }
    
      // UPDATE one
      updateRecipe(recipe: RecipeDto){
        return this.http.put(`${this.urlApi}/${recipe.id}`, recipe);
      }
    
      // search by id
      search(id: number){
          return this.http.get<RecipeDto>(`${this.urlApi}/${id}`); //${id}
      }
    
    }

    8. Now guys we need to add below code inside src/environments/environment.prod.ts file:

    export const environment = {
      production: true,
      api: `http://localhost:42400/recipes`
    };
    

    9. Now guys please create `fakeDatabase.json` file on the project root and add below demo data inside it:

    {
      "recipes": [
        {
          "id": 1,
          "name": "Butter Chicken",
          "price": "800"
        },
        {
          "id": 2,
          "name": "Mutton",
          "price": "980"
        }
      ]
    }

    10. Now guys inside package.json file add below line of code under scripts tag to run json server:

    also run command npm json-server inside your terminal

    "scripts": {
       ...
        "json-server": "json-server --watch fakeDatabase.json --port 42400"
      },

    11. Guys in the end we need to add below code inside src/app/app.component.html file

    <app-api></app-api>

    Friends in the end must run ng serve command into your terminal to run the angular 17 project(localhost:4200).

    Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.

    Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.

    Jassa

    Thanks 🙂

  • React Crud Using Json Server & Material UI Working Example

    React Crud Using Json Server & Material UI Working Example

    Hello friends, welcome back to my blog. Today this blog post will tell you React Crud Using Json Server & Material UI Working Example.

    Live Demo

    Key Features:

    1. Reactjs + Material Ui
    2. Json Server
    3. React Routing
    4. Axios APi Service
    5. React Crud

    For React new comers, please check the below link:

    1. Reactjs Basic Tutorials
    2. React Free Admin Dashboards
    3. React Free Ecommerce Templates
    React Crud Using Json Server & Material UI Working Example
    React Crud Using Json Server & Material UI Working Example
    React Axios CRUD with JSON server Edit User
    React Axios CRUD with JSON server Edit User
    React JS CRUD example step by step Add User
    React JS CRUD example step by step Add User

    Friends here is the code snippet for How to upload, preview and save image inside folder in react js? and please use this code snippet carefully to avoid the mistakes:

    1. Firstly friends we need fresh reactjs setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system:

    npx create-react-app reactdemo 
    
    cd reactdemo 
    
    npm i react-router-dom
    
    npm i react-axios
    
    npm i @material-ui/core
    
    npm i json-server
    
    npm start // run the project

    2. Now guys create `Components` folder inside src folder and create below files:

    AddUser.jsx
    
    AllUsers.jsx
    
    EditUser.jsx
    
    Home.jsx
    
    Navbar.jsx
    
    NotFound.jsx

    3. Now guys add below code inside src/Components/AddUser.jsx file:

    import React, { useState } from 'react';
    import { Container, Typography, FormControl, InputLabel, Input, Box, FormGroup, Button } from '@material-ui/core';
    import { addUser } from '../service/api';
    import { useHistory } from 'react-router-dom';
    
    const initialValue = {
        name: "",
        username : "",
        email: "",
        phone: "",
    }
    
    const AddUser = () => {
    
        const [user, setUser] = useState(initialValue);
        const {name, username, email, phone} = user;
    
        const history = useHistory();
    
        const onValueChange = (e) =>
        {
          //  console.log(e);
          // console.log(e.target.value);
            setUser({...user, [e.target.name]: e.target.value});
           console.log(user);
        }
    
        const addUserDetails = async () =>{
           await addUser(user);
           history.push('/all');
        }
    
        return (
            <Container maxWidth="sm">
                <Box my={5}>
                <Typography variant="h5" align="center">Add User Details</Typography>
                <FormGroup>
                    <FormControl>
                        <InputLabel>Name</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="name" value={name} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>User Name</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="username" value={username} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>Email address</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="email" value={email} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>Phone Number</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="phone" value={phone} />
                    </FormControl>
                    <Box my={3}>
                        <Button variant="contained" onClick={() => addUserDetails() } color="primary" align="center">Add User</Button>
                        <Button onClick={()=> history.push("/all")} variant="contained" color="secondary" align="center" style={{margin: '0px 20px'}}>Cancel</Button>
                    </Box>
                </FormGroup>
                </Box>
            </Container>
        )
    }
    
    
    export default AddUser;

    4. Now guys add below code inside src/Components/AllUsers.jsx file:

    import React, { useEffect, useState } from 'react';
    import { Table, TableCell, TableRow, TableHead, TableBody, makeStyles, Button } from '@material-ui/core';
    import { deleteUser ,getallUsers } from '../service/api';
    import { Link } from 'react-router-dom';
    
    const useStyle = makeStyles({
        table: {
            width: '80%',
            margin: '50px 100px 100px 140px',
        },
        thead:{
            '& > *':{
                background: '#000000',
                color:'#FFFFFF',
                fontSize: '16px'
            }
        },
        trow:{
            '& > *':{
                fontSize: '16px'
            }
        }
    })
    
    const AllUsers = () => {
    
        const classes = useStyle();
    
        const [user, setUser] = useState([]);
        useEffect(() => {
            getUsers();
        }, [])
    
        const getUsers = async () =>{
            const response = await getallUsers();
            console.log(response);
            setUser(response.data);
        }
    
        const deleteData = async (id) => {
            await deleteUser(id);
            getUsers();
        }
    
        return (
            <Table className={classes.table}>
                <TableHead>
                    <TableRow className={classes.thead}>
                        <TableCell>ID</TableCell>
                        <TableCell>Name</TableCell>
                        <TableCell>UserName</TableCell>
                        <TableCell>Email</TableCell>
                        <TableCell>Phone</TableCell>
                        <TableCell></TableCell>
                    </TableRow>
                </TableHead>
                <TableBody>
                {
                    user.map((data) => (
                        <TableRow className={classes.trow}>
                            <TableCell>{data.id}</TableCell>
                            <TableCell>{data.name}</TableCell>
                            <TableCell>{data.username}</TableCell>
                            <TableCell>{data.email}</TableCell>
                            <TableCell>{data.phone}</TableCell>
                            <TableCell>
                                <Button variant="contained" color="primary" style={{margin: '0px 20px'}} component={Link} to={`/edit/${data.id}`}>Edit</Button>
                                <Button variant="contained" color="secondary" style={{margin: '0px 20px'}} onClick={() => deleteData(data.id)}>Delete</Button>
                            </TableCell>
                        </TableRow>
                    ))
                }
                </TableBody>
            </Table>
        )
    }
    
    export default AllUsers;

    5. Now guys add below code inside src/Components/EditUser.jsx file:

    import React, { useEffect, useState } from 'react';
    import { Container, Typography, FormControl, InputLabel, Input, Box, FormGroup, Button } from '@material-ui/core';
    import { editUser, getallUsers } from '../service/api';
    import { useHistory, useParams } from 'react-router-dom';
    
    const initialValue = {
        name: "",
        username : "",
        email: "",
        phone: "",
    }
    
    const EditUser = () => {
    
        const [user, setUser] = useState(initialValue);
        const {name, username, email, phone} = user;
    
        const { id } = useParams();
    
        useEffect(() => {
            loadUserData();
        },[]);
    
        const loadUserData = async () =>{
            const response = await getallUsers(id);
            setUser(response.data);
        }
    
        const history = useHistory();
    
        const onValueChange = (e) =>
        {
          //  console.log(e);
          // console.log(e.target.value);
            setUser({...user, [e.target.name]: e.target.value});
            console.log(user);
        }
    
        const editUserDetails = async () =>{
           await editUser(id,user);
           history.push('/all');
        }
    
        return (
            <Container maxWidth="sm">
                <Box my={5}>
                <Typography variant="h5" align="center">Update User Details</Typography>
                <FormGroup>
                    <FormControl>
                        <InputLabel>Name</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="name" value={name} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>User Name</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="username" value={username} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>Email address</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="email" value={email} />
                    </FormControl>
                    <FormControl>
                        <InputLabel>Phone Number</InputLabel>
                        <Input onChange={(e) => onValueChange(e)} name="phone" value={phone} />
                    </FormControl>
                    <Box my={3}>
                        <Button variant="contained" onClick={() => editUserDetails() } color="primary" align="center">Update User</Button>
                        <Button onClick={()=> history.push("/all")} variant="contained" color="secondary" align="center" style={{margin: '0px 20px'}}>Cancel</Button>
                    </Box>
                </FormGroup>
                </Box>
            </Container>
        )
    }
    
    
    export default EditUser;

    6. Now guys add below code inside src/Components/Home.jsx file:

    import React from 'react';
    import { Container, Typography, Box } from '@material-ui/core';
    
    
    const Home = () => {
        return (
            <Container maxWidth="lg">
                <Box my={5}>
                <Typography variant="h3" component="h2" align="center">React JS Crud</Typography>
                <Typography component="h2" align="center">Using Json Server</Typography>
                </Box>
            </Container>
        )
    }
    
    export default Home;

    7. Now guys add below code inside src/Components/Navbar.jsx file:

    import React from 'react';
    import { AppBar, makeStyles, Toolbar } from '@material-ui/core';
    import { NavLink } from 'react-router-dom';
    
    const useStyles = makeStyles({
        header: {
            backgroundColor: '#212121',
        },
        spacing :{
            paddingLeft: 20,
            color: '#fff',
            fontSize: '18px',
            textDecoration: 'none',
        }
      });
    
    const Navbar = () => {
        const classes = useStyles();
        return (
            <AppBar className={classes.header} position="static">
                <Toolbar >
                    <NavLink to="/" className={classes.spacing}> React JS Crud</NavLink>
                    <NavLink to="all" className={classes.spacing}> All Users</NavLink>
                    <NavLink to="add" className={classes.spacing}> Add Users</NavLink>
                </Toolbar>
            </AppBar>
        )
    }
    
    export default Navbar;

    8. Now guys add below code inside src/Components/NotFound.jsx file:

    import React from 'react';
    import { makeStyles } from '@material-ui/core';
    import notfound from './../Assets/Images/pngegg.png';
    const useStyles = makeStyles({
        error: {
            textAlign: 'center',
            marginTop: '20px',
            marginBottom: '20px',
        },
      });
    
    const NotFound = () => {
        const classes = useStyles();
        return (
            <div className={classes.error}>
                <img src={notfound} style={{width:'800px',height:'550px'}} alt="not found"/>
            </div>
        )
    }
    
    export default NotFound;

    9. Now guys create `Database` folder inside src folder and create db.json file and add below code inside it:

    {
      "user": [
        {
          "name": "Jassa",
          "username": "TheRichpost",
          "email": "demo@gmail.com",
          "phone": "98989898",
          "id": 7
        },
        {
          "name": "Ajay Kumar",
          "username": "Jassa",
          "email": "therichposts@gmail.com",
          "phone": "98989898",
          "id": 8
        },
        {
          "name": "Ajooni",
          "username": "Ariti",
          "email": "ajooni@gmail.com",
          "phone": "98498",
          "id": 9
        },
        {
          "name": "Alisha",
          "username": "Alisha",
          "email": "alsha@gmail.com",
          "phone": "989898",
          "id": 10
        }
      ]
    }

    10. Now guys create `service` folder inside src folder and create api.js file and add below code inside it:

    import axios from 'axios';
    
    
    const url = "http://127.0.0.1:3003/user";
    
    export const getallUsers = async (id) => {
        id = id || '';
        return await axios.get(`${url}/${id}`);
    }
    
    export const addUser = async (user) => {
        return await axios.post(url,user);
    }
    
    export const editUser = async (id, user) => {
        return await axios.put(`${url}/${id}`,user);
    }
    
    
    export const deleteUser = async (id) => {
        return await axios.delete(`${url}/${id}`);
    }

    11. Now guys add below code inside src/App.css file:

    .App {
      text-align: center;
    }
    
    .App-logo {
      height: 40vmin;
      pointer-events: none;
    }
    
    @media (prefers-reduced-motion: no-preference) {
      .App-logo {
        animation: App-logo-spin infinite 20s linear;
      }
    }
    
    .App-header {
      background-color: #282c34;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      font-size: calc(10px + 2vmin);
      color: white;
    }
    
    .App-link {
      color: #61dafb;
    }
    
    @keyframes App-logo-spin {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }

    12. Now guys add below code inside src/App.js file:

    import './App.css';
    import Navbar from  './Components/Navbar';
    import Home from './Components/Home';
    import AllUsers from './Components/AllUsers';
    import AddUser from './Components/AddUser';
    import EditUser from './Components/EditUser';
    import NotFound from './Components/NotFound';
    import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
    
    function App() {
      return (
        <Router>
          <Navbar />
          <Switch>
            <Route path="/" component={Home} exact />
            <Route path="/all" component={AllUsers} exact />
            <Route path="/add" component={AddUser} exact />
            <Route path="/edit/:id" component={EditUser} exact />
            <Route component={NotFound} />
          </Switch>
        </Router>
      );
    }
    
    export default App;

    13. Now guys add below code inside project/package.json file:

    ...
    scripts": {
       ...
        "json-server": "json-server --watch src/Database/db.json --host 127.0.0.1 --port 3003",
        
      },
    ...

    14. Now guys create Assets folder inside src folder and then create Images folder src/Assetts folder and add images from below git repo link:

    Git Repo

    15. Guys to run json server please run below command inside your terminal as well:

    yarn json-server

    Now we are done friends. If you have any kind of query or suggestion or any requirement then feel free to comment below.

    Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.
    I will appreciate that if you will tell your views for this post. Nothing matters if your views will good or bad.

    Jassa

    Thanks

  • How to Build Responsive Admin Dashboard with Angular 16+?

    How to Build Responsive Admin Dashboard with Angular 16+?

    Hello friends, welcome back to my blog. Today this blog post I will tell you, How to Build Responsive Admin Dashboard with Angular 16+?

    Key Features:

    1. Angular Latest Version
    2. Angular routing
    3. Angular active routes functionality
    4. Full responsive
    5. All angular admin dashboard website pages
    6. Toggle sidebar

    Live Demo

    Angular admin dashboard login page
    Angular admin dashboard login page
    Angular admin dashboard register page
    Angular admin dashboard register page
    How to Build Responsive Admin Dashboard with Angular 16+?
    How to Build Responsive Admin Dashboard with Angular 16+?

    Angular 16 came and if you are new then you must check below two links:

    1. Angular16Basic Tutorials
    2. Angular Admin Free Templates

    Friends now I proceed onwards and here is the working code snippet and please use carefully this to avoid the mistakes:

    1. Firstly friends we need fresh angular 16 setup and for this we need to run below commands but if you already have angular 16 setup then you can avoid below commands. Secondly we should also have latest node version installed on our system:

    guys with these commands we will get components as well

    npm install -g @angular/cli 
    
    ng new angulardemo //Create new Angular Project 
    
    cd angulardemo // Go inside the Angular Project Folder 
    
    ng g c home //will create home component
    
    ng g c login //will create login component
    
    ng g c register //will create register component

    2. Now friends, please download js and styles from this git repo link and please put all the js, css files folders in “src/assets/” folder:

    Angular Admin project git repo

    3. Now friends we just need to add below code into angulardemo/src/app/app.component.html file to get final out on the web browser:

    <app-header></app-header>
    <div id="layoutSidenav">
        <router-outlet></router-outlet>
    </div>

    4. Now guys please add the below code inside angulardemo/angular.json file to styles and scripts:

    ...
     "styles": [
                  "src/styles.css",
                  "src/assets/css/styles.css"
                ],
                "scripts": [
                  "src/assets/js/scripts.js",
                  "src/assets/assets/demo/chart-area-demo.js",
                  "src/assets/assets/demo/chart-bar-demo.js",
                  "src/assets/js/datatables-simple-demo.js"
                ]
    ...

    5. Now friends we just need to add below code into angulardemo/src/app/header/header.component.html file:

    <nav class="sb-topnav navbar navbar-expand navbar-dark bg-dark">
      <!-- Navbar Brand-->
      <a class="navbar-brand ps-3" routerLink="">Admin</a>
      <!-- Sidebar Toggle-->
      <button class="btn btn-link btn-sm order-1 order-lg-0 me-4 me-lg-0" id="sidebarToggle" href="#!"><i class="fas fa-bars"></i></button>
      <!-- Navbar Search-->
      <form class="d-none d-md-inline-block form-inline ms-auto me-0 me-md-3 my-2 my-md-0">
          <div class="input-group">
              <input class="form-control" type="text" placeholder="Search for..." aria-label="Search for..." aria-describedby="btnNavbarSearch" />
              <button class="btn btn-primary" id="btnNavbarSearch" type="button"><i class="fas fa-search"></i></button>
          </div>
      </form>
      <!-- Navbar-->
      <ul class="navbar-nav ms-auto ms-md-0 me-3 me-lg-4">
          <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" id="navbarDropdown" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"><i class="fas fa-user fa-fw"></i></a>
              <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
                  <li><a class="dropdown-item" href="#!">Settings</a></li>
                  <li><a class="dropdown-item" href="#!">Activity Log</a></li>
                  <li><hr class="dropdown-divider" /></li>
                  <li><a class="dropdown-item" href="#!">Logout</a></li>
              </ul>
          </li>
      </ul>
    </nav>

    6. Now friends we just need to add below code into angulardemo/src/app/footer/footer.component.html file:

    <footer class="py-4 bg-light mt-auto">
      <div class="container-fluid px-4">
          <div class="d-flex align-items-center justify-content-between small">
              <div class="text-muted">Copyright &copy; Your Website 2023</div>
              <div>
                  <a href="#">Privacy Policy</a>
                  &middot;
                  <a href="#">Terms &amp; Conditions</a>
              </div>
          </div>
      </div>
    </footer>

    7. Now friends we just need to add below code into angulardemo/src/app/home/home.component.html file:

    <div id="layoutSidenav_nav">
          <nav class="sb-sidenav accordion sb-sidenav-dark" id="sidenavAccordion">
              <div class="sb-sidenav-menu">
                  <div class="nav">
                      <div class="sb-sidenav-menu-heading">Core</div>
                      <a class="nav-link" href="#">
                          <div class="sb-nav-link-icon"><i class="fas fa-tachometer-alt"></i></div>
                          Dashboard
                      </a>
                      <div class="sb-sidenav-menu-heading">Interface</div>
                      <a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#collapsePages" aria-expanded="false" aria-controls="collapsePages">
                          <div class="sb-nav-link-icon"><i class="fas fa-book-open"></i></div>
                          Pages
                          <div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
                      </a>
                      <div class="collapse" id="collapsePages" aria-labelledby="headingTwo" data-bs-parent="#sidenavAccordion">
                          <nav class="sb-sidenav-menu-nested nav accordion" id="sidenavAccordionPages">
                              <a class="nav-link collapsed" href="#" data-bs-toggle="collapse" data-bs-target="#pagesCollapseAuth" aria-expanded="false" aria-controls="pagesCollapseAuth">
                                  Authentication
                                  <div class="sb-sidenav-collapse-arrow"><i class="fas fa-angle-down"></i></div>
                              </a>
                              <div class="collapse" id="pagesCollapseAuth" aria-labelledby="headingOne" data-bs-parent="#sidenavAccordionPages">
                                  <nav class="sb-sidenav-menu-nested nav">
                                      <a class="nav-link" routerLink="/login">Login</a>
                                      <a class="nav-link" routerLink="/register">Register</a>
                                  </nav>
                              </div>
                          </nav>
                      </div>
                      <div class="sb-sidenav-menu-heading">Addons</div>
                      <a class="nav-link" href="#">
                          <div class="sb-nav-link-icon"><i class="fas fa-chart-area"></i></div>
                          Charts
                      </a>
                      <a class="nav-link" href="#">
                          <div class="sb-nav-link-icon"><i class="fas fa-table"></i></div>
                          Tables
                      </a>
                  </div>
              </div>
              <div class="sb-sidenav-footer">
                  <div class="small">Logged in as:</div>
                  Admin
              </div>
          </nav>
      </div>
      <div id="layoutSidenav_content">
          <main>
              <div class="container-fluid px-4">
                  <h1 class="mt-4">Dashboard</h1>
                  <ol class="breadcrumb mb-4">
                      <li class="breadcrumb-item active">Dashboard</li>
                  </ol>
                  <div class="row">
                      <div class="col-xl-3 col-md-6">
                          <div class="card bg-primary text-white mb-4">
                              <div class="card-body">Primary Card</div>
                              <div class="card-footer d-flex align-items-center justify-content-between">
                                  <a class="small text-white stretched-link" href="#">View Details</a>
                                  <div class="small text-white"><i class="fas fa-angle-right"></i></div>
                              </div>
                          </div>
                      </div>
                      <div class="col-xl-3 col-md-6">
                          <div class="card bg-warning text-white mb-4">
                              <div class="card-body">Warning Card</div>
                              <div class="card-footer d-flex align-items-center justify-content-between">
                                  <a class="small text-white stretched-link" href="#">View Details</a>
                                  <div class="small text-white"><i class="fas fa-angle-right"></i></div>
                              </div>
                          </div>
                      </div>
                      <div class="col-xl-3 col-md-6">
                          <div class="card bg-success text-white mb-4">
                              <div class="card-body">Success Card</div>
                              <div class="card-footer d-flex align-items-center justify-content-between">
                                  <a class="small text-white stretched-link" href="#">View Details</a>
                                  <div class="small text-white"><i class="fas fa-angle-right"></i></div>
                              </div>
                          </div>
                      </div>
                      <div class="col-xl-3 col-md-6">
                          <div class="card bg-danger text-white mb-4">
                              <div class="card-body">Danger Card</div>
                              <div class="card-footer d-flex align-items-center justify-content-between">
                                  <a class="small text-white stretched-link" href="#">View Details</a>
                                  <div class="small text-white"><i class="fas fa-angle-right"></i></div>
                              </div>
                          </div>
                      </div>
                  </div>
                  <div class="row">
                      <div class="col-xl-6">
                          <div class="card mb-4">
                              <div class="card-header">
                                  <i class="fas fa-chart-area me-1"></i>
                                  Area Chart Example
                              </div>
                              <div class="card-body"><canvas id="myAreaChart" width="100%" height="40"></canvas></div>
                          </div>
                      </div>
                      <div class="col-xl-6">
                          <div class="card mb-4">
                              <div class="card-header">
                                  <i class="fas fa-chart-bar me-1"></i>
                                  Bar Chart Example
                              </div>
                              <div class="card-body"><canvas id="myBarChart" width="100%" height="40"></canvas></div>
                          </div>
                      </div>
                  </div>
                  <div class="card mb-4">
                      <div class="card-header">
                          <i class="fas fa-table me-1"></i>
                          DataTable Example
                      </div>
                      <div class="card-body">
                          <table id="datatablesSimple">
                              <thead>
                                  <tr>
                                      <th>Name</th>
                                      <th>Position</th>
                                      <th>Office</th>
                                      <th>Age</th>
                                      <th>Start date</th>
                                      <th>Salary</th>
                                  </tr>
                              </thead>
                              <tfoot>
                                  <tr>
                                      <th>Name</th>
                                      <th>Position</th>
                                      <th>Office</th>
                                      <th>Age</th>
                                      <th>Start date</th>
                                      <th>Salary</th>
                                  </tr>
                              </tfoot>
                              <tbody>
                                  <tr>
                                      <td>Tiger Nixon</td>
                                      <td>System Architect</td>
                                      <td>Edinburgh</td>
                                      <td>61</td>
                                      <td>2011/04/25</td>
                                      <td>$320,800</td>
                                  </tr>
                                  <tr>
                                      <td>Garrett Winters</td>
                                      <td>Accountant</td>
                                      <td>Tokyo</td>
                                      <td>63</td>
                                      <td>2011/07/25</td>
                                      <td>$170,750</td>
                                  </tr>
                                  <tr>
                                      <td>Ashton Cox</td>
                                      <td>Junior Technical Author</td>
                                      <td>San Francisco</td>
                                      <td>66</td>
                                      <td>2009/01/12</td>
                                      <td>$86,000</td>
                                  </tr>
                                  <tr>
                                      <td>Cedric Kelly</td>
                                      <td>Senior Javascript Developer</td>
                                      <td>Edinburgh</td>
                                      <td>22</td>
                                      <td>2012/03/29</td>
                                      <td>$433,060</td>
                                  </tr>
                                  <tr>
                                      <td>Airi Satou</td>
                                      <td>Accountant</td>
                                      <td>Tokyo</td>
                                      <td>33</td>
                                      <td>2008/11/28</td>
                                      <td>$162,700</td>
                                  </tr>
                                  <tr>
                                      <td>Brielle Williamson</td>
                                      <td>Integration Specialist</td>
                                      <td>New York</td>
                                      <td>61</td>
                                      <td>2012/12/02</td>
                                      <td>$372,000</td>
                                  </tr>
                                  <tr>
                                      <td>Herrod Chandler</td>
                                      <td>Sales Assistant</td>
                                      <td>San Francisco</td>
                                      <td>59</td>
                                      <td>2012/08/06</td>
                                      <td>$137,500</td>
                                  </tr>
                                  <tr>
                                      <td>Rhona Davidson</td>
                                      <td>Integration Specialist</td>
                                      <td>Tokyo</td>
                                      <td>55</td>
                                      <td>2010/10/14</td>
                                      <td>$327,900</td>
                                  </tr>
                                  <tr>
                                      <td>Colleen Hurst</td>
                                      <td>Javascript Developer</td>
                                      <td>San Francisco</td>
                                      <td>39</td>
                                      <td>2009/09/15</td>
                                      <td>$205,500</td>
                                  </tr>
                                  <tr>
                                      <td>Sonya Frost</td>
                                      <td>Software Engineer</td>
                                      <td>Edinburgh</td>
                                      <td>23</td>
                                      <td>2008/12/13</td>
                                      <td>$103,600</td>
                                  </tr>
                                  <tr>
                                      <td>Jena Gaines</td>
                                      <td>Office Manager</td>
                                      <td>London</td>
                                      <td>30</td>
                                      <td>2008/12/19</td>
                                      <td>$90,560</td>
                                  </tr>
                                  <tr>
                                      <td>Quinn Flynn</td>
                                      <td>Support Lead</td>
                                      <td>Edinburgh</td>
                                      <td>22</td>
                                      <td>2013/03/03</td>
                                      <td>$342,000</td>
                                  </tr>
                                  <tr>
                                      <td>Charde Marshall</td>
                                      <td>Regional Director</td>
                                      <td>San Francisco</td>
                                      <td>36</td>
                                      <td>2008/10/16</td>
                                      <td>$470,600</td>
                                  </tr>
                                  <tr>
                                      <td>Haley Kennedy</td>
                                      <td>Senior Marketing Designer</td>
                                      <td>London</td>
                                      <td>43</td>
                                      <td>2012/12/18</td>
                                      <td>$313,500</td>
                                  </tr>
                                  <tr>
                                      <td>Tatyana Fitzpatrick</td>
                                      <td>Regional Director</td>
                                      <td>London</td>
                                      <td>19</td>
                                      <td>2010/03/17</td>
                                      <td>$385,750</td>
                                  </tr>
                                  <tr>
                                      <td>Michael Silva</td>
                                      <td>Marketing Designer</td>
                                      <td>London</td>
                                      <td>66</td>
                                      <td>2012/11/27</td>
                                      <td>$198,500</td>
                                  </tr>
                                  <tr>
                                      <td>Paul Byrd</td>
                                      <td>Chief Financial Officer (CFO)</td>
                                      <td>New York</td>
                                      <td>64</td>
                                      <td>2010/06/09</td>
                                      <td>$725,000</td>
                                  </tr>
                                  <tr>
                                      <td>Gloria Little</td>
                                      <td>Systems Administrator</td>
                                      <td>New York</td>
                                      <td>59</td>
                                      <td>2009/04/10</td>
                                      <td>$237,500</td>
                                  </tr>
                                  <tr>
                                      <td>Bradley Greer</td>
                                      <td>Software Engineer</td>
                                      <td>London</td>
                                      <td>41</td>
                                      <td>2012/10/13</td>
                                      <td>$132,000</td>
                                  </tr>
                                  <tr>
                                      <td>Dai Rios</td>
                                      <td>Personnel Lead</td>
                                      <td>Edinburgh</td>
                                      <td>35</td>
                                      <td>2012/09/26</td>
                                      <td>$217,500</td>
                                  </tr>
                                  <tr>
                                      <td>Jenette Caldwell</td>
                                      <td>Development Lead</td>
                                      <td>New York</td>
                                      <td>30</td>
                                      <td>2011/09/03</td>
                                      <td>$345,000</td>
                                  </tr>
                                  <tr>
                                      <td>Yuri Berry</td>
                                      <td>Chief Marketing Officer (CMO)</td>
                                      <td>New York</td>
                                      <td>40</td>
                                      <td>2009/06/25</td>
                                      <td>$675,000</td>
                                  </tr>
                                  <tr>
                                      <td>Caesar Vance</td>
                                      <td>Pre-Sales Support</td>
                                      <td>New York</td>
                                      <td>21</td>
                                      <td>2011/12/12</td>
                                      <td>$106,450</td>
                                  </tr>
                                  <tr>
                                      <td>Doris Wilder</td>
                                      <td>Sales Assistant</td>
                                      <td>Sidney</td>
                                      <td>23</td>
                                      <td>2010/09/20</td>
                                      <td>$85,600</td>
                                  </tr>
                                  <tr>
                                      <td>Angelica Ramos</td>
                                      <td>Chief Executive Officer (CEO)</td>
                                      <td>London</td>
                                      <td>47</td>
                                      <td>2009/10/09</td>
                                      <td>$1,200,000</td>
                                  </tr>
                                  <tr>
                                      <td>Gavin Joyce</td>
                                      <td>Developer</td>
                                      <td>Edinburgh</td>
                                      <td>42</td>
                                      <td>2010/12/22</td>
                                      <td>$92,575</td>
                                  </tr>
                                  <tr>
                                      <td>Jennifer Chang</td>
                                      <td>Regional Director</td>
                                      <td>Singapore</td>
                                      <td>28</td>
                                      <td>2010/11/14</td>
                                      <td>$357,650</td>
                                  </tr>
                                  <tr>
                                      <td>Brenden Wagner</td>
                                      <td>Software Engineer</td>
                                      <td>San Francisco</td>
                                      <td>28</td>
                                      <td>2011/06/07</td>
                                      <td>$206,850</td>
                                  </tr>
                                  <tr>
                                      <td>Fiona Green</td>
                                      <td>Chief Operating Officer (COO)</td>
                                      <td>San Francisco</td>
                                      <td>48</td>
                                      <td>2010/03/11</td>
                                      <td>$850,000</td>
                                  </tr>
                                  <tr>
                                      <td>Shou Itou</td>
                                      <td>Regional Marketing</td>
                                      <td>Tokyo</td>
                                      <td>20</td>
                                      <td>2011/08/14</td>
                                      <td>$163,000</td>
                                  </tr>
                                  <tr>
                                      <td>Michelle House</td>
                                      <td>Integration Specialist</td>
                                      <td>Sidney</td>
                                      <td>37</td>
                                      <td>2011/06/02</td>
                                      <td>$95,400</td>
                                  </tr>
                                  <tr>
                                      <td>Suki Burks</td>
                                      <td>Developer</td>
                                      <td>London</td>
                                      <td>53</td>
                                      <td>2009/10/22</td>
                                      <td>$114,500</td>
                                  </tr>
                                  <tr>
                                      <td>Prescott Bartlett</td>
                                      <td>Technical Author</td>
                                      <td>London</td>
                                      <td>27</td>
                                      <td>2011/05/07</td>
                                      <td>$145,000</td>
                                  </tr>
                                  <tr>
                                      <td>Gavin Cortez</td>
                                      <td>Team Leader</td>
                                      <td>San Francisco</td>
                                      <td>22</td>
                                      <td>2008/10/26</td>
                                      <td>$235,500</td>
                                  </tr>
                                  <tr>
                                      <td>Martena Mccray</td>
                                      <td>Post-Sales support</td>
                                      <td>Edinburgh</td>
                                      <td>46</td>
                                      <td>2011/03/09</td>
                                      <td>$324,050</td>
                                  </tr>
                                  <tr>
                                      <td>Unity Butler</td>
                                      <td>Marketing Designer</td>
                                      <td>San Francisco</td>
                                      <td>47</td>
                                      <td>2009/12/09</td>
                                      <td>$85,675</td>
                                  </tr>
                                  <tr>
                                      <td>Howard Hatfield</td>
                                      <td>Office Manager</td>
                                      <td>San Francisco</td>
                                      <td>51</td>
                                      <td>2008/12/16</td>
                                      <td>$164,500</td>
                                  </tr>
                                  <tr>
                                      <td>Hope Fuentes</td>
                                      <td>Secretary</td>
                                      <td>San Francisco</td>
                                      <td>41</td>
                                      <td>2010/02/12</td>
                                      <td>$109,850</td>
                                  </tr>
                                  <tr>
                                      <td>Vivian Harrell</td>
                                      <td>Financial Controller</td>
                                      <td>San Francisco</td>
                                      <td>62</td>
                                      <td>2009/02/14</td>
                                      <td>$452,500</td>
                                  </tr>
                                  <tr>
                                      <td>Timothy Mooney</td>
                                      <td>Office Manager</td>
                                      <td>London</td>
                                      <td>37</td>
                                      <td>2008/12/11</td>
                                      <td>$136,200</td>
                                  </tr>
                                  <tr>
                                      <td>Jackson Bradshaw</td>
                                      <td>Director</td>
                                      <td>New York</td>
                                      <td>65</td>
                                      <td>2008/09/26</td>
                                      <td>$645,750</td>
                                  </tr>
                                  <tr>
                                      <td>Olivia Liang</td>
                                      <td>Support Engineer</td>
                                      <td>Singapore</td>
                                      <td>64</td>
                                      <td>2011/02/03</td>
                                      <td>$234,500</td>
                                  </tr>
                                  <tr>
                                      <td>Bruno Nash</td>
                                      <td>Software Engineer</td>
                                      <td>London</td>
                                      <td>38</td>
                                      <td>2011/05/03</td>
                                      <td>$163,500</td>
                                  </tr>
                                  <tr>
                                      <td>Sakura Yamamoto</td>
                                      <td>Support Engineer</td>
                                      <td>Tokyo</td>
                                      <td>37</td>
                                      <td>2009/08/19</td>
                                      <td>$139,575</td>
                                  </tr>
                                  <tr>
                                      <td>Thor Walton</td>
                                      <td>Developer</td>
                                      <td>New York</td>
                                      <td>61</td>
                                      <td>2013/08/11</td>
                                      <td>$98,540</td>
                                  </tr>
                                  <tr>
                                      <td>Finn Camacho</td>
                                      <td>Support Engineer</td>
                                      <td>San Francisco</td>
                                      <td>47</td>
                                      <td>2009/07/07</td>
                                      <td>$87,500</td>
                                  </tr>
                                  <tr>
                                      <td>Serge Baldwin</td>
                                      <td>Data Coordinator</td>
                                      <td>Singapore</td>
                                      <td>64</td>
                                      <td>2012/04/09</td>
                                      <td>$138,575</td>
                                  </tr>
                                  <tr>
                                      <td>Zenaida Frank</td>
                                      <td>Software Engineer</td>
                                      <td>New York</td>
                                      <td>63</td>
                                      <td>2010/01/04</td>
                                      <td>$125,250</td>
                                  </tr>
                                  <tr>
                                      <td>Zorita Serrano</td>
                                      <td>Software Engineer</td>
                                      <td>San Francisco</td>
                                      <td>56</td>
                                      <td>2012/06/01</td>
                                      <td>$115,000</td>
                                  </tr>
                                  <tr>
                                      <td>Jennifer Acosta</td>
                                      <td>Junior Javascript Developer</td>
                                      <td>Edinburgh</td>
                                      <td>43</td>
                                      <td>2013/02/01</td>
                                      <td>$75,650</td>
                                  </tr>
                                  <tr>
                                      <td>Cara Stevens</td>
                                      <td>Sales Assistant</td>
                                      <td>New York</td>
                                      <td>46</td>
                                      <td>2011/12/06</td>
                                      <td>$145,600</td>
                                  </tr>
                                  <tr>
                                      <td>Hermione Butler</td>
                                      <td>Regional Director</td>
                                      <td>London</td>
                                      <td>47</td>
                                      <td>2011/03/21</td>
                                      <td>$356,250</td>
                                  </tr>
                                  <tr>
                                      <td>Lael Greer</td>
                                      <td>Systems Administrator</td>
                                      <td>London</td>
                                      <td>21</td>
                                      <td>2009/02/27</td>
                                      <td>$103,500</td>
                                  </tr>
                                  <tr>
                                      <td>Jonas Alexander</td>
                                      <td>Developer</td>
                                      <td>San Francisco</td>
                                      <td>30</td>
                                      <td>2010/07/14</td>
                                      <td>$86,500</td>
                                  </tr>
                                  <tr>
                                      <td>Shad Decker</td>
                                      <td>Regional Director</td>
                                      <td>Edinburgh</td>
                                      <td>51</td>
                                      <td>2008/11/13</td>
                                      <td>$183,000</td>
                                  </tr>
                                  <tr>
                                      <td>Michael Bruce</td>
                                      <td>Javascript Developer</td>
                                      <td>Singapore</td>
                                      <td>29</td>
                                      <td>2011/06/27</td>
                                      <td>$183,000</td>
                                  </tr>
                                  <tr>
                                      <td>Donna Snider</td>
                                      <td>Customer Support</td>
                                      <td>New York</td>
                                      <td>27</td>
                                      <td>2011/01/25</td>
                                      <td>$112,000</td>
                                  </tr>
                              </tbody>
                          </table>
                      </div>
                  </div>
              </div>
          </main>
          <app-footer></app-footer>
      </div>

    8. Now friends we just need to add below code into angulardemo/src/app/login/login.component.html file:

    <div id="layoutAuthentication">
        <div id="layoutAuthentication_content">
            <main>
                <div class="container">
                    <div class="row justify-content-center">
                        <div class="col-lg-5">
                            <div class="card shadow-lg border-0 rounded-lg mt-5">
                                <div class="card-header"><h3 class="text-center font-weight-light my-4">Login</h3></div>
                                <div class="card-body">
                                    <form>
                                        <div class="form-floating mb-3">
                                            <input class="form-control" id="inputEmail" type="email" placeholder="name@example.com" />
                                            <label for="inputEmail">Email address</label>
                                        </div>
                                        <div class="form-floating mb-3">
                                            <input class="form-control" id="inputPassword" type="password" placeholder="Password" />
                                            <label for="inputPassword">Password</label>
                                        </div>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" id="inputRememberPassword" type="checkbox" value="" />
                                            <label class="form-check-label" for="inputRememberPassword">Remember Password</label>
                                        </div>
                                        <div class="d-flex align-items-center justify-content-between mt-4 mb-0">
                                            <a class="btn btn-primary" href="#">Login</a>
                                        </div>
                                    </form>
                                </div>
                                <div class="card-footer text-center py-3">
                                    <div class="small"><a routerLink="/register">Need an account? Sign up!</a></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </main>
        </div>
        <div id="layoutAuthentication_footer">
            <app-footer></app-footer>
        </div>
    </div>

    9. Now friends we just need to add below code into angulardemo/src/app/register/register.component.html file:

    <div id="layoutAuthentication">
        <div id="layoutAuthentication_content">
            <main>
                <div class="container">
                    <div class="row justify-content-center">
                        <div class="col-lg-7">
                            <div class="card shadow-lg border-0 rounded-lg mt-5">
                                <div class="card-header"><h3 class="text-center font-weight-light my-4">Create Account</h3></div>
                                <div class="card-body">
                                    <form>
                                        <div class="row mb-3">
                                            <div class="col-md-6">
                                                <div class="form-floating mb-3 mb-md-0">
                                                    <input class="form-control" id="inputFirstName" type="text" placeholder="Enter your first name" />
                                                    <label for="inputFirstName">First name</label>
                                                </div>
                                            </div>
                                            <div class="col-md-6">
                                                <div class="form-floating">
                                                    <input class="form-control" id="inputLastName" type="text" placeholder="Enter your last name" />
                                                    <label for="inputLastName">Last name</label>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="form-floating mb-3">
                                            <input class="form-control" id="inputEmail" type="email" placeholder="name@example.com" />
                                            <label for="inputEmail">Email address</label>
                                        </div>
                                        <div class="row mb-3">
                                            <div class="col-md-6">
                                                <div class="form-floating mb-3 mb-md-0">
                                                    <input class="form-control" id="inputPassword" type="password" placeholder="Create a password" />
                                                    <label for="inputPassword">Password</label>
                                                </div>
                                            </div>
                                            <div class="col-md-6">
                                                <div class="form-floating mb-3 mb-md-0">
                                                    <input class="form-control" id="inputPasswordConfirm" type="password" placeholder="Confirm password" />
                                                    <label for="inputPasswordConfirm">Confirm Password</label>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="mt-4 mb-0">
                                            <div class="d-grid"><a class="btn btn-primary btn-block" href="#">Create Account</a></div>
                                        </div>
                                    </form>
                                </div>
                                <div class="card-footer text-center py-3">
                                    <div class="small"><a routerLink="/login">Have an account? Go to login</a></div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </main>
        </div>
        <div id="layoutAuthentication_footer">
            <app-footer></app-footer>
        </div>
    </div>

    10. Now friends we just need to add below code into angulardemo/src/app/app-routing.module.ts file:

    import { NgModule } from '@angular/core';
    import { RouterModule, Routes } from '@angular/router';
    import { HomeComponent } from './home/home.component';
    import { LoginComponent } from './login/login.component';
    import { RegisterComponent } from './register/register.component';
    const routes: Routes = [
      { path: '', component: HomeComponent },
      { path: 'login', component: LoginComponent },
      { path: 'register', component: RegisterComponent },
    ];
    
    @NgModule({
      imports: [RouterModule.forRoot(routes)],
      exports: [RouterModule]
    })
    export class AppRoutingModule { }
    

    11. Now friends we just need to add below code into angulardemo/src/index.html file:

    <!doctype html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>Angular | Admin Template</title>
      <base href="/">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="icon" type="image/x-icon" href="favicon.ico">
      <link href="https://cdn.jsdelivr.net/npm/simple-datatables@7.1.2/dist/style.min.css" rel="stylesheet" />
      <!-- custom css -->
     
      <script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
    </head>
    <body class="sb-nav-fixed">
      <app-root></app-root>
      <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
     
      <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.min.js" crossorigin="anonymous"></script>
      
      <script src="https://cdn.jsdelivr.net/npm/simple-datatables@7.1.2/dist/umd/simple-datatables.min.js" crossorigin="anonymous"></script>
      
    </body>
    </html>

    Friends in the end must run ng serve command into your terminal to run the angular 17 adminproject (localhost:4200).

    Guys click here to check the Angular 17 Bootstrap 5 Free Templates.

    Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.

    Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.

    Jassa

    Thanks

  • Build an eCommerce Web Application using React, Redux, Redux-Saga, Firebase and SASS

    Build an eCommerce Web Application using React, Redux, Redux-Saga, Firebase and SASS

    Hello friends, welcome back to my blog. Today this blog post will tell you Build an eCommerce Web Application using React, Redux, Redux-Saga, Firebase and SASS.

    Key Features:

    1. React Latest Version
    2. Redux
    3. Redux-Saga
    4. Sass
    5. User Login, Sign Up
    6. Admin Dashboard with manage products(add, edit, delete)
    7. Firebase Authentication
    8. Account creation and edit
    9. Firebase auth provider authentication
    Live Demo
    Create database in Firebase

    For React new comers, please check the below link:

    1. Reactjs Basic Tutorials

    Guys here is the git repo link and please follow this:

    Git Repo Link

    Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.

    Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.

    Jassa

    Thanks

  • How To Build An E-Commerce Site With Angular 16+?

    How To Build An E-Commerce Site With Angular 16+?

    Hello friends, welcome back to my blog. Today this blog post I will tell you, How To Build An E-Commerce Site With Angular 16+?

    Key Features:

    1. Angular Latest Version
    2. Angular routing
    3. Angular active routes functionality
    4. Full responsive
    5. All Ecommerce website pages
    6. Product quick view functionality

    Live Demo

    How To Build An E-Commerce Site With Angular 16+?
    How To Build An E-Commerce Site With Angular 16+?
    Angular ecommerce site product quick view
    Angular ecommerce site product quick view

    Angular 16 came and if you are new then you must check below two links:

    1. Angular16Basic Tutorials
    2. Angular Ecommerce Free Templates

    Friends now I proceed onwards and here is the working code snippet and please use carefully this to avoid the mistakes:

    1. Firstly friends we need fresh angular 16 setup and for this we need to run below commands but if you already have angular 16 setup then you can avoid below commands. Secondly we should also have latest node version installed on our system:

    npm install -g @angular/cli 
    
    ng new angulardemo //Create new Angular Project 
    
    cd angulardemo // Go inside the Angular Project Folder
    
    ng g c home
    
    ng g c product  
    
    ng g c singleproduct
    
    ng g c store
    
    ng g c header
    
    ng g c footer
    
    ng serve

    2. Now friends, please download images and styles from this git repo link and please put all the images css files folders in “src/assets/” folder after creating css an images folders inside it:

    Angular Ecommerce project git repo

    3. Now friends we just need to add below code into angulardemo/src/app/app.component.html file to get final out on the web browser:

    <app-header></app-header>
    <router-outlet></router-outlet>
    <app-footer></app-footer>

    4. Now guys please add the below code inside angulardemo/angular.json file to styles and scripts:

    "styles": [
                  ...
                  "assets/css/all.min.css",
                  "assets/css/bootstrap.min.css",
                  "assets/css/style.css"
              ],
    "scripts": [
                  ...
                   "assets/js/jquery-3.4.1.min.js",
                   "assets/js/bootstrap.bundle.min.js",
                   "assets/js/all.min.js"
               ]
    ...

    5. Now friends we just need to add below code into angulardemo/src/app/header/header.component.html file:

    <!-- header section -->
    <header id="header" class="header">
      <!-- navbar -->
      <nav class="navbar navbar-expand-lg navbar-light">
        <a routerLink="/" class="navbar-brand">
          <img src="assets/img/logo.png" alt="company logo" />
        </a>
        <button
          class="navbar-toggler"
          type="button"
          data-toggle="collapse"
          data-target="#myNavbar"
        >
          <i class="fas fa-bars"></i>
        </button>
        <div class="collapse navbar-collapse" id="myNavbar">
          <ul class="navbar-nav mx-auto">
            <li class="nav-item mx-2" routerLinkActive="nav-active" [routerLinkActiveOptions]="{ exact: true }">
              <a routerLink="/" class="nav-link">Home</a>
            </li>
            <li class="nav-item mx-2"  routerLinkActive="nav-active">
              <a routerLink="/products" class="nav-link">Products</a>
            </li>
            <li class="nav-item mx-2"  routerLinkActive="nav-active">
              <a routerLink="/singleproduct" class="nav-link">Single Product</a>
            </li>
            <li class="nav-item mx-2"  routerLinkActive="nav-active">
              <a routerLink="/store" class="nav-link">Store</a>
            </li>
          </ul>
        </div>
        <div class="navbar-icons d-none d-lg-flex">
          <!-- single icon -->
          <div class="navbar-icon mx-2"><i class="fas fa-search"></i></div>
          <!-- end of single icon -->
          <!-- single icon -->
          <a routerLink="/store" class="navbar-icon mx-2 navbar-cart-icon">
            <i class="fas fa-shopping-cart"></i>
            <div class="cart-items">2</div>
          </a>
          <!-- end of  single icon -->
        </div>
      </nav>
      <!-- end of navbar -->
    </header>
    <!-- end of header section -->

    6. Now friends we just need to add below code into angulardemo/src/app/footer/footer.component.html file:

    <!-- footer section -->
    <footer class="footer py-5">
       <div class="container">
         <div class="row">
           <div class="col-10 mx-auto text-center">
             <h1 class="text-uppercase font-weight-bold text-yellow d-inline-block footer-title">
               comfy sloth
             </h1>
             <!-- footer icons -->
             <div class="footer-icons d-flex justify-content-center my-5">
               <!-- single icon -->
               <a href="" class="footer-icon mx-2">
                 <div class="fab fa-facebook"></div>
               </a>
               <!-- end of single icon -->
               <!-- single icon -->
               <a href="" class="footer-icon mx-2">
                 <div class="fab fa-twitter"></div>
               </a>
               <!-- end of single icon -->
               <!-- single icon -->
               <a href="" class="footer-icon mx-2">
                 <div class="fab fa-youtube"></div>
               </a>
               <!-- end of single icon -->
               <!-- single icon -->
               <a href="" class="footer-icon mx-2">
                 <div class="fab fa-google-plus"></div>
               </a>
               <!-- end of single icon -->
               <!-- single icon -->
               <a href="" class="footer-icon mx-2">
                 <div class="fab fa-instagram"></div>
               </a>
               <!-- end of single icon -->
             </div>
             <!-- footer icons -->
             <p class="text-muted text-capitalize w-75 mx-auto text-center">
               Lorem ipsum dolor, sit amet consectetur adipisicing elit. Labore illum illo exercitationem ex porro consequuntur quae mollitia qui accusamus! Molestiae.
             </p>
             <div class="footer-contact d-flex justify-content-around mt-5">
               <!-- single contact -->
               <div class="text-capitalize">
                 <span class="contact-icon mr-2">
                   <i class="fas fa-map"></i>
                 </span>
                 123 Main Street, LUdhiana
               </div>
               <!-- end of single contact -->
               <!-- single contact -->
               <div class="text-capitalize">
                 <span class="contact-icon mr-2">
                   <i class="fas fa-phone"></i>
                 </span>
                 Phone : + (1111) 111 11111
               </div>
               <!-- end of single contact -->
               <!-- single contact -->
               <div class="text-capitalize">
                 <span class="contact-icon mr-2">
                   <i class="fas fa-envelope"></i>
                 </span>
                 Email : Eamil@Email.Com
               </div>
               <!-- end of single contact -->
             </div>
           </div>
         </div>
       </div>
     </footer>
     <!-- end of footer section -->
     <!-- modal -->
     <div class="modal fade" id="productModal" tabindex="-1" role="dialog">
       <div class="modal-dialog" role="document">
         <div class="modal-content">
           <!-- modal header -->
           <div class="modal-header">
             <h5 class="modal-title text-capitalize">product info</h5>
             <button type="button" class="close" data-dismiss="modal">
               <span aria-hidden="true">&times;</span>
             </button>
           </div>
           <!--end of  modal header -->
           <!-- modal body -->
           <div class="modal-body">
             <div class="row">
               <div class="col text-center">
                 <img src="img/img-products/product-1.png" class="img-fluid" alt="" />
                 <!-- ratings -->
                 <div class="ratings">
                   <span class="rating-icon"><i class="fas fa-star"></i></span>
                   <span class="rating-icon"><i class="fas fa-star"></i></span>
                   <span class="rating-icon"><i class="fas fa-star"></i></span>
                   <span class="rating-icon"><i class="fas fa-star"></i></span>
                   <span class="rating-icon"><i class="far fa-star"></i></span>
                   <span class="text-capitalize">(25 customer reviews)</span>
                 </div>
                 <!-- end of ratings -->
                 <h2 class="text-uppercase my-2">premium office armchair</h2>
                 <h2>$10.00 - $200.00</h2>
                 <p class="lead text-muted">
                   Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi,
                   porro.
                 </p>
                 <!-- colors -->
                 <h5 class="text-uppercase">
                   colors :
                   <span class="d-inline-block products-color products-color-black mr-2"></span>
                   <span class="d-inline-block products-color products-color-red mr-2"></span>
                   <span class="d-inline-block products-color products-color-blue mr-2"></span>
                 </h5>
                 <!-- end of colors -->
                 <!-- sizes -->
                 <h5 class="text-uppercase">
                   sizes : <span class="mx-2">xs</span> <span class="mx-2">s</span>
                   <span class="mx-2">m</span> <span class="mx-2">l</span>
                   <span class="mx-2">xl</span>
                 </h5>
                 <div class="d-flex flex-wrap">
                   <!-- cart buttons -->
                   <div class="d-flex my-2">
                     <span class="btn btn-black mx-1">-</span>
                     <span class="btn btn-black mx-1">4</span>
                     <span class="btn btn-black mx-1">+</span>
                   </div>
                   <button class="btn btn-black my-2 mx-2">wishlist</button>
                   <button class="btn btn-yellow my-2 mx-2">add to cart</button>
                 </div>
               </div>
             </div>
           </div>
           <!-- end modal body -->
           <div class="modal-footer">
             <button type="button" class="btn btn-danger" data-dismiss="modal">close</button>
           </div>
         </div>
       </div>
     </div>
     <!-- end of modal -->

    7. Now friends we just need to add below code into angulardemo/src/app/home/home.component.html file:

    <div class="banner d-flex align-items-center pl-3 pl-lg-5">
        <div>
          <h1 class="text-slanted text-capitalize mb-0">
            Minimalist
          </h1>
          <h1 class="text-lowercase font-weight-bold">
            interior style
          </h1>
          <a href="#" class="btn btn-yellow"> view collection </a>
        </div>
    </div>
     <!-- services section -->
     <section id="services" class="services py-5 text-center">
        <div class="container">
          <div class="row">
            <!-- single service --> 
            <div class="col-10 mx-auto col-md-6 col-lg-4 my-3">
              <span class="service-icon">
                <i class="fas fa-parachute-box"></i>
              </span>
              <h5 class="text-uppercase font-weight-bold">
                free shipping
              </h5>
              <p class="text-muted text-capitalize">
                free shipping on all order over 100.00
              </p>
            </div>
            <!-- end of single service -->
            <!-- single service --> 
            <div class="col-10 mx-auto col-md-6 col-lg-4 my-3">
              <span class="service-icon">
                <i class="fas fa-phone-volume"></i>
              </span>
              <h5 class="text-uppercase font-weight-bold">
                ONLINE SUPPORT 24/7
              </h5>
              <p class="text-muted text-capitalize">
                We Will Assist You With Your Inquiries
              </p>
            </div>
            <!-- end of single service -->
            <!-- single service --> 
            <div class="col-10 mx-auto col-md-6 col-lg-4 my-3">
              <span class="service-icon">
                <i class="fas fa-dollar-sign"></i>
              </span>
              <h5 class="text-uppercase font-weight-bold">
                MONEY BACK GURANTEE
              </h5>
              <p class="text-muted text-capitalize">
                Free 100% Refund For 30 Da
              </p>
            </div>
            <!-- end of single service -->
          </div>
        </div>
      </section>
      <!-- end of services section -->
    
      <!-- home categories -->
      <section id="home-categories" class="home-categories py-5">
        <div class="container">
          <div class="row">
            <!-- categories title -->
            <div class="col-10 mx-auto col-md-6 col-lg-3 align-self-center">
              <h5 class="text-uppercase">
                product categories
              </h5>
              <p class="text-muted text-capitalize">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempore neque minus in error sunt laudantium totam nemo accusamus iure placeat.
              </p>
              <a href="" class="categorie-link text-weight-bold text-capitalize">
                view all categories
              </a>
              <div class="categorie-underline">
              </div>
            </div>
            <!-- end of categories title -->
            <!-- main categories -->
            <div class="col-10 mx-auto col-md-6 col-lg-9 my-3">
              <div class="row">
                <!-- single category -->
                <div class="col-md-6 col-lg-3 my-3">
                  <div class="category-container">
                    <img src="assets/img/cagetogoryImg/bathroom-category.jpeg" class="img-fluid category-img" alt="">
                    <a routerLink="/products" class="category-link">
                      <h6 class="text-uppercase mb-0">
                        bathroom
                      </h6>
                      <p class="text-yellow mb-0">
                        50 items
                      </p>
                    </a>
                  </div>
                </div>
                <!-- end of single category -->
                <!-- single category -->
                <div class="col-md-6 col-lg-3 my-3">
                  <div class="category-container">
                    <img src="assets/img/cagetogoryImg/kitchen-category.jpeg" class="img-fluid category-img" alt="">
                    <a routerLink="/products" class="category-link">
                      <h6 class="text-uppercase mb-0">
                        kitchen
                      </h6>
                      <p class="text-yellow mb-0">
                        20 items
                      </p>
                    </a>
                  </div>
                </div>
                <!-- end of single category -->
                <!-- single category -->
                <div class="col-md-6 col-lg-3 my-3">
                  <div class="category-container">
                    <img src="assets/img/cagetogoryImg/livingroom-category.jpeg" class="img-fluid category-img" alt="">
                    <a routerLink="/products" class="category-link">
                      <h6 class="text-uppercase mb-0">
                        livingroom
                      </h6>
                      <p class="text-yellow mb-0">
                        25 items
                      </p>
                    </a>
                  </div>
                </div>
                <!-- end of single category -->
                <!-- single category -->
                <div class="col-md-6 col-lg-3 my-3">
                  <div class="category-container">
                    <img src="assets/img/cagetogoryImg/patio-category.jpeg" class="img-fluid category-img" alt="">
                    <a routerLink="/products" class="category-link">
                      <h6 class="text-uppercase mb-0">
                        patio
                      </h6>
                      <p class="text-yellow mb-0">
                        10 items
                      </p>
                    </a>
                  </div>
                </div>
                <!-- end of single category -->
              </div>
            </div>
            <!-- end of main categories -->
          </div>
        </div>
      </section>
      <!-- end of home categories -->
    
      <!-- home filler -->
      <section id="home-filler">
        <div class="container-fluid">
          <div class="row home-filler align-items-center">
            <div class="col-10 mx-auto text-center text-white">
              <h4 class="text-uppercase font-weight-bold">
                smart furniture collection
              </h4>
              <p class="text-capitalize">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Recusandae, accusantium
              </p>
              <a href="#" class="text-capitalize collection-link text-yellow">
                view collection
              </a>
              <div class="collection-underline"></div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of home filler -->
    
      <!-- featured section -->
      <section id="featured" class="featured py-5">
        <div class="container">
          <div class="row my-3">
            <div class="col-10 mx-auto text-center">
              <h1 class="text-uppercase">
                featured products
              </h1>
              <p class="text-muted">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur, deleniti?
              </p>
            </div>
          </div>
          <div class="row">
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-6.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-2.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-3.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-4.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-5.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
          </div>
        </div>
      </section>
      <!-- end of featured section -->
    
      <!-- partners -->
      <section class="partners py-5">
        <div class="container">
          <div class="row">
            <!-- compnay carousel -->
            <div class="col-6 col-md-6 col-lg-4 mx-auto">
              <div
                id="partnerCarousel"
                class="carousel slide "
                data-ride="carousel"
              >
                <div class="carousel-inner">
                  <!-- single item -->
                  <div class="carousel-item active">
                    <img
                      src="assets/img/company-logos/company-logo-1.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-2.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-3.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-4.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-5.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item">
                    <img
                      src="assets/img/company-logos/company-logo-6.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                </div>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-prev"
                  role="button"
                  data-slide="prev"
                >
                  <i class="fas fa-arrow-left"></i>
                </a>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-next"
                  role="button"
                  data-slide="next"
                >
                  <i class="fas fa-arrow-right"></i>
                </a>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of  partners -->
    
      <!-- newsletter section -->
      <section id="newsletter" class="newsletter py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 mx-auto text-center">
              <h2 class="text-uppercase">
                newsletter
              </h2>
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti blanditiis similique eum, aut culpa maiores cupiditate alias exercitationem error nesciunt.
              </p>
              <form action="">
                <div class="input-group mt-5 mb-4">
                  <input type="text" class="text-capitalize form-control" placeholder="enter your email">
                  <div class="input-group-append">
                  <div class="input-group-text form-icon">
                    <i class="fas fa-envelope"></i>
                  </div>
                  </div>
                </div>
                <button type="submit" class=" btn btn-yellow">subscribe</button>
              </form>
            </div>
          </div>
        </div>
      </section>
      <!-- end of newsletter section -->
    
      <!-- skills section -->
      <section id="skills" class="skills py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-truck"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  free shipping
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-comment-dollar"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  price promise
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-award"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  lifetime warranty
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of skills section -->

    8. Now friends we just need to add below code into angulardemo/src/app/products/products.component.html file:

    <div class="banner-product d-flex pl-3 pl-lg-5 align-items-center text-center justify-content-center">
        <div>
          <h1 class="text-slanted text-capitalize display-4 text-yellow">
              comfy sloth
          </h1>
          <h1 class="text-capitalize display-4 font-weight-bold">
              our products
          </h1>
        </div>
    </div>
    <!-- product section  -->
    <section id="products" class="products">
        <div class="container-fluid">
          <div class="row">
            <!-- product info -->
            <div class="col-10 mx-auto col-md-5 col-lg-3 text-capitalize my-3 px-5">
              <!-- products categories -->
              <div class="products-categories-title my-4">
                <h6 class="text-uppercase">
                  shop by categories
                </h6>
                <div class="products-categories-underline"></div>
              </div>
              <!-- end of title -->
              <!-- single link -->
              <a href="#" class="products-category-link d-block">
                <p class="mb-0">
                  kitchen
                </p>
              </a>
              <a href="#" class="products-category-link d-block">
                <p class="mb-0">
                  bath room
                </p>
              </a>
              <a href="#" class="products-category-link d-block">
                <p class="mb-0">
                  living room
                </p>
              </a>
              <a href="#" class="products-category-link d-block">
                <p class="mb-0">
                  patio
                </p>
              </a>
              <a href="#" class="products-category-link d-block">
                <p class="mb-0">
                  bedroom
                </p>
              </a>
              <!-- end of single link -->
              <div class="products-categories-title my-4">
                <h6 class="text-uppercase">
                  shop by price
                </h6>
                <div class="products-categories-underline"></div>
              </div>
              <!-- end of title -->
              <form action="">
                <div class="form-group">
                  <label for="price-range">Range : $0 - $1000</label>
                  <input type="range" class="form-control-range" id="price-range">
                </div>
                <div class="input-group">
                  <div class="input-group-prepend">
                    <span class="input-group-text form-icon">
                      <i class="fas fa-search"></i>
                    </span>
                  </div>
                  <input type="text" class="form-control text-capitalize" placeholder="search by name">
                </div>
              </form>
              <div class="products-categories-title my-4">
                <h6 class="text-uppercase">
                  shop by color
                </h6>
                <div class="products-categories-underline"></div>
              </div>
              <!-- single color -->
              <a href="#">
                <p class="text-capitalize mb-0">
                  <span class="d-inline-block products-color products-color-black mr-2">
                  </span>
                  black (5)
                </p>
              </a>
              <!-- end of single color -->
              <!-- single color -->
              <a href="#">
                <p class="text-capitalize mb-0">
                  <span class="d-inline-block products-color products-color-red mr-2">
                  </span>
                  red (6)
                </p>
              </a>
              <!-- end of single color -->
              <!-- single color -->
              <a href="#">
                <p class="text-capitalize mb-0">
                  <span class="d-inline-block products-color products-color-blue mr-2">
                  </span>
                  blue (10)
                </p>
              </a>
              <!-- end of single color -->
              <!-- single color -->
              <a href="#">
                <p class="text-capitalize mb-0">
                  <span class="d-inline-block products-color products-color-yellow mr-2">
                  </span>
                  yellow (3)
                </p>
              </a>
              <!-- end of single color -->
              <!-- single color -->
              <a href="#">
                <p class="text-capitalize mb-0">
                  <span class="d-inline-block products-color products-color-green mr-2">
                  </span>
                  green (7)
                </p>
              </a>
              <!-- end of single color -->
              <!-- end of title -->
              <!-- end of products categories -->
            </div>
            <!-- end of product info -->
            <!-- product img -->
            <div class="col-10 mx-auto col-md-7 col-lg-9 my-3">
              <div class="row">
                <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-7.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-8.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-9.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-10.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-11.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-12.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
              </div>
            </div>
            <!-- end of product img -->
          </div>
        </div>
      </section>
      <!-- end of product section  -->
    
      <!-- featured section -->
      <section id="featured" class="featured py-5">
        <div class="container">
          <div class="row my-3">
            <div class="col-10 mx-auto text-center">
              <h1 class="text-uppercase">
                featured products
              </h1>
              <p class="text-muted">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur, deleniti?
              </p>
            </div>
          </div>
          <div class="row">
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-6.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-2.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-3.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-4.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-5.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
          </div>
        </div>
      </section>
      <!-- end of featured section -->
    
      <!-- partners -->
      <section class="partners py-5">
        <div class="container">
          <div class="row">
            <!-- compnay carousel -->
            <div class="col-6 col-md-6 col-lg-4 mx-auto">
              <div
                id="partnerCarousel"
                class="carousel slide "
                data-ride="carousel"
              >
                <div class="carousel-inner">
                  <!-- single item -->
                  <div class="carousel-item active">
                    <img
                      src="assets/img/company-logos/company-logo-1.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-2.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-3.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-4.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-5.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item">
                    <img
                      src="assets/img/company-logos/company-logo-6.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                </div>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-prev"
                  role="button"
                  data-slide="prev"
                >
                  <i class="fas fa-arrow-left"></i>
                </a>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-next"
                  role="button"
                  data-slide="next"
                >
                  <i class="fas fa-arrow-right"></i>
                </a>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of  partners -->
    
      <!-- newsletter section -->
      <section id="newsletter" class="newsletter py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 mx-auto text-center">
              <h2 class="text-uppercase">
                newsletter
              </h2>
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti blanditiis similique eum, aut culpa maiores cupiditate alias exercitationem error nesciunt.
              </p>
              <form action="">
                <div class="input-group mt-5 mb-4">
                  <input type="text" class="text-capitalize form-control" placeholder="enter your email">
                  <div class="input-group-append">
                  <div class="input-group-text form-icon">
                    <i class="fas fa-envelope"></i>
                  </div>
                  </div>
                </div>
                <button type="submit" class=" btn btn-yellow">subscribe</button>
              </form>
            </div>
          </div>
        </div>
      </section>
      <!-- end of newsletter section -->
    
      <!-- skills section -->
      <section id="skills" class="skills py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-truck"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  free shipping
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-comment-dollar"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  price promise
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-award"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  lifetime warranty
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of skills section -->

    9. Now friends we just need to add below code into angulardemo/src/app/singleproduct/singleproduct.component.html file:

    <div class="banner-single-product d-flex pl-3 pl-lg-5 align-items-center text-center justify-content-center">
        <div>
          <h1 class="text-slanted text-capitalize display-4 text-yellow">
              comfy sloth
          </h1>
          <h1 class="text-capitalize display-4 font-weight-bold">
              single product
          </h1>
        </div>
    </div>
    <!-- single product -->
    <section class="single-product py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 mx-auto col-lg-4 my-5 text-center">
              <div class="single-product-img-container">
                <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
              </div>
              <div class="row simgle-product-photos mt-3">
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
                <!-- single photo -->
                <div class="col-2 col-sm-2 p-1 single-product-photo">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <!-- end of single photo -->
              </div>
            </div>
            <!-- info -->
            <div class="col-10 col-lg-8 mx-auto px-lg-5 single-product-info my-5">
              <!-- ratings -->
              <div class="ratings">
                <span class="rating-icon">
                  <i class="fas fa-star"></i>
                </span>
                <span class="rating-icon">
                  <i class="fas fa-star"></i>
                </span>
                <span class="rating-icon">
                  <i class="fas fa-star"></i>
                </span>
                <span class="rating-icon">
                  <i class="fas fa-star"></i>
                </span>
                <span class="rating-icon">
                  <i class="far fa-star"></i>
                </span>
                <span class="text-capitalize">
                  (25 Customer Reviews)
                </span>
              </div>
              <!-- end of ratings -->
              <h2 class="text-uppercase my-2">
                PREMIUM OFFICE ARMCHAIR
              </h2>
              <h2 class="text-uppercase my-2">
                $10.00 - $200.00
              </h2>
              <p class="lead text-muted">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Ea, quae!
              </p>
              <!-- colors -->
              <h5 class="text-uppercase">
                colors:
                <span class="d-inline-block products-color products-color-black mr-2"></span>
                <span class="d-inline-block products-color products-color-blue mr-2"></span>
                <span class="d-inline-block products-color products-color-green mr-2"></span>
              </h5>
              <!-- end of colors -->
              <!-- size -->
              <h5 class="text-uppercase product-size">
                SIZES : XS S M L XL
              </h5>
              <!-- end of size -->
              <!-- cart buttons -->
              <div class="d-flex my-2">
                <span class="btn btn-black mx-1">-</span>
                <span class="btn btn-black mx-1">4</span>
                <span class="btn btn-black mx-1">+</span>
              </div>
              <button class="btn btn-black my-2 mx-2">
                Wishlist
              </button>
              <button class="btn btn-yellow my-2 mx-2">
                Add To Cart
              </button>
              <!-- end of cart buttons -->
            </div>
          </div>
        </div>
      </section>
      <!-- end of single product -->
    
      <!-- single product info -->
      <section class="single-product-info">
        <div class="container">
          <div class="row">
            <div class="col">
              <div class="jumbotron">
                <!-- products info link -->
                <div class="d-flex justify-content-around my-3">
                  <a href="#" class="product-info-link">
                    <h4 class="text-capitalize">
                      description
                    </h4>
                  </a>
                  <a href="#" class="product-info-link">
                    <h4 class="text-capitalize">
                      additional information
                    </h4>
                  </a>
                  <a href="#" class="product-info-link">
                    <h4 class="text-capitalize">
                      Reviews (25)
                    </h4>
                  </a>
                </div>
                <!-- end of products info link -->
                <p class="lead">
                  Lorem ipsum dolor, sit amet consectetur adipisicing elit. Molestiae voluptatem aperiam culpa, adipisci aspernatur fugiat, animi odio quos assumenda praesentium, doloremque consequuntur vitae repellat eos sapiente laboriosam iusto. Veritatis, enim dolore. Odit, voluptatum doloremque architecto harum at optio quas minima?
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of single product info -->
    
      <!-- featured section -->
      <section id="featured" class="featured py-5">
        <div class="container">
          <div class="row my-3">
            <div class="col-10 mx-auto text-center">
              <h1 class="text-uppercase">
                featured products
              </h1>
              <p class="text-muted">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur, deleniti?
              </p>
            </div>
          </div>
          <div class="row">
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-6.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-2.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-3.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-4.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-5.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
          </div>
        </div>
      </section>
      <!-- end of featured section -->
    
      <!-- partners -->
      <section class="partners py-5">
        <div class="container">
          <div class="row">
            <!-- compnay carousel -->
            <div class="col-6 col-md-6 col-lg-4 mx-auto">
              <div
                id="partnerCarousel"
                class="carousel slide "
                data-ride="carousel"
              >
                <div class="carousel-inner">
                  <!-- single item -->
                  <div class="carousel-item active">
                    <img
                      src="assets/img/company-logos/company-logo-1.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-2.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-3.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-4.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-5.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item">
                    <img
                      src="assets/img/company-logos/company-logo-6.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                </div>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-prev"
                  role="button"
                  data-slide="prev"
                >
                  <i class="fas fa-arrow-left"></i>
                </a>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-next"
                  role="button"
                  data-slide="next"
                >
                  <i class="fas fa-arrow-right"></i>
                </a>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of  partners -->
    
      <!-- newsletter section -->
      <section id="newsletter" class="newsletter py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 mx-auto text-center">
              <h2 class="text-uppercase">
                newsletter
              </h2>
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti blanditiis similique eum, aut culpa maiores cupiditate alias exercitationem error nesciunt.
              </p>
              <form action="">
                <div class="input-group mt-5 mb-4">
                  <input type="text" class="text-capitalize form-control" placeholder="enter your email">
                  <div class="input-group-append">
                  <div class="input-group-text form-icon">
                    <i class="fas fa-envelope"></i>
                  </div>
                  </div>
                </div>
                <button type="submit" class=" btn btn-yellow">subscribe</button>
              </form>
            </div>
          </div>
        </div>
      </section>
      <!-- end of newsletter section -->
    
      <!-- skills section -->
      <section id="skills" class="skills py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-truck"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  free shipping
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-comment-dollar"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  price promise
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-award"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  lifetime warranty
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of skills section -->

    10. Now friends we just need to add below code into angulardemo/src/app/store/store.component.html file:

    <div class="banner-store d-flex pl-3 pl-lg-5 align-items-center text-center justify-content-center">
        <div>
          <h1 class="text-slanted text-capitalize display-4 text-yellow">
              comfy sloth
          </h1>
          <h1 class="text-capitalize display-4 font-weight-bold">
              our store
          </h1>
        </div>
    </div>
    <!-- totals -->
    <section class="totals py-5">
        <div class="container-fluid">
          <div class="row">
            <div class="col text-uppercase text-center">
              <div class="row">
                <!-- single column -->
              <div class="col-10 mx-auto col-md-2">
                <p class="text-uppercase">
                  products
                </p>
              </div>
              <!-- end of single column -->
              <!-- single column -->
              <div class="col-10 mx-auto col-md-4">
                <p class="text-uppercase">
                  name of products 
                </p>
              </div>
              <!-- end of single column -->
              <!-- single column -->
              <div class="col-10 mx-auto col-md-2">
                <p class="text-uppercase">
                  price
                </p>
              </div>
              <!-- end of single column -->
              <!-- single column -->
              <div class="col-10 mx-auto col-md-2">
                <p class="text-uppercase">
                  quantity
                </p>
              </div>
              <!-- end of single column -->
              <!-- single column -->
              <div class="col-10 mx-auto col-md-2">
                <p class="text-uppercase">
                  total
                </p>
              </div>
              <!-- end of single column -->
              </div>
              <hr>
              <!-- end of columns -->
              <div class="row my-3 align-items-center">
                <!-- all about product -->
                <div class="col-10 mx-auto col-md-2 my-3">
                  <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                </div>
                <div class="col-10 mx-auto col-md-4">
                  <p class="text-uppercase">
                    comfortable chair
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <div class="d-flex justify-content-center align-items-center">
                  <span class="btn btn-black mx-1">-</span>
                  <span class="btn btn-black mx-1">4</span>
                  <span class="btn btn-black mx-1">+</span>
                  </div>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <!-- end of all about product -->
                <!-- all about product -->
                <div class="col-10 mx-auto col-md-2 my-3">
                  <img src="assets/img/img-products/product-2.png" alt="" class="img-fluid">
                </div>
                <div class="col-10 mx-auto col-md-4">
                  <p class="text-uppercase">
                    comfortable chair
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <div class="d-flex justify-content-center align-items-center">
                  <span class="btn btn-black mx-1">-</span>
                  <span class="btn btn-black mx-1">4</span>
                  <span class="btn btn-black mx-1">+</span>
                  </div>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <!-- end of all about product -->
                <!-- all about product -->
                <div class="col-10 mx-auto col-md-2 my-3">
                  <img src="assets/img/img-products/product-3.png" alt="" class="img-fluid">
                </div>
                <div class="col-10 mx-auto col-md-4">
                  <p class="text-uppercase">
                    comfortable chair
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <div class="d-flex justify-content-center align-items-center">
                  <span class="btn btn-black mx-1">-</span>
                  <span class="btn btn-black mx-1">4</span>
                  <span class="btn btn-black mx-1">+</span>
                  </div>
                </div>
                <div class="col-10 mx-auto col-md-2">
                  <p class="text-uppercase">
                    100.00$
                  </p>
                </div>
                <!-- end of all about product -->
              </div>
              <!-- buttons -->
              <div class="row my-3">
                <div class="col-sm-6 mx-auto col d-flex justify-content-center flex-wrap">
                  <button type="button" class="btn btn-black my-2">Continue shipping</button>
                  <button type="button" class="btn btn-yellow ml-2 my-2">checkout</button>
                </div>
              </div>
              <!-- cart total -->
              <div class="row">
                <div class="col mx-auto col-sm-8 col-md-6 col-lg-4 my-3">
                  <div class="card card-body bg-secondary text-uppercase">
                    <div class="card-title text-white">
                      <h6>cart total</h6>
                    </div>
                    <div class="row">
                      <!-- single row -->
                      <div class="col-6">
                        SUB TOTOAL
                      </div>
                      <div class="col-6">
                        $900.00
                      </div>
                      <!-- end of single row -->
                      <!-- single row -->
                      <div class="col-6">
                        TAX
                      </div>
                      <div class="col-6">
                        $123.00
                      </div>
                      <!-- end of single row -->
                      <!-- single row -->
                      <div class="col-6">
                        SHIPPING
                      </div>
                      <div class="col-6">
                        $90.00
                      </div>
                      <!-- end of single row -->
                      <!-- single row -->
                      <div class="col-6 my-2">
                        ORDER TOTAL
                      </div>
                      <div class="col-6 text-danger my-2">
                        $1000.00
                      </div>
                      <!-- end of single row -->
                    </div>
                  </div>
                </div>
              </div>
              <!-- end of cart total -->
              <!-- end of buttons -->
            </div>
          </div>
        </div>
      </section>
      <!-- end of totals -->
    
      <!-- featured section -->
      <section id="featured" class="featured py-5">
        <div class="container">
          <div class="row my-3">
            <div class="col-10 mx-auto text-center">
              <h1 class="text-uppercase">
                featured products
              </h1>
              <p class="text-muted">
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Tenetur, deleniti?
              </p>
            </div>
          </div>
          <div class="row">
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-1.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-6.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-2.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-3.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-4.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
            <!-- single product -->
            <div class="col-10 mx-auto col-md-6 col-lg-4">
              <div class="featured-container p-5">
                <img src="assets/img/img-products/product-5.png" alt="" class="img-fluid">
                <span class="featured-search-icon" data-toggle="modal" data-target="#productModal">
                  <i class="fas fa-search"></i>
                </span>
                <a href="#" class="featured-store-link text-capitalize">add to cart</a>
              </div>
              <h6 class="text-capitalize text-center my-2">
                special product
              </h6>
              <h6 class="text-center">
                <span class="text-muted old-price mx-2">$200</span>
                <span>$100</span>
              </h6>
            </div>
            <!-- end of single product -->
          </div>
        </div>
      </section>
      <!-- end of featured section -->
    
      <!-- partners -->
      <section class="partners py-5">
        <div class="container">
          <div class="row">
            <!-- compnay carousel -->
            <div class="col-6 col-md-6 col-lg-4 mx-auto">
              <div
                id="partnerCarousel"
                class="carousel slide "
                data-ride="carousel"
              >
                <div class="carousel-inner">
                  <!-- single item -->
                  <div class="carousel-item active">
                    <img
                      src="assets/img/company-logos/company-logo-1.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-2.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-3.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-4.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item ">
                    <img
                      src="assets/img/company-logos/company-logo-5.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                  <!-- single item -->
                  <div class="carousel-item">
                    <img
                      src="assets/img/company-logos/company-logo-6.png"
                      class="d-block w-100"
                      alt="partner company"
                    />
                  </div>
                  <!-- end single item -->
                </div>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-prev"
                  role="button"
                  data-slide="prev"
                >
                  <i class="fas fa-arrow-left"></i>
                </a>
                <a
                  href="#partnerCarousel"
                  class="carousel-control-next"
                  role="button"
                  data-slide="next"
                >
                  <i class="fas fa-arrow-right"></i>
                </a>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of  partners -->
    
      <!-- newsletter section -->
      <section id="newsletter" class="newsletter py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 mx-auto text-center">
              <h2 class="text-uppercase">
                newsletter
              </h2>
              <p>
                Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti blanditiis similique eum, aut culpa maiores cupiditate alias exercitationem error nesciunt.
              </p>
              <form action="">
                <div class="input-group mt-5 mb-4">
                  <input type="text" class="text-capitalize form-control" placeholder="enter your email">
                  <div class="input-group-append">
                  <div class="input-group-text form-icon">
                    <i class="fas fa-envelope"></i>
                  </div>
                  </div>
                </div>
                <button type="submit" class=" btn btn-yellow">subscribe</button>
              </form>
            </div>
          </div>
        </div>
      </section>
      <!-- end of newsletter section -->
    
      <!-- skills section -->
      <section id="skills" class="skills py-5">
        <div class="container">
          <div class="row">
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-truck"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  free shipping
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-comment-dollar"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  price promise
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
            <div class="col-10 col-md-6 col-lg-4 mx-auto d-flex my-3">
              <div class="skill-icon mr-3">
                <i class="fas fa-award"></i>
              </div>
              <div class="skill-text">
                <h3 class="text-uppercase text-white">
                  lifetime warranty
                </h3>
                <p class="text-capitalize text-muted">
                  Lorem, ipsum dolor sit amet consectetur adipisicing elit. Odio, obcaecati!
                </p>
              </div>
            </div>
          </div>
        </div>
      </section>
      <!-- end of skills section -->

    11. Now friends we just need to add below code into angulardemo/src/app/app-routing.module.ts file:

    import { NgModule } from '@angular/core';
    import { RouterModule, Routes } from '@angular/router';
    import { HomeComponent } from './home/home.component';
    import { ProductsComponent } from './products/products.component';
    import { SingleproductComponent } from './singleproduct/singleproduct.component';
    import { StoreComponent } from './store/store.component';
    const routes: Routes = [
      { path: '', component: HomeComponent },
      { path: 'products', component: ProductsComponent },
      { path: 'singleproduct', component: SingleproductComponent },
      { path: 'store', component: StoreComponent }
    ];
    
    @NgModule({
      imports: [RouterModule.forRoot(routes)],
      exports: [RouterModule]
    })
    export class AppRoutingModule { }
    

    Friends in the end must run ng serve command into your terminal to run the angular 17 ecommerce project (localhost:4200).

    Guys click here to check the Angular 17 Bootstrap 5 Free Templates.

    Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.

    Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.

    Jassa

    Thanks

  • Benefits of ITIL Certification: How It Can Boost Your IT Career

    Benefits of ITIL Certification: How It Can Boost Your IT Career

    For a profession to advance in the quickly changing information technology (IT) field, one must keep one step ahead of the competition and show proficiency in IT service management. The ITIL certification is helpful in this situation. Information Technology Infrastructure Library (ITIL) is a widely used framework to manage IT services. Having ITIL Qualification is a big step for IT professionals since it shows they know the best methods for managing IT services. In this blog, we will explore ITIL certification’s different advantages and how it might advance your IT career along the lucrative ITIL Certification Path.

    Table of contents

    • Understanding ITIL Certification 
    • Boosting Your IT Career with ITIL Certification  
    • Advantages of Advancing Along the ITIL Certification Path 
    • Conclusion

    Understanding ITIL Certification

    The ITIL framework provides a comprehensive set of best practices and recommendations for managing IT services and aligning them with the organisation’s needs. It covers various aspects of IT service management, including service strategy, service design, service transition, service operation, and continuous service improvement.

    Each level of certification is available through the ITIL Certification Path focuses on a different facet of IT service management. These levels consist of: 

    1. ITIL Foundation: A grasp of ITIL vocabulary, ideas, and fundamental principles is provided through this entry-level certification.
    2. ITIL Practitioner: Concentrates on implementing and customising ITIL principles in practical settings to enhance IT service management.  
    3. ITIL Intermediate: Consists of several modules, each examining a particular ITIL process or stage in the lifecycle. 
    4. ITIL Expert: Exhibits a thorough comprehension of ITIL ideas and the capacity to apply them in challenging circumstances. 
    5. ITIL Master: The top qualification, demonstrating knowledge of ITIL concepts and the capacity to use them to meet organisational goals.

    Boosting Your IT Career with ITIL Certification 

    Following are some tips for advancing your IT profession with ITIL certification:

    1. A systematic foundation for comprehending the best practices in IT service management is provided by ITIL certification. It provides experts with a consistent language and method to handle IT services successfully. Certified professionals become more effective by gaining insights into service strategy, design, and ongoing development. 
    2. Organisations worldwide have embraced ITIL as the industry standard for IT service management. Your reputation is increased, and you become a sought-after professional on the worldwide job market if you hold an ITIL certification.
    3. If you have an ITIL certification, you can apply for various career possibilities in IT service management jobs. Candidates with ITIL certifications are frequently given preference by employers, which results in more excellent career prospects and employment opportunities. 
    4. ITIL ensures that business goals are achieved and services delivered effectively by bringing IT service management in line with industry best practices. ITIL-certified personnel are crucial in advancing this alignment as organisations seek service excellence. 
    5. ITIL-certified workers have the skills and tools to improve service delivery and simplify procedures. Organisations may increase their production and efficiency by embracing ITIL practices. 

    Advantages of Advancing Along the ITIL Certification Path

    Let’s explore the advantages of advancing along the ITIL certification path:

    1. Moving up the ITIL certification levels demonstrates your dedication to lifelong learning and growth. It proves both your expanding knowledge of IT service management and your aptitude for handling trickier problems. 
    2. Specialisation in ITIL topics, such as Service Design, Service Transition, or Continual Service Improvement, is available at the ITIL Intermediate and Expert levels. These areas of specialisation may lead to specialised job options. 
    3. You may be eligible for leadership positions in IT service management if you reach the ITIL Expert or Master level. These credentials demonstrate your organisational leadership and ITIL initiative implementation skills. 
    4. You can explore consultancy prospects with an ITIL Master certification, assisting businesses in implementing ITIL best practices and streamlining their IT service management procedures.

    Conclusion

    The ITIL certification is an effective tool for IT professionals who want to further their careers and demonstrate their expertise in IT service management. Through the ITIL Certification Path, individuals may develop from a fundamental comprehension to mastery of ITIL concepts, making them valuable assets in businesses working to improve the delivery of IT services. The benefits of obtaining an ITIL certification include global recognition, expanded career options, increased efficiency, and the ability to align IT services with company objectives. For more information, check this page out:The Knowledge Academy.

  • How to save and share data with cookies in react js?

    How to save and share data with cookies in react js?

    Hello friends, welcome back to my blog. Today in this blog post, I am going to tell you, How to save and share data with cookies in react js?

    Live Demo

    For reactjs new comers, please check the below link:

    Reactjs Basic Tutorials

    How to save and share data with cookies in react js?
    How to save and share data with cookies in react js?

    Friends here is the code snippet for How to upload, preview and save image inside folder in react js? and please use this code snippet carefully to avoid the mistakes:

    1. Firstly friends we need fresh reactjs setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system:

    npx create-react-app reactdemo 
    
    cd reactdemo 
    
    npm install js-cookie
    
    npm start // run the project

    2. Finally friends we need to add below code into our src/App.js file to get final output on web browser:

    import Cookies from "js-cookie";
    
    function App() {
      // Method to set data in cookies which will expire in 7 days
      const SetCookie = () => {
        Cookies.set("token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", {
          expires: 7,
        });
      };
    
      // Method to get data from cookies
      const GetCookie = () => {
        alert(Cookies.get("token"));
      };
    
      // Method to remove data from cookies
      const RemoveCookie = () => {
        Cookies.remove("token");
      };
      return (
        <div className="container p-5">
          <h6>1. Click on Set Cookie to set data in cookies</h6>
          <h6>2. Click on Get Cookie to display the data</h6>
          <h6>3. Click on Remove Cookie to remove data from cookies</h6>
          <button className="btn btn-primary me-2" onClick={SetCookie}>Set Cookie</button>
          <button className="btn btn-secondary me-2" onClick={GetCookie}>Get Cookie</button>
          <button className="btn btn-danger" onClick={RemoveCookie}>Remove Cookie</button>
        </div>
      );
    }
    
    export default App;

    Now we are done friends. If you have any kind of query or suggestion or any requirement then feel free to comment below.

    Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.
    I will appreciate that if you will tell your views for this post.Nothing matters if your views will good or bad.

    Jassa

    Thanks

  • Reactjs Nodejs Image Upload Show And Save Inside Folder Working Demo

    Reactjs Nodejs Image Upload Show And Save Inside Folder Working Demo

    Hello friends, welcome back to my blog. Today in this blog post, I am going to tell you, Reactjs Nodejs Image Upload Show And Save Inside Folder Working Demo.

    Guys this demo is in React Twilio Chat Image Upload and Send

    Reactjs image upload and save

    For reactjs new comers, please check the below link:

    Reactjs Basic Tutorials


    Friends here is the code snippet for How to upload, preview and save image inside folder in react js? and please use this code snippet carefully to avoid the mistakes:

    1. Firstly friends we need fresh reactjs setup and for that we need to run below commands into our terminal and also w should have latest node version installed on our system:

    npx create-react-app reactimageupload
    
    cd reactimageupload
    
    npm start // run the project

    2. Now we need to run below commands to get bootstrap(for good layout), react image uploading(for image upload ) and axios(to post image request to node)  modules into our react js app:

    npm install bootstrap --save
    
    npm install --save react-images-uploading
    
    npm install axios --save
    
    npm start

    3. Finally friends we need to add below code into our src/App.js file to get final output on web browser:

    import React from 'react';
    import './App.css';
    
    //bootstrap
    import 'bootstrap/dist/css/bootstrap.min.css';
    
    //For Image Save
    import axios from 'axios';
    
    //For Image Upload
    import ImageUploading from "react-images-uploading";
    
    
    class App extends React.Component {
      onChange = (imageList) => {
        // data for submit
        
        // Create an object of formData 
        const formData = new FormData(); 
         
        // Update the formData object 
        formData.append( 
          "myFile", 
          imageList[0].file, 
          imageList[0].file.name
        ); 
       
        // Details of the uploaded file 
        console.log(imageList[0].file); 
       
        // Request made to the backend api 
        // Send formData object to my nodejs for save in folder
        axios
          .post("http://localhost:5000/public/attachments", formData, {
            headers: {
              "Content-Type": "multipart/form-data",
             
            },
          })
          .then((response) => {
        // handle the response
            console.log(response);
          })
          .catch((error) => {
            // handle errors
            console.log(error);
          });
      }; 
       
    
      render() {
       
        return (
         
          <div className="maincontainer">
            
            <h1 className="mr-5 ml-5 mt-5">TheRichPost</h1>
            <div className="container mb-5 mt-5">
            
            <ImageUploading
            onChange={this.onChange}
          >
            {({ imageList, onImageUpload }) => (
              // write your building UI
              <div className="imageuploader">
    
                <div className="mainBtns">
                <button className="btn btn-primary mr-1" onClick={onImageUpload}>Upload Image</button>
                
                </div>
                {imageList.map((image) => (
                  <div className="imagecontainer" key={image.key}>
                    <img src={image.dataURL} />
                    
                  </div>
                ))}
              </div>
            )}
          </ImageUploading>
    
           
                
          </div>
    
          
          </div>
          
    )
    };
    }
    
    export default App;

    4. In the end friends we need to add below code into our src/App.css file to style the things:

    .imagecontainer {
      float: left;
      width: 215px;
      height: auto;
      margin: 10px 0;
    }
    .imagecontainer img{width: 150px; margin:10px 0;}
    .imageuploader{width: 800px; height: 400px; background-color:#cbeefc;padding: 10px;}
    5. For moving image inside folder, friends here is my nodejs file App.js code, which I have used in reactjs:

    Guys I have used nodejs to move image inside the nodeproject/public/attachments folder

    Guys for node you have to add few modules like express, multer, cors etc

    // Node/Express
    const express = require('express');
    const http = require('http');
    const path = require('path');
    const bodyParser = require('body-parser');
    const multer = require('multer')
    
    
    //attachments upload
    const storage = multer.diskStorage({
      destination: (req, file, cb) => {
        cb(null, 'public/attachments/')
      },
      filename: (req, file, cb) => {
        cb(null, file.originalname)
      },
    })
    
    const upload = multer({ storage: storage })
    
    // Create Express webapp
    const app = express();
    const cors = require('cors');
    app.use(cors());
    app.use(express.static(path.join(__dirname, 'public')));
    
    // Add body parser for Notify device registration
    app.use(bodyParser.urlencoded({extended: true}));
    app.use(bodyParser.json());
    
    app.use(router);
    //attachments upload
    router.post('/public/attachments', upload.single('file'), function (req, res) {
      res.json({})
    })
    
    // Create http server and run it
    const server = http.createServer(app);
    const port = process.env.PORT || 5000;
    server.listen(port, function() {
      console.log('Express server running on *:' + port);
    });
    
    module.exports = app;

    Now we are done friends. If you have any kind of query or suggestion or any requirement then feel free to comment below.

    Guys in my next post, I will tell you, how to upload and save multiple images in react js in folder?

    Note: Friends, I just tell the basic setup and things, you can change the code according to your requirements. For better understanding must watch video above.
    I will appreciate that if you will tell your views for this post.Nothing matters if your views will good or bad.

    Jassa

    Thanks

  • Vuejs Vue 3 free admin dashboard template

    Vuejs Vue 3 free admin dashboard template

    Hello friends, welcome back to my blog. Today this blog post will tell you Vuejs Vue 3 free admin dashboard template.

    Guys in this project below things have been used:

    1. Vue 3(vuejs)
    2. vue-awesome-paginate
    3. axios
    4. Responsive layout
    5. Charts(chartjs)
    6. Progress Bars
    7. Forms
    8. Date Pickers
    9. Login/Sign up pages
    10. Multi Language Supports
    11. Maps (MapLibre, Yandex, Leaflet, amMap)
    12. 404 pages
    13. Modals
    14. Text editors
    15. More…
    Live Demo

    Guys if you are new in Vue then please check the below links:

    1. Vuejs
    2. Ecommerce Vue Templates
    Vuejs Vue 3 free admin dashboard template
    uejs Vue 3 free admin dashboard template

    Guys here is the git repo link:

    Git Repo

    Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.

    Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.

    I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.

    Jassa

    Thanks