Workshop Prerequisites


Attending the KCDC pre-conference workshops? Then read below to see what prerequisite tools, software, skills, or general knowledge you should have before attending each of our half- and full-day workshops on offer this year.


Full-Day (8am – 5pm)

Let's build our first AI chatbot with OpenAI
Austin Gil
Room 2201

CANCELLED

•••

Architectural Katas Workshop
Ted Neward
Room 2202

Abstract:

Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect. The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system. In this session, attendees will be split into small groups and given a "real world" business problem (the kata). Attendees will be expected to formulate an architectural vision for the project, asking questions (of the instructor) as necessary to better understand the requirements, then defend questions (posed by both the instructor and their fellow attendees) about their choice in technology and approach, and then evaluate others' efforts in a similar fashion. No equipment is necessary to participate--the great architect has no need of tools, just their mind and the customers' participation and feedback.

Prerequisites:

No laptops are necessary, and the conference WiFi should be more than adequate for what we need. You just need to show up and be ready to architect. Space will be limited for this workshop.

•••

Hands On OpenTelemetry (1 Day Workshop)
Martin Thwaites
Room 2203

Abstract:

You've heard the new buzzwords of "Observability", "OpenTelemetry", "Tracing", "Logging", "Metrics", and all the others, but not sure how to practically use them in your applications to help debug issues? This is the workshop you need.

In this workshop you'll get your hands on using OpenTelemetry in an application. You'll be adding the libraries in the applications to get some out of the box information, along with adding different types of manual instrumentation to get domain specific insights.

You'll come out of this workshop understanding:
* What Observability is and is not
* Where OpenTelemetry fits in
* How to implement OpenTelemetry in your language of choice
* What the OpenTelemetry Collector is, when to use it, and how to use it
* What commercial Observability Products bring to the table

All of this will be done with OpenSource tools.

Prerequisites:

  • Your own laptop that you can use during the workshop

  • Docker installed and configured, please check you can run a container before the workshop

  • The IDE for your chosen language

•••

A Little Bit of Everything – The Latest in ASP.NET Core
Isaac Levin
Room 2204

Abstract:

In this workshop, we will explore the evolving landscape of web development and how ASP.NET Core is poised to revolutionize the way we build modern web applications.

We will walk through a comprehensive journey that covers a diverse range of topics, including:

  • ASP.NET Core Overview: Gain an understanding of the latest version of ASP.NET Core and its role in the web development ecosystem.

  • API Development: Learn how to create robust APIs with ASP.NET Core and leverage the latest features for building RESTful services.

  • Data Access and Entity Framework Core: Understand how to work with data effectively using Entity Framework Core and the improvements introduced in ASP.NET Core.

  • Blazor Enhancements: Dive into the latest advancements in Blazor, the web framework for building interactive web applications, and see how it can be seamlessly integrated with ASP.NET Core.

  • Security and Identity: Learn about the enhanced security features and best practices for securing your ASP.NET Core applications, including authentication and authorization.

  • Containerization and Microservices: Explore how ASP.NET Core embraces containerization and microservices architecture, enabling you to build modular and scalable applications.

Whether you're an experienced ASP.NET developer or just getting started in web development, this workshop offers a diverse and comprehensive overview of ASP.NET Core, equipping you with the knowledge and skills to build powerful, secure, and high-performance web applications.

Prerequisites:

The workshop will be run from a repo and I have provided pre-reqs as well as a handy "installer" file using winget if they are on Windows. 

- Attendees should be able to install software on their machine (local admin or equivalent)

Repo: isaacrlevin/aspnet-workshop (github.com)

•••


Half-Day Morning (8am – 12pm)

Advancing with Java Workshop
Daniel Hinojosa
Room 2206

Abstract:

The Advancing with Java Workshop is designed to elevate the skills of experienced Java developers by introducing and exploring advanced features in the latest Java versions (18-22). This workshop will focus on hand-picked topics crucial for modern Java development, ensuring participants are well-versed with the new tools and techniques that enhance code efficiency and readability in the modern age.

In this session, we will cover:
* Record Patterns
* Pattern Matching
* Sealed Class
* Virtual Threads
* Scoped Values
* Structured Concurrency
* Other Features that will Delight

Prerequisites:

Setup Requirements

  • JDK 22 (The latest!)

  • Latest IntelliJ Preferred 

  • Maven 3.8.x

  • Git

  • GitHub Account

Repository Location: https://github.com/dhinojosa/advancing_with_java_kcdc_2024

Detail Notes: If using your machine [preferred], install the above. If you can't install the above or don't want to, you can use either Codepaces [Beta] or Gitpod.io. These are cloud-based VSCode editor instances, so you don't have to install anything on your laptop. If you use cloud-based instances, ensure that you do not have WebSockets blocked; corporate machines rarely block WebSockets, but it has been known to happen. If it still doesn't work, close your Z-Scaler or Cisco Virtual VPN.

If you wish to perform a dry run on either of the cloud instances, here are the directions:

Codespaces:

Click on the Green "Code" button in the repository address above, and click the green "Create codespace on main" button. This will take you to a codespace. Look around, try to run `mvn compile` in the terminal, and run some tests.

Gitpod:

Click the "Open In Gitpod" button on the README in the repository.  This will take you to Gitpod. If you are using it for the first time, log in with your Github Account. Select the online browser option. This will take you to the Gitpod editor. Look around, try to run `mvn compile` in the terminal, and run some tests.

If you have any questions, email me: dhinojosa@evolutionnext.com

•••

Behavior Driven Development Workshop For Developers & Non-Developers
Mark Shead
Room 2207

Abstract:

This workshop is designed to let you experience Behavior Driven Development even if you aren't a software engineer. It is hard to really understand BDD until you've been able to see it from the perspective of a business owner, a tester, and a developer. By using a simple visual-based programming language and a fleet of small robots, non-developers can engage in all the aspects required to create a simple feature to get their robot to solve a color maze. This ability to experience the entire process first hand is vital for teams that are wanting to collaborate together and fully appreciate each other's roles in the use of Behavior Driven Development.

The first part of the workshop is focused on learning about BDD using Cucumber to describe examples of the behavior of everything from cricket-hunting wasps to children in a car on a road trip. We will also use some code to demonstrate how BDD works with Java, but with a focus on how the process works conceptually instead of the details of the code.

The second part is hands-on where we will create examples and tests to drive the development of a program to get the robot assigned to your team through a color maze. Participants will need to bring a laptop (or partner up with someone who has one) to program the robots. Space in this workshop is limited to the first 45 attendees.

Prerequisites:

Attendees should bring a laptop. They will need access to this URL to program the robots:

https://ozoblockly.com/editor?lang=en&robot=evo&mode=2

There are two ways to load the programs into the robots. One is by holding the robots up to the screen and letting the web page load the program using flashing color codes. The other is by connecting with Bluetooth. A laptop with a good display and Bluetooth will provide the most options.

A laptop that doesn't restrict the web browser from connecting to bluetooth is best and most reliable, but flashing color codes can be used if necessary.


If using a tablet instead of a laptop, a bluetooth connection will require the app to be installed. Here are the apps for both Android and iPad:
https://play.google.com/store/apps/details?id=com.evollve.evo&hl=en
https://apps.apple.com/us/app/evo-by-ozobot/id1145978152

Attendees will be grouped into small teams, so we have a bit of fault tolerance if something doesn't seem to work as well with a particular laptop, but every participant should come prepared to use their device.

•••

Effective Facilitation Techniques
Sharon Weaver
Room 2208

Abstract:

In this engaging session, participants will explore the fundamental concept of facilitation and learn what it truly means in various contexts. Discover the key attributes of a proficient facilitator and understand the essential skills required to excel in this role. Participants will acquire strategies for running highly productive training and meetings while navigating team dynamics, including effective approaches to handling challenging individuals. Don't miss this opportunity to enhance your facilitation skills and make a lasting impact in group settings.

Objectives:
What does facilitation mean?
How to be a good facilitator
How to plan for engagement
How to run an effective meeting
Team dynamics and difficult people

Prerequisites:

Equipment:
Your preferred supplies to take notes, a laptop is recommended but not required.

Knowledge:
Previous experience or interest in conducting meetings or training sessions.

Participation is encouraged.

•••

Evolving to Cloud Native
Nathaniel Schutta
Room 2209

Abstract:

Every organization has at least a phalanx or two in the “Cloud” and it is, understandably changing the way we architect our systems. But your application portfolio is full of “heritage” systems that hail from the time before everything was as a service. Not all of those applications will make it to the valley beyond, how do you grapple with your legacy portfolio? This talk will explore the strategies, tools and techniques you can apply as you evolve towards a cloud native future.

In this talk, you will learn:

  • how to evaluate your legacy applications

  • how to take those heritage systems to the Cloud

  • what 12 Factors means for you

  • where it makes sense to use microservices

  • what tools and services you'll need to add to your repertoire

Prerequisites:

Laptops aren't needed, it'll mostly be discussion.

•••

How to design a database?
Heli Halskyaho and Matias Helskyaho
Room 2210

Abstract:

Do we still need to design databases? Why? How is a database designed? What is the process? What information do I need? What skills do I need? In this workshop, we design a database.

Prerequisites:

•••

Establishing Good TDD Habits
Brendan Enrick
Room 2211

CANCELLED

•••

Successful Practices with your Angular & .NET Stack
Alyssa Nicoll and Layla Porter
Room 2214

Abstract:

In this workshop, Alyssa and Layla will be teaching you some of the most successful practices you can be doing in your Angular/.NET web apps.

Concepts Covered Angular:
- standalone 🔥
- control flow
- deferred loading
- Shiny new VITE build system
- signals 💥
- signals vs observables
-signals, signal inputs, & signal components

Concepts Covered .NET:
- .NET 8 and C# 12 goodness ✨️
- minimal hosting pattern and top-level statements
- RESTful APIs and architecture
- minimal APIs

Prerequisites:

Prerequisite install instructions are available on Github. Please review .NET install instructions and the Angular install instructions prior to attending the workshop.

•••

React and Next.js: Building Future-Ready Web Applications
Adhithi Ravichandran and Avindra Fernando
Room 2215A

Abstract:

Join us for a half-day workshop dedicated to exploring the essentials of Next.js. This 4-hour session is designed to provide a solid understanding of Next.js for developers. We'll start with the basics of the framework, covering key concepts such as the app router and different rendering methods like server-side rendering (SSR) and static site generation (SSG). A special focus will be given to React Server Components (RSC), discussing their role and advantages in building modern web applications.

As we progress, the workshop will also include practical aspects of routing, data fetching, and strategies for optimizing your Next.js applications. The session concludes with a hands-on deployment experience using Vercel, where participants will apply what they've learned to deploy a functional Next.js application. This workshop is ideal for those looking to gain a comprehensive yet concise understanding of Next.js in a collaborative and hands-on environment.

Prerequisites:

Knowledge:

To attend this workshop, you should have some knowledge of:
- Modern JavaScript Features

- CSS and HTML

- TypeScript

- React

- No previous experience with Next.js needed

Equipment:

- Operating systems: macOS, Windows (including WSL), or Linux.

- Bring your laptop, and it should be able to connect to the local conference WIFI.

Installation:

- Node.js LTS version: https://nodejs.org/en/download/

- Package manager. We will use NPM (comes included in Node.js), but you can also use Yarn: https://yarnpkg.com/

- If you do not have one already, create a GitHub account: https://github.com/ (We will be cloning our repository on GitHub for the workshop, and follow along for exercises, so ensure that you have a GitHub account already created.)
- Create a Vercel account: https://vercel.com/
- Install Visual Studio Code IDE: https://code.visualstudio.com/

•••

Getting the Project to "Done": A Workshop
Troy Tuttle
Room 2215B

Abstract:

Does your team struggle to get over the DONE hump? There are techniques you can employ to help your team finish the work needed to release value to your customers. It's not hard, but it's not intuitive either.

We will learn how to improve flow by running a team game/simulation that shows the benefits of Lean thinking applied to the delivery of customer value.

Learning Outcomes:
- Why WIP and Flow matter
- Understand the relationship of system utilization and flow
- Create and use actionable metrics to foster improvements (hands on)

Prerequisites:

Every attendee should bring a laptop with a web browser installed. 

VPN's should be fine, as long as you can access this domain:  https://actionableagile.com.

•••

Let's Generate Some Code! Getting Started with Roslyn Source Generators
Drew Frisk
Room 2215C

Abstract:

Roslyn Source Generators have been around since .NET 5. They are a powerful tool to help improve the efficiency of your development process but can be a daunting process to get started with.

In this ½ day workshop, we’ll dive into how source generators can elevate your workflow by reducing repetitiveness. We’ll build a source generator that can auto-create interface properties on a class; geared towards reducing the amount of code needed to be manually written for entities and DTOs.

Learn about the different approaches that can be taken when creating a source generator. Explore how to approach testing your generator and how to incorporate it into your projects with topics including but not limited to:

- Incremental source generators
- Unit Testing source generators
- Publishing source generators as a NuGet package
- Some of the common pitfalls encountered when creating source generators

We’ll also cover some of the resources you can use to ease into the process of getting started with source generators. If time, we’ll also discuss some other ways source generators can be used to reduce your overall code footprint.

This workshop will include some try it yourself elements with a more classroom like environment, so come prepared to write some code! We’ll work through some examples and use cases together.

Prerequisites:

Prerequisites are available on this gist.


Half-Day Afternoon (1pm – 5pm)

From Vision to Reality: Building a Live Object Detection Web Application
Diana Pham
Room 2201

Abstract:

This workshop focuses on developing a Python-based application for real-time object detection using a machine learning model. The project will utilize a pre-trained model alongside a library for video processing displaying the detection results and storing detection logs using backend management.

Prerequisites:

Equipment:

  • A laptop with regular wifi connection.

Accounts:

Install/Download:

Other:

  • A great attitude in case this workshop turns into a dumpster fire.

If you have any questions in advance, feel free to boop me on Twitter @dianasoyster

•••

API Testing Made Easy
Jordan Powell
Room 2205

Abstract:

API's are a vital part of how we build applications today. It's how we send data from point A to Point B. They are sort of like the planes, trains and automobiles of the digital world.

Though API’s are a key piece to building applications, they aren't always easy to test. In this workshop , I will show you how to use Test Driven Development (TDD) to write high value API tests using Cypress.

Prerequisites:

Please review this page which includes the software and tools required for this workshop:  https://cypress-io.github.io/cypress-api-testing-workshop/

•••

The Ultimate 4hr Java Workshop: Secure, High-Performance Deployment to Kubernetes and Serverless
Steve Poole and Jamie Coleman
Room 2206

Abstract:

This intensive workshop is tailored for developers and IT professionals who aim to excel in deploying Java applications in cloud environments, focusing on security and performance. Participants will engage in a comprehensive, hands-on exploration of Java application creation and deployment, emphasising secure, efficient practices using Google Cloud as the primary platform.

Prerequisites:

  • Web Browser

  • GitHub account

  • IDE

  • JDK 17 or higher with Java Home set

  • Hugging Face account

  • Container tool such as Docker or Podman

  • Access to pull stuff down from Maven Central

Agile AI: Leveraging Artificial Intelligence to 100X Your Team's Productivity and Innovation
Heather Wilde Renze
Room 2207

Abstract:

In the fast-paced world of technology, staying ahead means continuously seeking ways to improve efficiency and foster innovation. The "Agile AI" workshop is designed to bridge the gap between human ingenuity and AI efficiency, empowering tech professionals to revolutionize their Agile practices through the integration of Artificial Intelligence.

Drawing from a wellspring of experience and a deep understanding of both the human and technical facets of team dynamics, this workshop delves into the art of marrying the adaptability inherent in Agile methodologies with the predictive prowess of AI. Participants will embark on a journey that transcends the conventional, exploring groundbreaking strategies to augment team efficiency, foster innovation, and cultivate a culture that harmoniously blends the best of human intuition and AI capabilities.

Engage in an immersive experience where you will:

1. Decode the intricacies of integrating AI into Agile frameworks, transforming routine processes into avenues of efficiency and insight.
2. Navigate through the myriad of AI tools and techniques with a discerning eye, identifying those that align best with your team's unique rhythm and goals.
3. Architect a culture that not only embraces but thrives on the fusion of Agile and AI, turning apprehension into advocacy and potential into performance.
4. Collaborate and create in hands-on sessions, applying the principles of Agile AI to real-world scenarios, turning theory into actionable strategy.
5. Chart the course of continual growth and learning, measuring the impact of Agile AI integrations and paving the path for sustained innovation and success.

"Agile AI" is more than a workshop; it's a transformative experience curated for those poised to lead their teams into a new era of technological excellence. With Heather Wilde Renze as your guide, uncover the untapped potential at the intersection of human insight and AI efficiency. Join us in reshaping the future of Agile methodologies, nurturing teams that are not just equipped to adapt but are built to thrive and innovate in the ever-evolving tapestry of technology.

Prerequisites:

Familiarity with Agile methodologies and sprint retrospectives.

Basic knowledge of Python programming is a plus but not required.

Please bring a laptop. You may use either Google Collab or will need to have set up:

  • Python (latest version).

    • Required Python libraries: pandas, numpy, matplotlib, seaborn

  • Jupyter Notebook: https://jupyter.org/install

  • Please have access to a ChatGPT account (free is fine)

Please also download the following GitHub Repository:
https://github.com/heathriel/Sprint-Retrospective-Analysis

•••

Build your own Secure Messenger
Ben Dechrai
Room 2208

Abstract:

You've written a blog in 5 minutes, but what about a secure, encrypted communications application in a day?

This workshop will get you started with a simple static site, and iteratively build it up to become an end-to-end encrypted chat platform.

You'll learn how to get started quickly with various cloud services for authentication, data storage, and data retrieval, add encryption layers to the system, design data structures that won't leak metadata, and even provide mechanisms for plausible deniability.

Participants will benefit from having a moderate understanding of consuming APIs and be comfortable understanding JavaScript.

Prerequisites:

Participants will need to bring a laptop that's capable of connecting to the conference wifi (or BYO hot spot). It will help if you have a GitPod account (https://www.gitpod.io/) ahead of time.

GitPod is an in-the-cloud development environment that provides 50 hours of use per month for free. If you already use GitPod on their free tier, please make sure you have at least 4 hours still available for this session.

•••

CI/CD with Github Actions
Chris Ayers
Room 2209

Abstract:

Learn about building and deploying applications using Github Actions. We will learn diverse ways to trigger our builds and build different types of applications.
We will work up from basics and fully understand how workflows run, how to select and call different actions, and how to handle configuration and secrets.
After this session you'll be able to build and deploy your software from GitHub. You will understand:
- GitHub Actions Runners
- YAML workflow syntax
- Workflow Triggers
- Variables
- Job Dependencies
- Conditionals
- Matrix Builds
- Outputs
- Environments
- Secrets
- Deployments to Container Registries & Azure

Prerequisites:

Admin access - not needed if not installing anything

Can work on vpn/firewall  - yes if can access GitHub and npm/nuget registries
- A GitHub account
- Git
- VSCode
- Optional 
   - Docker Desktop
- GitHub Codespaces
   - node/npm LTS
   - dotnet 8
   - azure cli

•••

How to implement and use a database?
Heli Halskyaho and Matias Halskyaho
Room 2210

Abstract:

In this HOL we will implement the database we have designed and start using it!

Prerequisites:

Equipment:

Bring your laptop; must be able to connect to local conference Wi-Fi.

Installations:

Create a free tier account to the Oracle Cloud Infrastructure. You will be asked for a credit card but as long as you only use the free tier resources, the card is not charged. You cannot accidentally choose payable options, the UI will warn you if you try.

How to create the account:

https://docs.oracle.com/en-us/iaas/Content/GSG/Tasks/signingup_topic-Sign_Up_for_Free_Oracle_Cloud_Promotion.htm

In the beginning of the workshop we will create the database to be used in this tenancy but the tenancy should be ready before we start the workshop.

•••

Build a Modern Single Page Application with Vue
Matt Burke
Room 2211

Abstract:

Vue offers developers a way to build ambitious front-end applications with powerful reactive programming patterns and an intuitive HTML-based templating language.

This workshop will give you a jumping-off point for large front-end applications using Vue with blazing-fast dev tools like esbuild, rollup, and vite. You’ll learn the latest tools and patterns Vue offers for building reusable and testable UI code. You’ll get hands-on practice scaling an app to multiple pages using routing and state management libraries. At the end of this workshop, you’ll be ready to build complex and responsive front-end applications.

Prerequisites:

Up-to-date prerequisites and other course materials are available online: https://www.mattburkedev.com/vue-workshop/build-a-modern-single-page-application-with-vue/ 

Please review the prerequisites page for tools and libraries needed to be installed prior to the workshop.

•••

Creating Apps with .NET MAUI Blazor
Mitchel Sellers
Room 2214

Abstract:

.NET MAUI Blazor introduces a new whole new paradigm of application development, allowing the usage of Web Development Tooling to create Mobile & desktop applications.

This 1/2 day workshop will introduce you to the project structure, setup, and implementation techniques to create a simple "tasklist" application that will work on Windows, Mac, iOS and Android.

We will start from the beginning by creating a new project and working through all of the necessary setup to build a simple tax-list application. Emphasis will be placed on understanding user interactions, security, layout, and deployment considerations. Standard UI elements will be introduced to showcase the flexibility of MAUI Blazor.

Additionally, we will explore publishing to the various app-stores and managing assets/integration with devices from within a Blazor app, including the usage of GPS information.

Prerequisites:

  • Users should have  Administrator access to their machines to ensure that they can adjust settings as needed

  • Users can be on a VPN

  • VS 2022 (Any Edition is Acceptable)

    • Latest version please, be sure to check for updates prior to the event

    • Ensure that you have the following workloads installed

      • .NET Multi-platform App UI Development (MAUI)

      • ASP.NET and Wb Development

  • Android Emulator

    • If you want to test/view/see your application from the tutorial on a simulated device 

    • Easiest way to test is to create a new .NET MAUI project and attempt to run on an Android Emulator, it will walk through the steps

    • We CAN try to discuss/diagnose during training, however, it is a 600-900mb download, so with wifi connectivity it MAY be limited. 

•••

Rea11y Simple #A11y: A Focused Accessibility Workshop
Chris DeMars
Room 2215A

Abstract:

Accessibility on the web is increasing in visibility, yet some web creators are still unfamiliar with how to create an amazing, accessible user experience. Spoiler alert, it starts with design, but what happens after that? In this workshop, I will walk the attendees through a site that has multiple violations, and a low score in Lighthouse. I will also touch on aXe Core, what it is, and how to use it. After we comb through the site, I will introduce easy wins like semantic markup, alt attributes, and ARIA labels to remove all violations. You'll walk away with the knowledge to build your sites with accessibility in mind.

Prerequisites:

•••

Improv(e) Your Testing!
Damian Synadinos
Room 2215B

Abstract:

Improvisational comedy—sometimes called improv—is a form of theater in which the performance is created in the moment. Successful improv involves learning and using a variety of skills and techniques which allow performers to quickly adapt to a constantly changing environment and new information. Now reread the previous sentence, but replace the word improv with testing.

In many ways, improv is a great analogy for testing. As both an experienced improviser and tester, Damian Synadinos presents some of the many similarities between improv and testing. Each improv tip and trick is thoroughly described and demonstrated with help from the audience. Damian then explains and shows how the very same idea can be applied in a testing context. Using creative metaphors and critical analysis, old ideas about testing are reframed in novel and notable ways.

Whether novice or experienced, you are sure to laugh, learn, and leave with ways to help improv(e) your testing!

Prerequisites:

No prereqs for the workshop. Attendees need only bring themselves, an open mind, and a good attitude.  

•••

Lessons Learned from 8 Years in React
Cory House
Room 2215C

Abstract:

This session explores the lessons I've learned from working in React for the last 8 years including rethinking separation of concerns, types, choosing state management approaches, performance optimizations, form optimizations, Storybook driven development workflows, mock APIs, custom dev tools, and reusable components. In this session, I'll share the many mistakes I've made, and the useful techniques I've found along the way.

Prerequisites:

Prerequisite knowledge:

  1. Git

  2. General familiarity with React

  3. I'll work in TypeScript, but if you don't know TypeScript I can explain the simple techniques we use.

Set up before the event if you want to follow along via a laptop (highly recommended, since we're coding together):

  1. Admin access to your laptop so we can install packages, editor extensions.

  2. Install Node LTS version from nodejs.org.

  3. A GitHub account (recommended)

  4. Install Git from https://git-scm.com/downloads 

  5. An editor. I'll use Visual Studio Code.


Contact us.

staff@kcdc.info