---
title: 'Getting Started with IntelliSIEM: Setting Up the Development Environment'
url: 'https://bsb.perryconsulting.net/blog/getting-started-with-intellisiem-setting-up-the-development-environment'
markdown: 'https://bsb.perryconsulting.net/blog/getting-started-with-intellisiem-setting-up-the-development-environment.md'
date: '2024-09-22'
description: 'Welcome to the first post in my series chronicling the development of IntelliSIEM, a robust threat intelligence aggregator and reporter tool. In this post, I’ll guide you through setting up the development environment using Python 3.12 and PyCharm Professional. To see'
taxonomy:
  category:
    - projects
  tag:
    - python
    - security
---

# Getting Started with IntelliSIEM: Setting Up the Development Environment

 22 SEP 2024  [python](https://bsb.perryconsulting.net/blog/tag:python) [security](https://bsb.perryconsulting.net/blog/tag:security)  

  Welcome to the first post in my series chronicling the development of IntelliSIEM, a robust threat intelligence aggregator and reporter tool. In this post, I’ll guide you through setting up the development environment using Python 3.12 and PyCharm Professional.

To see this project in its current state, head over to my repo and check it out: [IntelliSIEM on GitHub](https://github.com/perryconsulting/IntelliSIEM)

---

### **Why PyCharm Professional?**

PyCharm Professional offers a powerful, all-in-one development environment with integrated tools for data science, database management, and version control. It’s the perfect choice for a project like IntelliSIEM.

### **Step 1: Installing PyCharm Professional**

Head over to the [JetBrains website](https://www.jetbrains.com/pycharm/download/) and download the Professional edition. Follow the setup instructions to get PyCharm up and running on your system.

### **Step 2: Creating a New Project with Virtual Environment (venv)**

After launching PyCharm, create a new project and select Python 3.12 as the base interpreter (3.10 *should* work in a pinch, if necessary). This ensures compatibility with the latest Python features, allowing us to leverage the best tools for building IntelliSIEM.

- Open PyCharm and select `File` > `New Project`.
- Choose a project location and select "New environment using Virtualenv".
- Set the base interpreter to Python 3.12. If Python 3.12 is not installed, PyCharm will prompt you to download it.

### **Step 3: Connecting to GitHub**

Version control is essential for tracking changes and collaborating on the project. Connect PyCharm to your GitHub account and initialize a Git repository. Don't forget to add a `.gitignore` file to exclude unnecessary files like your virtual environment and cache files.

- Enter your GitHub credentials under `File` > `Settings` > `Version Control` > `GitHub`
- Initialize a Git repository in your project folder using the terminal:

BASH

```
<span class="line"><span class="token" style="color: #702c00;;--phiki-dark-color: #ffb757">git</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">init</span><span class="token">
</span></span>
```

- Create a `.gitignore` file in the root directory to exclude unnecessary files, like the `.venv/` directory:

.gitignore

```
<span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 1</span><span class="token">.venv/
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 2</span><span class="token">.idea/
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 3</span><span class="token">__pycache__/
</span></span>
```

### **Step 4: Installing Libraries**

We’ll need several Python libraries for data collection, analysis, and reporting. Open the terminal in PyCharm and run:

BASH

```
<span class="line"><span class="token" style="color: #702c00;;--phiki-dark-color: #ffb757">pip</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">install</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">requests</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">pandas</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">matplotlib</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">seaborn</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">fpdf</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">reportlab</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">json5</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">pyyaml</span><span class="token">
</span></span>
```

Optionally, you can also the following libraries for later enhancement:

BASH

```
<span class="line"><span class="token" style="color: #702c00;;--phiki-dark-color: #ffb757">pip</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">install</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">beautifulsoup4</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">lxml</span><span class="token"> </span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">sqlalchemy</span><span class="token">
</span></span>
```

### **Step 5: Verifying the Setup**

Create a simple script to ensure everything is installed correctly. If you see the message “Setup complete and libraries imported successfully!”, you’re ready to dive into development!

PYTHON

```
<span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 1</span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">import</span><span class="token"> </span><span class="token">requests</span><span class="token">
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 2</span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">import</span><span class="token"> </span><span class="token">pandas</span><span class="token"> </span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">as</span><span class="token"> </span><span class="token">pd</span><span class="token">
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 3</span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">import</span><span class="token"> </span><span class="token">matplotlib</span><span class="token">.</span><span class="token">pyplot</span><span class="token"> </span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">as</span><span class="token"> </span><span class="token">plt</span><span class="token">
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 4</span><span class="token" style="color: #a0111f;;--phiki-dark-color: #ff9492">import</span><span class="token"> </span><span class="token">fpdf</span><span class="token">
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 5</span><span class="token">
</span></span><span class="line"><span class="line-number" style="color: #88929d;-webkit-user-select: none"> 6</span><span class="token" style="color: #023b95;;--phiki-dark-color: #91cbff">print</span><span class="token">(</span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">"</span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">Setup complete and libraries imported successfully!</span><span class="token" style="color: #032563;;--phiki-dark-color: #addcff">"</span><span class="token">)</span><span class="token">
</span></span>
```

In the next post, we’ll begin building the data collection module, where we’ll connect to various threat intelligence sources and start gathering data for analysis. Stay tuned!

---

## Navigation

- Parent: [Blog](https://bsb.perryconsulting.net/blog.md)
- Previous: [Setting Up the Core of IntelliSIEM – Structure, TDD, and API Connection](https://bsb.perryconsulting.net/blog/setting-up-the-core-of-intellisiem-structure-tdd-and-api-connection.md)
- Next: [A Year Later: Settling In and Starting Fresh](https://bsb.perryconsulting.net/blog/a-year-later-settling-in-and-starting-fresh.md)
