---
title: "Prerequisites"
description: "Required software and tools for TraceRTM development"
keywords: [development, prerequisites, setup, requirements]
---

# Prerequisites

Before setting up TraceRTM for development, ensure you have the required software and tools installed.

## Required Software

### Python 3.12+

TraceRTM requires Python 3.12 or higher.

**Check version:**
```bash
python3 --version
# Should output: Python 3.12.x or higher
```

**Installation:**
- **macOS**: `brew install python@3.12`
- **Linux**: Use your distribution's package manager
- **Windows**: Download from [python.org](https://www.python.org/downloads/)

### Node.js 18+

For frontend development, Node.js 18+ is required.

**Check version:**
```bash
node --version
# Should output: v18.x.x or higher
```

**Installation:**
- **macOS**: `brew install node`
- **Linux**: `curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt-get install -y nodejs`
- **Windows**: Download from [nodejs.org](https://nodejs.org/)

### PostgreSQL 14+

TraceRTM uses PostgreSQL as the primary database.

**Check version:**
```bash
psql --version
# Should output: psql (PostgreSQL) 14.x or higher
```

**Installation:**
- **macOS**: `brew install postgresql@14`
- **Linux**: `sudo apt-get install postgresql-14`
- **Windows**: Download from [postgresql.org](https://www.postgresql.org/download/windows/)

### Git

Required for version control.

**Check version:**
```bash
git --version
```

**Installation:**
- **macOS**: `brew install git`
- **Linux**: `sudo apt-get install git`
- **Windows**: Download from [git-scm.com](https://git-scm.com/download/win)

## Recommended Tools

### Docker & Docker Compose

For containerized development and testing.

**Installation:**
- **macOS**: `brew install docker docker-compose`
- **Linux**: Follow [Docker installation guide](https://docs.docker.com/engine/install/)
- **Windows**: Download [Docker Desktop](https://www.docker.com/products/docker-desktop)

### Make

For running development commands.

**Installation:**
- **macOS**: Included with Xcode Command Line Tools
- **Linux**: `sudo apt-get install build-essential`
- **Windows**: Use [Chocolatey](https://chocolatey.org/) or WSL

### Code Editor

Recommended editors:
- **VS Code**: [Download](https://code.visualstudio.com/)
- **PyCharm**: [Download](https://www.jetbrains.com/pycharm/)
- **Vim/Neovim**: For terminal-based editing

## Python Packages

### pip

Python package manager (usually included with Python).

**Upgrade pip:**
```bash
python3 -m pip install --upgrade pip
```

### Virtual Environment

Create isolated Python environments:

```bash
# Create virtual environment
python3 -m venv venv

# Activate (macOS/Linux)
source venv/bin/activate

# Activate (Windows)
venv\Scripts\activate
```

## Database Setup

### PostgreSQL Configuration

Ensure PostgreSQL is running:

```bash
# macOS
brew services start postgresql@14

# Linux
sudo systemctl start postgresql

# Windows
# Start PostgreSQL service from Services panel
```

### Create Database

```bash
# Connect to PostgreSQL
psql -U postgres

# Create database
CREATE DATABASE tracertm_dev;

# Create user (optional)
CREATE USER tracertm_user WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE tracertm_dev TO tracertm_user;
```

## Environment Variables

Set up environment variables:

```bash
# Copy example env file
cp .env.example .env

# Edit .env file
# Set DATABASE_URL, API_KEY, etc.
```

## Verify Installation

Run verification script:

```bash
# Check all prerequisites
python3 scripts/check_prerequisites.py
```

## Next Steps

- [System Requirements](./01a-system-requirements) - Detailed system requirements
- [Local Development](./02-local-development) - Set up local development environment
- [Docker Setup](./03-docker-setup) - Use Docker for development
