Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Git
.git
.github
.githooks
.gitignore

# Local environment and secrets
.venv
.env

# Python cache and test cache
__pycache__
.pytest_cache
.ruff_cache
.mypy_cache
.coverage
htmlcov

# Build artifacts
dist
build
*.egg-info

# Project docs not needed for the test image
docs
31 changes: 21 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ README.md
- Tkinter
- pytest

### Current data source
### Current data sources

- ExchangeRate API for live currency conversion
- yfinance for historical market-data retrieval and analytics
Expand All @@ -140,8 +140,6 @@ Planned or likely future technologies include:

### Data processing

- pandas
- NumPy
- possibly Polars later for larger datasets

### Storage
Expand All @@ -153,14 +151,10 @@ Planned or likely future technologies include:

### Visualization and UI

- matplotlib
- Plotly
- NiceGUI

### DevOps and deployment

- GitHub Actions
- Docker
- Docker Compose
- cloud deployment later

Expand Down Expand Up @@ -199,6 +193,7 @@ Recommended for development:
- VS Code
- a virtual environment
- pytest
- Docker, if you want to run tests in an isolated container environment

> [!NOTE]
> Runtime dependencies are managed through `pyproject.toml`.
Expand Down Expand Up @@ -254,7 +249,7 @@ pip install -e ".[dev]"

## API Key Setup

ARGUS currently uses the ExchangeRate API for live currency conversion.
ARGUS uses the ExchangeRate API for live currency conversion. Historical analytics currently use yfinance and do not require an additional API key.

### 1. Create an API key

Expand Down Expand Up @@ -284,7 +279,7 @@ The `.env` file must stay local and should never be committed.

---

## Running ARGUS
## Running ARGUS Locally

Start the current Tkinter GUI:

Expand All @@ -294,6 +289,22 @@ python -m argus.main

This starts the local ARGUS prototype with calculator, currency conversion and basic analytics views.

## Running Argus in Docker

ARGUS includes a minimal Docker setup for running the test suite in an isolated container environment.

Build the Docker image:

```bash
docker build -t argus .

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Rename the Dockerfile to match Docker defaults

With the build file committed as lowercase dockerfile, the documented docker build -t argus . command here will not find it on case-sensitive filesystems such as Linux CI; Docker's default build path is a file literally named Dockerfile unless -f is supplied. Rename the file to Dockerfile or change this command to docker build -f dockerfile -t argus . so the new Docker setup works as documented.

Useful? React with 👍 / 👎.

```

Run ARGUS in a container:

```bash
docker run --rm argus
```

### Legacy CLI / Debug Interface

The legacy CLI is still available for quick local checks and debugging:
Expand All @@ -310,7 +321,7 @@ python src/legacy/debug_main.py

## Running Tests

Run the test suite:
Run the test suite locally:

```bash
pytest
Expand Down
12 changes: 12 additions & 0 deletions dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM python:3.11-slim

WORKDIR /app

COPY pyproject.toml README.md ./
COPY src/ ./src/
COPY tests/ ./tests/

RUN python -m pip install --upgrade pip \
&& pip install -e ".[dev]"

CMD ["pytest"]
Loading