Skip to main content

RFiD Tracker: Getting Started

Tech Stack

  • Language: Python 3.14 (Managed via Nix)
  • Framework: Django
  • Package Manager: uv (Fastest Python resolver/installer)
  • Environment: Nix (with the std library)
  • Command Runner: just (alternative to make)

Setting Up the Environment

You do not need to install Python or Django manually. You only need Nix.

Step 1: Install Nix

If you don't have it, install Nix and enable “experimental features” (Flakes and Nix Command).

Consider doing the latter like that:
1) sudo mkdir /root/.config/nix

2) sudoedit /root/.config/nix/nix.conf

3) In there, add this line experimental-features = nix-command flakes

Step 2: Enter the Development Shell

Navigate to the project root and run:

nix develop

What happens when you run this? Nix reads shells.nix and packages.nix to:

  1. Download and provide Python 3.14.
  2. Install system tools like curl, git, uv, and just.
  3. Set up your PATH to include the project’s virtual environment (.venv/bin).
  4. Activate a custom shell prompt (the “embed console”).

Step 3: The “Just” Command Runner

Once inside the Nix shell, we use a tool called just to run common tasks.

Command

Action

just

Lists all available commands.

just init-db

Run this first. It migrates the DB and asks you to create a Superuser.

just dev

Starts the Django development server.

just make-migrations

Generates new DB migration files after model changes.

just fmt

Automatically formats all code using treefmt.

just test

Runs the Django test suite.

Step 4: Running the dev server

Consider using these commands after all previous steps:

nix init-db creates and initializes the DB, prompting for superuser credentials.
nix dev starts a local dev server.
Congratulations! You are ready to develop.