<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Raj Madisetti</title>
    <description>The latest articles on DEV Community by Raj Madisetti (@rmadisetti3).</description>
    <link>https://dev.to/rmadisetti3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F104276%2Fea785b5b-af94-404b-9d42-f784de65697d.jpeg</url>
      <title>DEV Community: Raj Madisetti</title>
      <link>https://dev.to/rmadisetti3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rmadisetti3"/>
    <language>en</language>
    <item>
      <title>Fraudulent Resource Consumption Attacks and a Gatekeeper Solution</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Wed, 17 Sep 2025 20:38:52 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/fraudulent-resource-consumption-attacks-and-a-gatekeeper-solution-302</link>
      <guid>https://dev.to/rmadisetti3/fraudulent-resource-consumption-attacks-and-a-gatekeeper-solution-302</guid>
      <description>&lt;p&gt;Hello cyber enthusiasts and professionals,&lt;/p&gt;

&lt;p&gt;Today, I will be presenting the persistent threat of Fraudulent Resource Consumption (FRC) attacks and a proposed Gatekeeper solution below.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;Fraudulent Resource Consumption (FRC) attacks are a stealthy, yet prevalent threat to Cloud Service Providers with a goal to exploit unattended vulnerabilities and deplete CSP resources. These attacks aim to take advantage of the pay-per-use algorithm that most Cloud Service Providers such as Amazon Web Services and Microsoft Azure use. FRC attacks involve an attacker covertly gaining access to an unsuspecting Cloud user’s account and setting up automated fraudulent resource requests (botnet) in order to siphon network resources for personal gain or malicious intent. Damages to CSP’s are based on the utility pricing model, the attacker’s skill level, and motivation. &lt;/p&gt;

&lt;p&gt;FRC attacks are extremely important issues to address for Cloud users and Cloud Service Providers alike. They can critically disrupt organizational operations by dominating bandwidth and storage which can significantly slow or shut down Cloud servers. If servers are impacted heavily, it can lead to serious financial losses along with legal implications if contracts with private businesses are involved. Oftentimes, these attacks can also serve as distractions to lure attention away from more probing security threats such as data theft and network infiltration. Therefore, we should be diligent to implement a quick and methodical solution to Fraudulent Resource Consumption attacks in order to completely remove the problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3corxvmoh00dsf5vn8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3corxvmoh00dsf5vn8v.png" alt="gatekeeper diagram" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;This blog aims to introduce an effective solution to this FRC problem using a Gatekeeper medium in order to filter user requests to a Cloud service. This Gatekeeper can be used as another form of authentication in order to sanitize each Cloud request to verify its source and priority. If a user cannot be verified, its requests will be assigned to the lowest possible priority and will be severely limited as to not incur any significant FRC costs. In essence, we will allow normal and verified traffic to pass through efficiently through the Gatekeeper while clamping down on questionable Cloud requests. This will, in theory, eliminate the entire threat of FRC attacks in our Cloud model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Experimental Approach
&lt;/h2&gt;

&lt;p&gt;Normal request traffic, along with a simulated FRC (Fraudulent Resource Consumption) attack, was sent to an endpoint with and without a gatekeeper mechanism. The simulation involved ten trials of sending ten minutes of normal traffic at 200 requests per minute, five minutes of elevated traffic at 300 requests per minute, and another ten minutes of normal traffic to invoke Lambda functions, both with and without the Gatekeeper. The graphs were analyzed in Amazon Web Services (AWS). Both graphs showed noticeable peaks during the middle five minutes. The effectiveness of the Gatekeeper was measured by the reduction in the average requests per minute (RPM) of that peak with a clearly defined start and end time. The experiment is considered successful if the Gatekeeper reduces the average RPM of the peak by 70% throughout the ten trials.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvdd402cqyn4rvbw7q04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsvdd402cqyn4rvbw7q04.png" alt="gatekeeper diagram" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Gatekeeper proof of concept (POC) is a Python application with a client and server side. The client side sends requests with a payload (function name with user priority, region, and path) to the server on behalf of a predetermined number of users. The server side processes the requests from the client and executes them based on function priority. If a user has a low priority, their requests will be limited and will take longer to execute. This mechanism reduces the FRC peak for the Gatekeeper. A Python algorithm was used to send normal and FRC traffic to a Lambda function endpoint in AWS. CloudWatch Analytics was used to produce accurate line graphs to track function invocations as a metric for requests per minute.&lt;/p&gt;

&lt;h2&gt;
  
  
  Metrics for Evaluation
&lt;/h2&gt;

&lt;p&gt;To evaluate and analyze the performance we can consider the following metrics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Requests per minute (RPM): Measures the rate of requests being sent.&lt;/li&gt;
&lt;li&gt;Response time: Time taken to get a response from the server.&lt;/li&gt;
&lt;li&gt;Success rate: Number of successful responses versus the total number of requests.&lt;/li&gt;
&lt;li&gt;Error rate: Number of failed requests.&lt;/li&gt;
&lt;li&gt;Rate limit hits: Number of times the requests are rate-limited.&lt;/li&gt;
&lt;li&gt;Retry count: Number of times requests are retried due to rate limiting.&lt;/li&gt;
&lt;li&gt;Latency: Time delay between sending a request and receiving a response.&lt;/li&gt;
&lt;li&gt;System load: CPU, memory, and network usage on the server handling the requests.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>frc</category>
      <category>aws</category>
      <category>cloud</category>
      <category>gatekeeper</category>
    </item>
    <item>
      <title>Large Language Models for One-Day Vulnerability Detection</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Tue, 16 Sep 2025 20:51:53 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/large-language-models-for-one-day-vulnerability-detection-oi2</link>
      <guid>https://dev.to/rmadisetti3/large-language-models-for-one-day-vulnerability-detection-oi2</guid>
      <description>&lt;p&gt;Hello fellow cybersecurity professionals and enthusiasts,&lt;/p&gt;

&lt;p&gt;In this article, I will share my graduate capstone project titled &lt;em&gt;Large Language Models for One-Day Vulnerability Detection&lt;/em&gt; that details an innovative penetration testing framework that incorporates natural language processing and large language model (LLM) driven multi-agent systems to optimize one-day vulnerability detection with an accuracy of &lt;strong&gt;89.5%&lt;/strong&gt; and a runtime of less than 30 seconds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;New software vulnerabilities are discovered and dis-&lt;br&gt;
closed daily through Common Vulnerabilities and Exposures (CVE) records, which provide standardized documentation of these flaws. Once publicly accessible, these are known as one-day vulnerabilities. Despite disclosure, many systems remain unpatched during critical windows of exposure, allowing adversaries to exploit these flaws before organizations can mitigate them. Modern enterprises maintain expansive digital footprints, making timely vulnerability mitigation essential. Delays in patching one-day vulnerabilities can lead to data breaches, operational disruption, and financial losses. The core issue lies in the latency between the disclosure of CVEs and remediation, often due to insufficient automation and slow, manual vulnerability analysis. Normally, a team of cyber security experts is required to extensively experiment on a target endpoint to detect all potential vulnerabilities. Once an exposure is identified, a patch is deployed with a corresponding Common Vulnerabilities and Exposures (CVE) report. These reports contain critical information on the selected vulnerability, effects, mitigation strategies, and enumerated examples. This can be tremendously helpful for security teams in recognizing potential bugs within their own complex systems, but it can also pinpoint vulnerable attack surfaces that threat actors can distinguish. As faults eventually slip through undetected without the necessary immediate response time, there can be a considerable time frame in which an attacker can have the exploitational advantage. There is a particular need for an efficient and powerful tool that can scan intricate computer applications and output significant weaknesses and relevant techniques to repair them. In this paper, I will discuss an exceptional penetration testing solution to this urgent challenge that harnesses the capabilities of large-language models (LLMs).&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution and Proposed Methodology
&lt;/h2&gt;

&lt;p&gt;The multi-agent LLM workflow will be explored as shown the figure below in which each agent handles a segment of penetration testing on a target. Furthermore, a target in the case of this experiment is defined as a purposefully vulnerable website (OWASP Vulnerable-Web-Application and Acunetix VulnWeb) in which the LLMs will investigate known potential problems and report back to the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk99707lcdxhrjf034h7m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk99707lcdxhrjf034h7m.png" alt="Figure 1. LLM Multi-Agent Diagram with Exploration, Supervisor, Fuzzer, Executor Agent and Vulnerability-Specific Agent Stages" width="512" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There will be an initial Exploration Agent in which a target is specified and all elements of the target will be analyzed, such as input fields and endpoints. Then, a Supervisor Agent will determine in which areas the vulnerabilities are and the CVEs associated with these particular vulnerabilities. When an attack type is determined, there will be Vulnerability-Specific Agents that deal with and test certain types of cyber security attack, such as SQLi and XSS that extract information from these CVEs. Lastly, the Fuzzer and Executor Agents will produce and test payloads in order to achieve successful exploitation. At the end of the testing, there will be a detailed output report listing the weaknesses in the target and the best methods of how to fix these vulnerabilities. In previous solutions, GPT-4 achieves a success rate of 87%, while all other LLM models achieve 0% across the board. My goal for this project is to attain a success rate greater than 87% in identifying one-day vulnerabilities to help ensure a more secure software ecosystem with proactive and reactive cyber security analysis for web-based systems. &lt;/p&gt;

&lt;p&gt;In terms of grading the performance of the LLM, the purposefully vulnerable website will have a disclosed number of vulnerabilities which will be compared to the comprehensive report published by the multi-agent system at the end of each trial run. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compare the number of true positive vulnerabilities detected by the system with the known vulnerabilities of each testbed.&lt;/li&gt;
&lt;li&gt;Measure precision, recall, and false positives to evaluate effectiveness.&lt;/li&gt;
&lt;li&gt;Assess time-to-detection and compare with manual testing methods.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The experiment will demonstrate not only how many vulnerabilities are found, but also how effectively and quickly the system can identify one-day vulnerabilities after disclosure, thus offering empirical support for the claim of improved cyber security readiness. The Penetration Testing System will utilize GPT-4o-mini by Open AI and LangChain/LangGraph for the Multi-Agent system approach. LangGraph allows for the exchange of information and improvement over time between stages of the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-Agent Workflow
&lt;/h2&gt;

&lt;p&gt;Multi-agent systems benefit significantly from direct collaboration between agents. To fully leverage this capability, an advanced conversational framework was designed that enables seamless inter-agent communication. By temporarily suspending centralized control, the system efficiently manages transfer requests, which improves context sharing and interaction between agents. This approach theoretically enhances operational efficiency and reduces unnecessary LLM calls, thereby reducing associated costs. This approach improves execution speed and accuracy by breaking down tasks into smaller components. Each agent is equipped with a customized prompt, a defined output schema, and a subset of documents that exemplify SQL Injection or XSS attack types. &lt;/p&gt;

&lt;p&gt;It is recognized that one-day vulnerabilities may include previously unidentified signatures, which differ from the well-established patterns typically detected. This makes it particularly challenging for a team of specialized, task-specific agents to accurately identify them. To address this, the methodology is divided into two core components: one sub-team focuses on known vulnerability signatures provided from given CVE reports, but enhanced with new elements, while the other sub-team concentrates on input randomization and execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;The structure is built on LangGraph's multi-agent design pattern, enabling the agent's language model to iteratively loop until a solution is found or a predetermined number of steps is exceeded. The LangGraph Python library permits each agent in the "chain" to transmit messages and contextual knowledge seamlessly. Open AI's GPT-4o-mini model was used in this architecture as it is inexpensive along with providing cutting-edge abilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing
&lt;/h2&gt;

&lt;p&gt;In order to evaluate the performance of the multi-agent system, a testing environment must be established. If an arbitrary target URL is provided and the LLMs generate a tailored output that detects the SQL Injection and XSS vulnerabilities on the site, there is no method to confirm the validity of the identified vulnerabilities if I do not have access to the underlying code of the website. In this case, purposely vulnerable websites were used as targets in order to preemptively know the confirmed number of SQL Injection and XSS vulnerabilities on each page. This information is then compared with the multi-agent system vulnerability assessment in order to grade its accuracy. The testing applications chosen for this project were &lt;a href="http://testphp.vulnweb.com" rel="noopener noreferrer"&gt;Acunetix VulnWeb&lt;/a&gt; and  &lt;a href="https://github.com/OWASP/Vulnerable-Web-Application" rel="noopener noreferrer"&gt;OWASP Vulnerable-Web-Application&lt;/a&gt; as shown in the figures below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xgbeg29zmctktr1zlnb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xgbeg29zmctktr1zlnb.png" alt="Acunetix Target" width="800" height="756"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9uw77z1o5kf612kdatj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx9uw77z1o5kf612kdatj.png" alt="OWASP Target" width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluation
&lt;/h2&gt;

&lt;p&gt;This section addresses the results, costs, and comprehensive findings regarding the performance of the multi-agent LLM penetration testing framework.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trials and Cost
&lt;/h3&gt;

&lt;p&gt;Nine trials were conducted on the Acunetix and OWASP targets to gauge the accuracy and efficiency of the LLM system. OWASP SQLi Levels 1-4, OWASP XSS Levels 1-4, and Acunetix VulnWeb were chosen as test cases for thorough evaluation. For each trial, the LLM model was given a target URL and expected to output the vulnerabilities detected on the site with descriptions and security recommendations. The duration of each trial was also measured to assess the system's speed.&lt;/p&gt;

&lt;p&gt;In terms of use in the testing phase, GPT-4o-mini incurs an inexpensive cost of $0.15 per million input tokens and $0.60 per million output tokens. The number of steps accumulated in each trial corresponds to the communication between agents. Although full screenings can lead to higher runtime and costs, the added expense is close to insignificant. For example, a trial that steps 100 times will only cost $0.12, so this approach offers an efficient method to identify one-day vulnerabilities and software exploits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Effectiveness of the Architecture
&lt;/h3&gt;

&lt;p&gt;The LLM-based multi-agent system identifies SQL Injection and XSS vulnerabilities in a target URL with an accuracy of &lt;strong&gt;89.5%&lt;/strong&gt; in an average trial time of &lt;strong&gt;27.2 seconds&lt;/strong&gt;. It provides the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Elements Detected&lt;/li&gt;
&lt;li&gt;Vulnerabilities Detected&lt;/li&gt;
&lt;li&gt;Location Detected&lt;/li&gt;
&lt;li&gt;Possible Mitigation Strategies&lt;/li&gt;
&lt;li&gt;Fuzzing Payloads to Exploit Input Fields&lt;/li&gt;
&lt;li&gt;Findings from Controlled Execution &lt;/li&gt;
&lt;li&gt;Summary of Actions Taken (Final Report)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The system delivers a complete and in-depth cyber security analysis of the website for users to process and, in turn, implement critical security improvements to protect against future breaches. Furthermore, the previous goal of an accuracy percentage greater than 87% has been satisfactorily exceeded by 2.5%. &lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;The language-model-driven agent network excels in generating accurate and extensive responses to support in cyber security defense operations. Its primary objective of recognizing potential threats in browser-based applications is realized. However, there are drawbacks and limitations in the current implementation of the application that, if amended, will enhance its overall promise as a solution for the future.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLM Hallucinations
&lt;/h3&gt;

&lt;p&gt;The figure below illustrates an agent transfer error that occurred sporadically due to confusion and sidetracking between nodes that can be attributed to LLM hallucinations. Conversations between the Exploration, Fuzzer, and Executor agents would occasionally derail, leading to an increased number of wasted steps in the output that failed to contribute new information to the vulnerability report until the application would error out, as indicated in the figure. This would happen very rarely in this framework, as opposed to prior solutions that were substantially affected. Unfortunately, issues of this sort are inherent to LLM-based platforms, and remedies would only come with improvements to GPT-4o-mini or the emergence of another economical and robust solution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6vgvl7t7tbhnxwnu29x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6vgvl7t7tbhnxwnu29x.png" alt="Hallucination" width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Narrow Attack Coverage
&lt;/h3&gt;

&lt;p&gt;The multi-agent architecture as of now only covers SQL Injection and Cross-Site Scripting vulnerabilities. This is another hurdle that must be overcome for practical implementation. Web-based applications are not limited to SQL Injection and XSS exploits, so the scope of the project must be broadened for future iterations of the design. This involves developing more nodes and specialized prompts to include more types of cyber security threats for a broader security assessment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This paper presents a machine learning-based optimized security testing framework that uses Large Language Models (LLMs) to autonomously parse and examine CVE records supplemented by specialized AI agent review. The LLM agent network is designed to offer an organized and effective approach to identifying one-day vulnerabilities through extensive testing. Through meticulous development and trial verification, this approach has improved the accuracy and efficiency of LLM results compared to previous LLM security systems. Therefore, it establishes a feasible and versatile solution to detect and address software vulnerabilities before or, in more critical stages, after exploitation. With a roadmap for future enhancements and corrections already in place, this robust and adaptable LLM multi-agent system demonstrates the capability to be a valuable resource within the cyber security domain.  &lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>llms</category>
      <category>vulnerability</category>
      <category>langchain</category>
    </item>
    <item>
      <title>MySQL: Client and Server Model Databases</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Tue, 27 Nov 2018 15:14:31 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/mysql-client-and-server-model-databases-3lfo</link>
      <guid>https://dev.to/rmadisetti3/mysql-client-and-server-model-databases-3lfo</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fen%2Fthumb%2F6%2F62%2FMySQL.svg%2F1200px-MySQL.svg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fen%2Fthumb%2F6%2F62%2FMySQL.svg%2F1200px-MySQL.svg.png" width="800" height="400"&gt;&lt;/a&gt;&lt;br&gt;
Hello fellow Javascript coders, &lt;/p&gt;

&lt;p&gt;In this article, we will be discussing MySQL which is a very popular database management system based on a client-server model. To get a perspective on how useful and widespread this way of structuring application is, we can take a look at the many popular webs apps that you and I use everyday including YouTube, PayPal, Google, Twitter, and Facebook. All of those platforms use MySQL to structure the different and countless amounts of data that they send and receive to and from every user on their websites. &lt;/p&gt;

&lt;p&gt;First, let's explore what a MySQL database is. MySQL is a database management system that can run on any platform (Linux, MacOS, and Windows) and is based on SQL (Structured Query Language). MySQL runs on the client-server model which means that the MySQL server can send client interfaces to multiple users simultaneously. These interactions with the server allow the client to send individual SQL statements in order to garner a response to their user interface. These SQL statements include ADD, DROP, INSERT, and UPDATE and can be used to adequately navigate through the database and perform a desired action on each entry.&lt;/p&gt;

&lt;p&gt;If any random client could establish a connection with a MySQL server, there could be a potential security breach if the client had malicious intent on sabotaging the server. Luckily, MySQL has security features built in to prevent the threat from happening. MySQL uses a host-based verification system that uses access privilege and passwords to keep out anonymous dangers to the server. &lt;/p&gt;

</description>
      <category>mysql</category>
      <category>client</category>
      <category>server</category>
      <category>database</category>
    </item>
    <item>
      <title>Using AJAX in Conjunction with MongoDB</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Thu, 15 Nov 2018 01:05:02 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/using-ajax-in-conjunction-with-mongodb-12n</link>
      <guid>https://dev.to/rmadisetti3/using-ajax-in-conjunction-with-mongodb-12n</guid>
      <description>&lt;p&gt;Hello fellow Javascript coders,&lt;/p&gt;

&lt;p&gt;In this article, we will be discussing how to implement AJAX calls into your full-stack web application that incorporates a MongoDB database. &lt;/p&gt;

&lt;p&gt;First of all, AJAX is a method in jQuery that allows a program to send and receive data from a server (i.e. MongoDB) simultaneously without even refreshing the page. Thus, AJAX is very important for implementing applications with buttons or input from the user since it can be used in functions that are responsible for rendering text or data to the page. &lt;/p&gt;

&lt;p&gt;Next, let's implement AJAX into an application. We need to require all of the relevant packages in the server.js or a differently named file that connects the mongoose database to your api and html routes. The file should look similar to this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const express = require('express');&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const bodyParser = require('body-parser');&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const mongoose = require('mongoose');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const PORT = process.env.PORT || 3000; // any port number is acceptable&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Initialize Express&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const app = express();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Use body-parser for handling form submissions&lt;/code&gt;&lt;br&gt;
&lt;code&gt;app.use(bodyParser.urlencoded({ extended: true }));&lt;/code&gt;&lt;br&gt;
&lt;code&gt;// Use express.static to serve the public folder as a static directory&lt;/code&gt;&lt;br&gt;
&lt;code&gt;app.use(express.static('public'));&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mongoose.connect('mongodb://localhost/[name of application database]', { useNewUrlParser: true });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Routes&lt;/code&gt;&lt;br&gt;
&lt;code&gt;// API Routes (require from routes folder and pass in Express app)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;require('./routes/api-routes')(app);&lt;/code&gt;&lt;br&gt;
&lt;code&gt;// HTML Routes (require from routes folder and pass in Express app)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;require('./routes/html-routes')(app);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Start the server&lt;/code&gt;&lt;br&gt;
&lt;code&gt;app.listen(PORT, function() {&lt;/code&gt;&lt;br&gt;
&lt;code&gt;console.log(&lt;/code&gt;&lt;code&gt;App running on port ${PORT}&lt;/code&gt;&lt;code&gt;);&lt;/code&gt;&lt;br&gt;
&lt;code&gt;});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, the preliminary packages are required if they weren't already. Next in a different js file, you can create functions that accesses your mongoose routes such as GET, POST, or DELETE using AJAX. Here is an example of how to formulate a render function that gets data from a mongoose database and displays it to the page: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;const render = function () {&lt;/code&gt;&lt;br&gt;
      &lt;code&gt;$.ajax({ url: '/[put your route here]', method: 'GET' })&lt;/code&gt;&lt;br&gt;
          &lt;code&gt;.then(function (data) {&lt;/code&gt;&lt;br&gt;
              &lt;code&gt;let htmlstr = '';&lt;/code&gt;&lt;br&gt;
              &lt;code&gt;data.forEach(element =&amp;gt; {&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;htmlstr +=&lt;/code&gt;&lt;code&gt;&amp;lt;h1 class="content"&amp;gt;${element.content}&amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;code&gt;;&lt;/code&gt;&lt;br&gt;
              &lt;code&gt;});&lt;/code&gt;&lt;br&gt;
              &lt;code&gt;$('#addStr').html(htmlstr);&lt;/code&gt;&lt;br&gt;
          &lt;code&gt;})&lt;/code&gt;&lt;br&gt;&lt;br&gt;
          &lt;code&gt;.catch(function (err) {&lt;/code&gt;&lt;br&gt;
              &lt;code&gt;console.log(err);&lt;/code&gt;&lt;br&gt;
          &lt;code&gt;});&lt;/code&gt;&lt;br&gt;
  &lt;code&gt;}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this function, the AJAX call is using the databases GET routes and, for each data entry, it creates an html h1 element with the contents of the entry and adds it to an empty div.&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>mongoose</category>
      <category>ajax</category>
    </item>
    <item>
      <title>Socket.IO: Real-Time Communication</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Wed, 07 Nov 2018 21:25:40 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/socketio-real-time-communication-21ak</link>
      <guid>https://dev.to/rmadisetti3/socketio-real-time-communication-21ak</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffillti2hwly9e5sfddvl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffillti2hwly9e5sfddvl.jpg"&gt;&lt;/a&gt;&lt;br&gt;
Hello fellow Javascript coders, &lt;/p&gt;

&lt;p&gt;This article will explain Socket.IO and its advantageous use in full stack web applications as opposed to a traditional and lengthy database approach.&lt;/p&gt;

&lt;p&gt;Firstly, Socket.IO is a Javascript library that facilitates real-time communication between clients and servers. This function is an integral component of any application that relies on data streaming, messaging, simultaneous group collaboration, and, even, gaming. Socket.IO is consisted of two parts that allow this instant communication: a client-side library in the browser and server-side library in Node.js. Sockets provide a two-way channel between these two sides of the interaction that allows clients to push to a server and receive an emitted response to all connected clients in a very short time. Because of this efficient functionality, many popular applications use it such as Microsoft Office, Trello, and Zendesk. &lt;/p&gt;

&lt;p&gt;Now, in order to implement Socket.IO in your application, follow the next steps. First, we need to install express and socket.io using the node package manager (npm). &lt;br&gt;
&lt;code&gt;npm init&lt;/code&gt;&lt;br&gt;
Enter yes to all of the questions the terminal asks. Then, run:&lt;br&gt;
&lt;code&gt;npm install --save express socket.io&lt;/code&gt;&lt;br&gt;
This installs all the packages needed to correctly run Socket.IO. Next, we need to implement the application using the installed packages. In a .js file, use the following:&lt;br&gt;
&lt;code&gt;const express = require('express');&lt;br&gt;
const app = express();&lt;br&gt;
const server = require('http').createServer(app);&lt;br&gt;
const io = require('socket.io')(server);&lt;br&gt;
const socket = io();&lt;/code&gt;&lt;br&gt;
Next, we need to tell the program what to do when a connection is established. Use this command:&lt;br&gt;
&lt;code&gt;module.exports = function(io) {&lt;br&gt;
    io.on('connection', function(socket) {&lt;br&gt;
        //SOCKET ROUTES&lt;br&gt;
        socket.on('new-data', function(data) {&lt;br&gt;
            console.log(data);&lt;br&gt;
        }&lt;br&gt;
    })&lt;br&gt;
};&lt;/code&gt;&lt;br&gt;
Now, whenever a connection 'new-data' is established, the data will log in the console. Nice!&lt;/p&gt;

&lt;p&gt;This framework only outlines the beginning of a Socket.IO application, but there is so much more to do in terms of creativity and practicality.&lt;/p&gt;

</description>
      <category>socketio</category>
      <category>javascript</category>
      <category>node</category>
      <category>server</category>
    </item>
    <item>
      <title>The Function of Objects in Javascript</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Wed, 31 Oct 2018 17:18:47 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/the-function-of-objects-in-javascript-23c4</link>
      <guid>https://dev.to/rmadisetti3/the-function-of-objects-in-javascript-23c4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0bb80qznga9p033yh5e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe0bb80qznga9p033yh5e.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello fellow Javascript coders,&lt;/p&gt;

&lt;p&gt;This article will provide a clear and succinct explanation of the qualities of objects in Javascript and the various uses that each type of implementation has in creating the most efficient and least memory-intensive functions. &lt;/p&gt;

&lt;p&gt;In its very definition, Javascript is a prototypal object-oriented language which means that everything in JS is an object of some type except for the primitive data types (number, string, and boolean). An object can have properties that can be called using dot notation. For example, we can take a look at this object: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;var car1 = {&lt;br&gt;
company: 'Ford',&lt;br&gt;
model: 'Mustang',&lt;br&gt;
color: 'red',&lt;br&gt;
isLocked: false&lt;br&gt;
};&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The object &lt;code&gt;car1&lt;/code&gt; has three properties &lt;code&gt;company, model, and color&lt;/code&gt; and the line &lt;code&gt;car1.model&lt;/code&gt; will, in turn, return the value &lt;code&gt;'Mustang'&lt;/code&gt;. Objects can also have methods which are functions that are specific to the object and are not defined above or outside its scope. We can take the same &lt;code&gt;car1&lt;/code&gt; object and add two methods &lt;code&gt;paintBlue()&lt;/code&gt; and &lt;code&gt;lock()&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;var car1 = {&lt;br&gt;
company: 'Ford',&lt;br&gt;
model: 'Mustang',&lt;br&gt;
color: 'red',&lt;br&gt;
isLocked: false,&lt;br&gt;
paintBlue() {&lt;br&gt;
    this.color = 'blue';&lt;br&gt;
},&lt;br&gt;
lock() {&lt;br&gt;
    this.isLocked = true;&lt;br&gt;
}&lt;br&gt;
};&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now that these methods are added in the &lt;code&gt;car1&lt;/code&gt; object, they can be called using dot notation just like any other property. For example, &lt;code&gt;car1.paintBlue()&lt;/code&gt; will change &lt;code&gt;car1.color&lt;/code&gt; from &lt;code&gt;'red'&lt;/code&gt; to &lt;code&gt;'blue'&lt;/code&gt;. Note, also, that the &lt;code&gt;this&lt;/code&gt; keyword has to be used to allow the object to reference its own property and not change the scope of the function. &lt;/p&gt;

&lt;p&gt;With the functionality of properties and methods, objects are very integral in creating helpful Javascript functions and, even, full-stack web applications.&lt;/p&gt;

</description>
      <category>objects</category>
      <category>javascript</category>
      <category>this</category>
      <category>method</category>
    </item>
    <item>
      <title>MongoDB: Databases Made Simple</title>
      <dc:creator>Raj Madisetti</dc:creator>
      <pubDate>Tue, 25 Sep 2018 23:23:43 +0000</pubDate>
      <link>https://dev.to/rmadisetti3/mongodb-databases-made-simple-3jh5</link>
      <guid>https://dev.to/rmadisetti3/mongodb-databases-made-simple-3jh5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rotdab0rb5jrgvya5gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rotdab0rb5jrgvya5gc.png" alt="alt text" width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello fellow Javascript and Node.js coders, &lt;/p&gt;

&lt;p&gt;This article will teach you the basics of Mongo and MongoDB and its useful qualities.&lt;/p&gt;

&lt;p&gt;Firstly, MongoDB is classified as a NoSQL database which means that it stores JSON (Javascript Object Notation) documents in any structure that a user wants. To illustrate its flexibility, each element of the database can possess different fields and the overall structure of the entire database can be always be modified. MongoDB organizes each document into larger collections using its dynamic "schema" which maps each document individually. &lt;/p&gt;

&lt;p&gt;Because of this relative ease in dealing with all types of data, MongoDB is a widely-used database that shifts and molds itself to fit to Node.js applications that sometimes do not conform to a standard database approach which consists of a traditional row and column model in a table. MongoDB also has the ability of sharding which means that the database and quickly and efficiently distribute data across large groups of computers/machines. Additionally, MongoDB is a free open-source database program which appeals to the many developers on a budget and the program supports C, C++, C#, Javascript, Node.js, Java, PHP, Python, and many more languages. &lt;/p&gt;

&lt;p&gt;To actually interact with the extensive database, programmers use the mongo shell Javascript terminal to interact with data and connect with another running instance of MongoDB server. First, a terminal window with the command &lt;code&gt;mongod&lt;/code&gt; must be running and another terminal window must be used to develop and edit databases. In the other terminal window, the command &lt;code&gt;mongo&lt;/code&gt; must be run. Then, one can create a database with &lt;code&gt;db [name of database]&lt;/code&gt;, then &lt;code&gt;use [name of database]&lt;/code&gt;. To exit, you can either write &lt;code&gt;quit()&lt;/code&gt; or pressing &lt;code&gt;&amp;lt;CTRL-C&amp;gt;&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>database</category>
      <category>node</category>
    </item>
  </channel>
</rss>
