<?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:  Makwasi</title>
    <description>The latest articles on DEV Community by  Makwasi (@makwasi1).</description>
    <link>https://dev.to/makwasi1</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%2F402401%2F8ff038c8-be85-4955-905c-740ccceac061.jpeg</url>
      <title>DEV Community:  Makwasi</title>
      <link>https://dev.to/makwasi1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/makwasi1"/>
    <language>en</language>
    <item>
      <title>Creating NPM package with Typescript.</title>
      <dc:creator> Makwasi</dc:creator>
      <pubDate>Tue, 27 Feb 2024 16:35:38 +0000</pubDate>
      <link>https://dev.to/makwasi1/creating-npm-package-with-typescript-4i9l</link>
      <guid>https://dev.to/makwasi1/creating-npm-package-with-typescript-4i9l</guid>
      <description>&lt;p&gt;&lt;strong&gt;Title: Unveiling JsonZiip: A Journey into Creating an NPM Package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;br&gt;
Ever wished for a hassle-free way to zip JSON data in your Node.js projects? That's the gap I sought to fill when I embarked on the journey of creating the JsonZiip npm package. In this article, I'll walk you through the steps I followed, complete with code snippets and commands, to bring this idea to fruition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites:&lt;/strong&gt;&lt;br&gt;
Before diving into the creation of an npm package like JsonZiip, you'll need a solid understanding of TypeScript, Node.js, npm, and basic knowledge of package.json and module.exports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Setting Up the Project:&lt;/strong&gt;&lt;br&gt;
To start, let's set up our project directory and initialize it with npm.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;json-ziip
&lt;span class="nb"&gt;cd &lt;/span&gt;json-ziip
npm init &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a new directory named &lt;code&gt;json-ziip&lt;/code&gt; and initializes a new npm project with default settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Installing Dependencies:&lt;/strong&gt;&lt;br&gt;
Next, we'll install the dependencies needed for our package. In this case, we'll use &lt;code&gt;adm-zip&lt;/code&gt; for zip file manipulation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;adm-zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Writing TypeScript Code:&lt;/strong&gt;&lt;br&gt;
Now, let's write the TypeScript code for our JsonZiip package. Create a file named &lt;code&gt;index.ts&lt;/code&gt; in the project root directory and add the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;AdmZip&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;adm-zip&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;createZipFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jsonData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;outputFileName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeFileSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;temp.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;jsonData&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;zip&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;AdmZip&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nx"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addLocalFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;temp.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;writeZip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;outputFileName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;unlinkSync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;temp.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code defines a function &lt;code&gt;createZipFile&lt;/code&gt; that takes JSON data and an output file name, creates a temporary JSON file, zips it, and then deletes the temporary file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Compiling TypeScript to JavaScript:&lt;/strong&gt;&lt;br&gt;
Since npm packages are distributed as JavaScript files, we need to compile our TypeScript code to JavaScript. Add the following TypeScript configuration in a &lt;code&gt;tsconfig.json&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"compilerOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ESNext"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CommonJS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"strict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"esModuleInterop"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, compile the TypeScript code using the &lt;code&gt;tsc&lt;/code&gt; command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;tsc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This generates JavaScript files from our TypeScript code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Documentation and Publishing:&lt;/strong&gt;&lt;br&gt;
With the code ready, it's time to document our package and publish it to npm. Add appropriate documentation comments to your code and update the &lt;code&gt;package.json&lt;/code&gt; file with the necessary information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm login  &lt;span class="c"&gt;# Log in to your npm account&lt;/span&gt;
npm publish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And that's it! Your JsonZiip npm package is now available for the world to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt;&lt;br&gt;
Creating JsonZiip was a rewarding journey, from ideation to publication. By following these steps and leveraging the power of TypeScript and npm, I was able to create a valuable tool for developers worldwide. I encourage you to explore JsonZiip, contribute to its development, and share your feedback. Together, let's continue to innovate and empower developers with powerful solutions. Happy coding!&lt;/p&gt;

</description>
      <category>npm</category>
      <category>typescript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Setting Up Camunda 7.19 spring boot Development Environment.</title>
      <dc:creator> Makwasi</dc:creator>
      <pubDate>Fri, 29 Sep 2023 12:46:32 +0000</pubDate>
      <link>https://dev.to/makwasi1/setting-up-camunda-719-spring-boot-development-environment-24bn</link>
      <guid>https://dev.to/makwasi1/setting-up-camunda-719-spring-boot-development-environment-24bn</guid>
      <description>&lt;h2&gt;
  
  
  Title: Unleashing Workflow Potential: A Closer Look at Camunda-Spring Boot Integration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7112454376627068933/"&gt;In my previous post&lt;/a&gt;, we kicked off a journey into the realm of business process management (BPM) by exploring the exciting fusion of Camunda 7 with Spring Boot. Today, let's delve deeper and uncover how this integration empowers organizations to streamline their business operations and achieve unparalleled workflow efficiency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some of the benefits you will get include:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Accelerated Development:&lt;/strong&gt;&lt;br&gt;
   The amalgamation of Camunda BPM with Spring Boot enables rapid application development. By seamlessly integrating Camunda's process orchestration capabilities within a Spring Boot application, developers can significantly speed up the development lifecycle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Enhanced Scalability:&lt;/strong&gt;&lt;br&gt;
   Leveraging the lightweight nature of Spring Boot and the scalability of Camunda, this integration is perfectly suited for both small-scale applications and enterprise-grade solutions. Whether you're building a startup's core workflow or an intricate enterprise-wide BPM system, this combination scales effortlessly. Not forgetting easy integration with other third-party applications. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Real-time Monitoring and Optimization:&lt;/strong&gt;&lt;br&gt;
   Camunda's monitoring tools, especially Cockpit, provide real-time insights into the workflow's performance, allowing organizations to optimize processes on the fly. Spring Boot's flexibility complements this by seamlessly integrating with monitoring and logging systems, providing a comprehensive view of system health and performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Steps to Implement Camunda-Spring Boot Integration
&lt;/h3&gt;

&lt;p&gt;In case you wondering how to get started, here's a brief overview:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;**Ensure you have Installed &lt;a href="https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html"&gt;Java Development Kit&lt;/a&gt; (JDK) (8+). &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create a starter application:&lt;/strong&gt; Create a Spring Boot project using Camunda spring initializer &lt;a href="https://start.camunda.com/"&gt;Spring Initializr&lt;/a&gt;. It comes pre-configured making it quick and easy to get started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customize Camunda Configuration:&lt;/strong&gt; Create a configuration class to tailor Camunda engine settings as per your application requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Install Camunda BPM Modeler:&lt;/strong&gt; Download and install &lt;a href="https://camunda.com/download/modeler/"&gt;Camunda BPM Modeler&lt;/a&gt; for designing and modeling BPMN processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start Camunda Engine:&lt;/strong&gt; Install and set up the Camunda engine on your system.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Your Turn!
&lt;/h3&gt;

&lt;p&gt;Now that we've set the stage, it's your turn to dive into the world of Camunda-Spring Boot integration. Explore, experiment, and elevate your business processes to new heights.&lt;/p&gt;

&lt;p&gt;Stay tuned for more insights on this powerful integration. In the next post, we'll explore creating a simple BPMN process and demonstrate its execution within a Spring Boot application.&lt;/p&gt;

&lt;p&gt;Keep innovating, keep optimizing!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Beginner Github</title>
      <dc:creator> Makwasi</dc:creator>
      <pubDate>Tue, 17 Aug 2021 07:01:02 +0000</pubDate>
      <link>https://dev.to/makwasi1/beginner-github-422j</link>
      <guid>https://dev.to/makwasi1/beginner-github-422j</guid>
      <description>&lt;h2&gt;
  
  
  My Zuri internship article
&lt;/h2&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;The first post, Ever&lt;/em&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;My first article on dev.to&lt;/li&gt;
&lt;li&gt;✨Magic ✨&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Everything i have learned so far and i have practised.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech
&lt;/h2&gt;

&lt;p&gt;My Experience :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[AngularJS] - HTML enhanced for web apps!&lt;/li&gt;
&lt;li&gt;[Ace Editor] - awesome web-based text editor&lt;/li&gt;
&lt;li&gt;[markdown-it] - Markdown parser done right. Fast and easy to extend.&lt;/li&gt;
&lt;li&gt;[Twitter Bootstrap] - great UI boilerplate for modern web apps&lt;/li&gt;
&lt;li&gt;[node.js] - evented I/O for the backend&lt;/li&gt;
&lt;li&gt;[Express] - fast node.js network app framework [&lt;a class="mentioned-user" href="https://dev.to/tjholowaychuk"&gt;@tjholowaychuk&lt;/a&gt;
]&lt;/li&gt;
&lt;li&gt;[Gulp] - the streaming build system&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://breakdance.github.io/breakdance/"&gt;Breakdance&lt;/a&gt; - HTML
to Markdown converter&lt;/li&gt;
&lt;li&gt;[jQuery] - duh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And of course Dillinger itself is open source with a [public repository][dill]&lt;br&gt;
 on GitHub&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is github?
&lt;/h3&gt;

&lt;p&gt;Its’ a Version Control System (VCS) which helps developers to collaborate and work simultaneously while tracking and maintaining a complete history of the changes of their project files.&lt;br&gt;
There are two types of version control systems namely;&lt;br&gt;
Centralized Version Control System&lt;br&gt;
Distributed/Decentralized Version Control System.&lt;br&gt;
Git falls under the Distributed Version Control System.&lt;br&gt;
Distributed Version Control System (DVCS)&lt;/p&gt;

&lt;p&gt;This system enables clients to check out the latest changes in the remote repository for example on GitHub or bit-bucket and allow them to clone the remote repository into their local working environment. This is very useful especially in cases when the server that has the remote repository goes down. In such an instance, the local repository on a client’s computer can then be push back to the server to restore it. Git does not entirely rely on the central server and therefore this is why you can perform operations offline locally such as committing, creating branches, and viewing commit logs. You only require the network connection when you need to push changes to the server (GitHub) or to pull the latest changes from the remote repository.&lt;br&gt;
In this blog post, I will strive to bring you up to speed with the terminologies associated with git, git commands and operations that you will encounter most commonly while working on your projects and collaborating with a team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites.
&lt;/h3&gt;

&lt;p&gt;You must have installed git on your computer otherwise visit &lt;a href="https://git-scm.com"&gt;https://git-scm.com&lt;/a&gt;&lt;br&gt;
You should have a GitHub account. To Create a GitHub Account and sign in visit .&lt;a href="https://github.com/"&gt;https://github.com/&lt;/a&gt;&lt;br&gt;
You should have an IDE ( Code Editor ) preferably Visual Studio Code. &lt;a href="https://code.visualstudio.com/"&gt;https://code.visualstudio.com/&lt;/a&gt;&lt;br&gt;
Note that we often use Git Bash in Windows to perform the git operations and the Terminal for Mac and Linux. You could also use the integrated terminal in Visual Studio Code.&lt;br&gt;
Okay with that noted let’s get started………😜&lt;br&gt;
Common git Concepts and Operations.&lt;br&gt;
Cloning / Creating Repositories&lt;br&gt;
Basic git workflow&lt;br&gt;
Pulling latest changes in a remote repository&lt;br&gt;
Creating and working with Branches.&lt;br&gt;
Merging Branches.&lt;br&gt;
Resolving Merge Conflicts&lt;br&gt;
Re-basing Branches&lt;br&gt;
Hosting on GitHub page&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Follow for more here..
&lt;a href="https://zuri.team"&gt;https://zuri.team&lt;/a&gt; or &lt;a href="https://internship.zuri.team"&gt;https://internship.zuri.team&lt;/a&gt; or &lt;a href="https://training.zuri.team"&gt;https://training.zuri.team&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>git</category>
      <category>zuri</category>
    </item>
  </channel>
</rss>
