Wednesday, 11 May 2022

Prevent caching data from database in PhP FullCalendar

 <script>
document.addEventListener('DOMContentLoaded', function() {     
        var calendarEl = document.getElementById('calendar');
        var events = [];
        var eventsCache = {};
        var calendar = new FullCalendar.Calendar(calendarEl, {       
        headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
      },     
          eventSources: [{
            cache: false,
              url: 'loadevent.php',
              type: 'POST',
              extraParams: function() {        //  Prevent caching data from database in fullcalendar
                  return {
                    cachebuster: new Date().valueOf()
                  };
                },             
          }],     
    });       
        calendar.render();
        calendar.refetchEvents();       
});   
</script>

Friday, 6 May 2022

How to configure PHP Calendar with events from database?

Download fullcalendar  file  from : https://github.com/fullcalendar/fullcalendar/releases

PhP Page

Inside <HEAD> Tag

<link href='fullcalendar-5.10.2/lib/main.min.css' rel='stylesheet' /> // GIVE EXACT FILE PATH   main.min.css, main.min.js
<script src='fullcalendar-5.10.2/lib/main.min.js'></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
        var calendarEl = document.getElementById('calendar');       
        var calendar = new FullCalendar.Calendar(calendarEl, {     
        headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
      },  
      events: 'loadevent.php',
        },             
            displayEventTime: false,
            selectHelper:true,
            weekNumbers: true,
            navLinks: true, // can click day/week names to navigate views
            nowIndicator: true,
            weekNumbers: true,
            dayMaxEventRows: true, // for all non-TimeGrid views
              views: {
                timeGrid: {
                  dayMaxEventRows: 6 // adjust to 6 only for timeGridWeek/timeGridDay
                }
              },         
    });
          calendar.render();
});   
    </script>

Inside BODY Tag

<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h1 align="center" style=" padding: 3%;"> Calendar Heading</h1>  
<div id='calendar'></div>
</div>
</div>
</div>
</body>

loadevent.php

--> Database connection establishment

$data = array();
$stmt = $con->prepare(" SQL QUERY  ");
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    $data[] = array(
        'id'   => $row["No"],
        'title'   => $row["title"],                                                                            // DB ATTRIBUTE NAME FOR TITLE
        'start'   => $row["DATE1"],                                                                     // DB START DATE ENTRY in yy-mm-dd 00:00:00 format
        'end'   => $row["DATE2"],                                                                     // DB END DATE ENTRY in yy-mm-dd 00:00:00 format
        'description' =>   $row[" Description "],    // DB Description attribute
      
    );
    //result is in row
}

echo json_encode($data);

Tuesday, 3 May 2022

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given

Reason for the error:
You are mixing mysqli and mysql extensions in the code, which will not work. mysqli has many improvements over the original mysql extension, so it is recommended to use mysqli .

Friday, 29 April 2022

Pre Populate jquery Token input textbox with PhP MySQLi Resultset

Tokeninput is a jQuery plugin that allows users to select multiple items from a predefined list. 
  • Download jquery token input plugin from https://loopj.com/jquery-tokeninput/
  • Extract the zip file and put jquery.tokeninput.js and token-input.css in the application root folder.
  • Download the latest version of jquery.min.js
SQL

CREATE TABLE `user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(40) DEFAULT NULL,
  `designation` varchar(50) DEFAULT NULL,
  `email` varchar(40) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO `user` (`id`, `name`, `designation`, `email`) VALUES
(1, 'User1', 'Senior Manager', 'user1@gm.com'),
(2, 'User2', 'Head of IT', 'aru@rrg.com');

PhP Code

<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Token input Demo</title>
<meta charset="utf-8">
<link
href="https://fonts.googleapis.com/css?family=Lato:400,700,300|Open+Sans:400,300,600,700"
rel="stylesheet" />
<link href="css/bootstrap.min.css?ver=3.3.5" rel="stylesheet" />
<link href="css/token-input.css" rel="stylesheet" />
</head>
<?php
error_reporting(0);
$con = mysqli_connect("localhost", "root", "", "rgcbres_accounts");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<script src="js/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="js/jquery.tokeninput.js"></script>
<script>
    $(document).ready(function () {
    $("#nameinput").tokenInput("tget-users.php", {       
    });
});
</script>
<body>
<div id="content" class="site-content">
<div class="container">
<h4>Token Input Demo</h4>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"
id="searchform" enctype="multipart/form-data">
<div class="col-sm-12">
<div class="form-group">
<label class="control-label col-sm-3" for="scst">Name <font
style="color: red;">*</font></label>
<div class="col-sm-6">
<div class="input-group">
<input type="text" id="nameinput" name="nameinput" required=""
class="form-control" placeholder="" />
</div>
</div>
</div>
</div>
<div class="col-sm-12">
<div class="col-sm-6">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-default" name="Submit"
value="Submit">
</div>
</div>
</div>
</form>
<?php
if ($_POST['Submit']) {
    if (trim($_POST['nameinput']) != "") {
        $selected_name_arr = array();
        $selected_nameinput = $_POST['nameinput'];
        $selected_name_arr = explode(',', $selected_nameinput);       
        ?>  
            <div class="col-sm-12">
<form class="form-horizontal" id="saveform" action="#" method="post"
enctype="multipart/form-data">
<table id="editableTable" class="table table-bordered">
<thead>
<tr>
<td style="width: 5%;"><b>SL.No.</b></td>
<td style="background-color: #f0ad4e; width: 15%;"><b> Name </b></td>
<td style="background-color: #f0ad4e; width: 20%;"><b>
Designation </b></td>
<td style="background-color: #f0ad4e; width: 20%;"><b> Email </b></td>
</tr>
</thead>
<tbody>     
            <?php
        $sql = "SELECT * FROM user WHERE id IN (" . implode(',', $selected_name_arr) . ")";
        $result = $con->query($sql);
        $sino = 1;
        if ($result->num_rows > 0) {
            // output data of each row
            while ($row = $result->fetch_assoc()) {
                ?>
                    <tr>
<td><?php echo $sino; ?>                
<td><?php echo $row[name]; ?></td>
<td><?php echo $row[designation]; ?></td>
<td><?php echo $row[email]; ?></td>
</tr>
                 <?php
                $sino ++;
            }
        }
        ?>
            </tbody>
</table>
</div>
</form>           
            <?php
    }
}
?>
</div>
</div>
</body>
</html>


tget-users.php

<?php 
$con = mysqli_connect("localhost", "root", "", "rgcbres_accounts");
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$users_arr = array();
$searchTerm = $_GET['q'];
     $query = $con->query("SELECT id,name FROM user  WHERE name LIKE '".$searchTerm."%' ORDER BY name ASC  LIMIT 15");  
    if($query->num_rows > 0){
        while($row = $query->fetch_assoc()){
            $users_arr[] = $row;
        }
    }    
    echo json_encode($users_arr);
?>     
    






Distributed Systems

 Distributed Systems

  • Consists of multiple computers and software components that communicate through a computer network. 
  • Can consist of any number of possible configurations, such as mainframes, workstations, personal computers, and so on. 
  • The computers interact with each other and share the resources of the system to achieve a common goal
Advantages of Distributed Systems 
  1. Reliability (fault tolerance) 
    • The important advantage of distributed computing system is reliability. If some of the machines within the system crash, the rest of the computers remain unaffected and work does not stop. 
  2. Scalability 
    • In distributed computing the system can easily be expanded by adding more machines as needed. 
  3. Sharing of Resources 
    • Shared data is essential to many applications such as banking, reservation system. As data or resources are shared in distributed system, other resources can be also shared (e.g. expensive printers).
  4. Flexibility 
    • As the system is very flexible, it is very easy to install, implement and debug new services. 
  5. Speed 
    • A distributed computing system can have more computing power and it's speed makes it different than other systems. 
  6. Open system 
    • As it is open system, every service is equally accessible to every client i.e. local or remote. 
  7. Performance 
    • The collection of processors in the system can provide higher performance (and better price/performance ratio) than a centralized computer. 
Disadvantages of Distributed Systems 
  1. Troubleshooting 
    • Troubleshooting and diagnosing problems. 
  2. Software 
    • Less software support is the main disadvantage of distributed computing system. 
  3. Networking 
    • The network infrastructure can create several problems such as transmission problem, overloading, loss of messages.
  4. Security 
    • Easy access in distributed computing system increases the risk of security and sharing of data generates the problem of data security

Wednesday, 27 April 2022

Platform as a service (PaaS)

Platform as a service (PaaS) 

  • The PaaS model provides the tools within an environment needed to create applications that can run in a Software as a Service model 
  • PaaS is application middleware offered as a service to developers, integrators, and architects. 
  • Development and Operation teams use PaaS to design, build, and deliver customized applications or information services. 
  • Instead of relying on standardized SaaS, teams using PaaS have more control over solution architecture, quality of service, user experience, data models, identity, integration, and business logic.
  • In PaaS you are given a toolkit to work with, a virtual machine to run your software on, and it is up to you to design the software and its user-facing interface in a way that is appropriate to your needs.
  • So PaaS systems range from full-blown developer platforms like Windows Azure to systems like Drupal, Squarespace, Wolf, and others where the tools are modules that are very well developed and require almost no coding.
  • PaaS solution will ensure the availability of the application despite downtime of the underlying virtual machine by automatically creating a new instance of the application on a new virtual machine when the machine goes down.
  • PaaS systems can be used to host a variety of cloud services
    • Online portal-based applications like Facebook that need to scale to thousands of users 
    • Startup who wants to host their new application in a Software-as-a-Service model 
    • Can also be used for massively parallel computations 
    • Enterprises can deploy their Line-of-Business applications in the cloud, taking advantage of the scale and availability while still maintaining security and privacy of data
PaaS examples 

Windows Azure 
Google App Engine 
Hadoop platform 
Drupal 
Wolf Frameworks 
Force.com 

Amazon Web Services (AWS)

AWS is Amazon’s umbrella description of all of their web-based technology services.  Main services include:

  • Compute 
  • Storage
  • Database
  • Deployment & Management 
  • Application Services 
  • Networking 
  • Content Delivery

Category

Service

Compute

  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon Elastic MapReduce (Amazon EMR)
  • Auto scaling
  • Elastic Load Balancing

Storage

  • Amazon Simple Storage Service (Amazon S3) Amazon Glacier
  • AWS Storage Gateway
  • AWS Import/Export

Content Delivery

  • Amazon CloudFront

Database

  • Amazon Relational Database Service (Amazon RDS)
  • Amazon DynamoDB
  • Amazon ElastiCache

Deployment & Management

  • AWS Identity and Access Management (IAM) Amazon CloudWatch
  • AWS Elastic Beanstalk
  • AWS CloudFormation

Application Services

  • Amazon Simple Queue Service (SQS)
  • Amazon Simple Notification Service (Amazon SNS)
  • Amazon Simple Email Service (Amazon SES)
  • Amazon CloudSearch

Networking

  • Amazon Virtual Private Cloud (Amazon VPC)
  • Amazon Route 53
  • AWS Direct Connect