Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
b46d38e
feat(#1): add API client and .env support
BytecodeBrewer May 21, 2026
f563ca9
feat(#1): complete api client conversion logic
BytecodeBrewer May 21, 2026
9eb3e94
feat(#1): improve the try-catch logic of api client
BytecodeBrewer May 22, 2026
7523780
feat(#1): adjust the response structure
BytecodeBrewer May 22, 2026
cb786ac
refactor(#1): adjust api client error handling
BytecodeBrewer May 22, 2026
4ac1b97
feat(#1): add test for client and ignore temp folder
BytecodeBrewer May 22, 2026
efd928c
test(#1): add 8 tests for client
BytecodeBrewer May 22, 2026
744b578
docs(#1): add a doc file about the client
BytecodeBrewer May 22, 2026
9dca921
refactor(#2): add src subfolders and refactor conversion logic
BytecodeBrewer May 24, 2026
ecf8a0a
refactor(#2): refactor cli interface and calc logic
BytecodeBrewer May 24, 2026
16c87ae
chore(#2): initialize python project
BytecodeBrewer May 24, 2026
a89c0e5
refactor(#2): add config for client
BytecodeBrewer May 24, 2026
70c32b0
docs(#2): describe project structure
BytecodeBrewer May 24, 2026
257ed1a
refactor(#2): add calculator service
BytecodeBrewer May 24, 2026
15a294e
fix(#2): add parameter to valid func
BytecodeBrewer May 24, 2026
a953717
feat(#3): add mainpage with some buttons and frames
BytecodeBrewer May 27, 2026
306a423
feat(#3): add menu, sidebar and subpages
BytecodeBrewer May 27, 2026
eacfc6a
feat(#3): add grid form for calc
BytecodeBrewer May 27, 2026
4cbd559
feat(#3): update calculate page with calc logic
BytecodeBrewer May 27, 2026
73a7c75
feat(#3): add conv from
BytecodeBrewer May 28, 2026
d303a89
feat(#3): update conv form and some refact in service
BytecodeBrewer May 28, 2026
b400594
refactor(#3): remove cli error handeling from service
BytecodeBrewer May 28, 2026
ce1429a
docs(#3): add gui.md and update readme structure
BytecodeBrewer May 28, 2026
e76dbb0
docs(#4): add research file
BytecodeBrewer Jun 1, 2026
50e1182
docs(#4): add comparison tables, summary and plan
BytecodeBrewer Jun 1, 2026
a919739
docs(#4): update the research result
BytecodeBrewer Jun 1, 2026
7e54e58
refactor(#7): move check_num to domain as parse_amount
BytecodeBrewer Jun 3, 2026
61e838f
test(#7): add tests for domain
BytecodeBrewer Jun 4, 2026
a3ca64e
feat(#7): remove check_num from calc service
BytecodeBrewer Jun 4, 2026
2f2a555
docs(#6): add metrics for first and second implementation
BytecodeBrewer Jun 7, 2026
7d702f8
docs(#6): add some explainations for first metrics
BytecodeBrewer Jun 7, 2026
aac7b2e
docs(#6): add some explainations for future metrics
BytecodeBrewer Jun 7, 2026
8891952
docs(#6): add visualization plan
BytecodeBrewer Jun 7, 2026
1cd51aa
docs(#6): update the research and the impplementation plan
BytecodeBrewer Jun 7, 2026
c99bdb9
docs(#6): clean the research and get it done
BytecodeBrewer Jun 7, 2026
c29067c
feat(#5): update the project structure
BytecodeBrewer Jun 7, 2026
1e229b8
feat(#5): add mock data
BytecodeBrewer Jun 7, 2026
e89e293
feat(#5): create trendchart with mock data
BytecodeBrewer Jun 8, 2026
1d3c74c
feat(#5): add all basic metrics
BytecodeBrewer Jun 8, 2026
017ef66
feat(#5): add min and max rates to chart
BytecodeBrewer Jun 8, 2026
019b07d
refactor(#5): remove one function
BytecodeBrewer Jun 8, 2026
f3934bf
test(#5): add tests for trend metrics
BytecodeBrewer Jun 9, 2026
b5c298b
refactor(#5): remove editing df in chart
BytecodeBrewer Jun 9, 2026
365aa7f
refactor(#5): add chart to gui
BytecodeBrewer Jun 9, 2026
2781f88
fix(#5): remove nan values from roll avg in chart
BytecodeBrewer Jun 9, 2026
3b46eff
fix(#5): control when chart should appear in gui
BytecodeBrewer Jun 9, 2026
68e4643
test(#5): add test for timeseriesservice
BytecodeBrewer Jun 9, 2026
cb90b8c
feat(#5): fix some cosmetical design
BytecodeBrewer Jun 9, 2026
e3b3d6b
feat(#8): move cli interface in the legacy file
BytecodeBrewer Jun 9, 2026
bff576b
docs(#8): update the README about the cli
BytecodeBrewer Jun 9, 2026
468a59b
docs(#8): fix some meistakes from readme
BytecodeBrewer Jun 9, 2026
d759b5c
docs(#9): change project name and a polished intro
BytecodeBrewer Jun 9, 2026
750cc8b
docs(#9): add current and future tech stack
BytecodeBrewer Jun 9, 2026
7207a5e
docs(#9): add more details to project status
BytecodeBrewer Jun 9, 2026
e4585cb
docs(#9): fix the mark notation for the structure section
BytecodeBrewer Jun 9, 2026
7378f67
docs(#9): add first step of setup guide
BytecodeBrewer Jun 9, 2026
7afe58f
docs(#9): complete the setup guide
BytecodeBrewer Jun 9, 2026
0c69d94
docs(#9): add full and latest roadmap
BytecodeBrewer Jun 9, 2026
4fe6ed7
docs(#9): link documentation
BytecodeBrewer Jun 9, 2026
b010255
docs(#9): link a banner
BytecodeBrewer Jun 9, 2026
cc15b46
docs(#9): remove useless notes
BytecodeBrewer Jun 9, 2026
d735a9e
chore(#9): rename the project
BytecodeBrewer Jun 9, 2026
a4518a9
fix(#9): fix key names in tests
BytecodeBrewer Jun 9, 2026
0f4c286
feat(#9): update pyproject.toml
BytecodeBrewer Jun 9, 2026
c35be0a
chore(#10): add some folders to gitignore
BytecodeBrewer Jun 13, 2026
e1944e4
feat(#10): add first workflow
BytecodeBrewer Jun 9, 2026
de64898
feat(#10): add governance files
BytecodeBrewer Jun 10, 2026
c22dd70
feat(#10): add licence file
BytecodeBrewer Jun 11, 2026
997eeed
feat(#10): complete code of conduct
BytecodeBrewer Jun 11, 2026
e550186
feat(#10): add guideline for contributing
BytecodeBrewer Jun 12, 2026
f878dd5
style(#10): removed unused imports
BytecodeBrewer Jun 13, 2026
daf3b31
style(#10): reformat the project and ignore settings
BytecodeBrewer Jun 13, 2026
c640350
ci(#10): modify workflow for commit msg
BytecodeBrewer Jun 13, 2026
ccad88f
ci(#10): fix the ci workflow
BytecodeBrewer Jun 13, 2026
886cee7
ci(#10): improve workflow triggers
BytecodeBrewer Jun 13, 2026
9c02b29
ci(#10): add templates
BytecodeBrewer Jun 13, 2026
c2416f0
chore(#10): correct the licence and project settings
BytecodeBrewer Jun 13, 2026
524671b
chore(#10): correct templates and readme
BytecodeBrewer Jun 13, 2026
7694bf1
chore(#10): correct the project version and license details
BytecodeBrewer Jun 13, 2026
504e835
ci(#10): fix commit message workflow
BytecodeBrewer Jun 13, 2026
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
21 changes: 21 additions & 0 deletions .githooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

commit_msg_file="$1"
commit_msg="$(head -n 1 "$commit_msg_file")"

pattern='^(feat|fix|docs|style|refactor|test|chore|ci|build|perf)\(#[0-9]+\): .+'

if echo "$commit_msg" | grep -Eq "$pattern"; then
exit 0
fi

echo "Invalid commit message:"
echo " $commit_msg"
echo ""
echo "Expected format:"
echo " feat(#1): add trend metrics"
echo ""
echo "Allowed types:"
echo " feat, fix, docs, style, refactor, test, chore, ci, build, perf"

exit 1
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Problem

Describe what is broken.

## Expected behavior

Describe what should happen instead.

## Steps to reproduce

1.
2.
3.

## Environment

- OS:
- Python version:
- Branch:
- Command used:

## Error output

```text

```
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## Goal

Describe what should be achieved.

## Why

Explain why this task is useful for the project.

## Scope

-
-
-

## Acceptance criteria

- [ ]
- [ ]
- [ ]

> [!NOTE]
> Priority:
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: 2

updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
27 changes: 27 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## What changed?

-
-
-

## Related issue

Closes #

## Tests

- [ ] I ran `pytest`
- [ ] Existing tests pass
- [ ] I added or updated tests where necessary
- [ ] Not needed because this only affects documentation or repository setup

## Checklist

- [ ] The change is focused
- [ ] No secrets or API keys are included
- [ ] Documentation was updated if needed
- [ ] CI is expected to pass

## Notes

-
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# This workflow ensures that the code is tested and meets quality standards on every push and pull request
name: Tests

on:
push:
pull_request:
branches:
- main
- develop

jobs:
tests:
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Install project
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"

- name: Run tests
run: pytest

- name: Check code quality
run: ruff check .

- name: Check code formatting
run: ruff format --check .

51 changes: 51 additions & 0 deletions .github/workflows/commit-message.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# This workflow is needed to validate commit messages in pull requests, if the githook was bypassed
name: Commit Message

on:
pull_request:

permissions:
contents: read
pull-requests: read

jobs:
validate-commit-messages:
name: Validate commit messages
runs-on: ubuntu-latest

steps:
- name: Check commit message
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Fetch base branch
run: git fetch origin "${{ github.base_ref }}"
- name: Validate commit message
shell: bash
run: |
pattern='^(feat|fix|docs|style|refactor|test|chore|ci|build|perf)\(#[0-9]+\): .{1,50}$'
invalid=0

while IFS= read -r commit_message; do
echo "Checking: $commit_message"

if echo "$commit_message" | grep -Eq '^(Merge|Revert)'; then
echo "Skipping technical commit: $commit_message"
continue
fi

if ! echo "$commit_message" | grep -Eq "$pattern"; then
echo "::error::Invalid commit message: $commit_message"
invalid=1
fi
done < <(git log --format=%s "origin/${{ github.base_ref }}..HEAD")

if [ "$invalid" -ne 0 ]; then
echo ""
echo "Expected format:"
echo " feat(#1): add feature"
echo ""
echo "Allowed types:"
echo " feat, fix, docs, style, refactor, test, chore, ci, build, perf"
exit 1
fi
12 changes: 7 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Python cache files
__pycache__
.pytest_cache
*.pyc
/src/argus.egg-info


# IDE settings
.vscode/
.vscode

# Temporary files (exercise files)
.temp/
# ruff cache
.ruff_cache

# Virtual environment
.env/
venv/
.env
3 changes: 0 additions & 3 deletions .vscode/settings.json

This file was deleted.

100 changes: 100 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Code of Conduct

## My Pledge

ARGUS is a technical learning, portfolio and open-source project focused on market analytics, data workflows and future AI-assisted monitoring.

I want this project to be a respectful and constructive space for learning, collaboration and technical discussion.

Everyone who participates in this project is expected to communicate with professionalism, patience and respect.

## Expected Behavior

Examples of behavior that helps this project:

- using welcoming and respectful language
- giving constructive feedback in issues, pull requests and reviews
- explaining technical suggestions clearly
- being patient with questions, mistakes and learning processes
- keeping discussions focused on the project and its goals
- respecting different levels of experience
- reporting bugs or problems with useful context
- proposing changes without attacking people

## Unacceptable Behavior

The following behavior is not acceptable:

- insults, harassment or personal attacks
- discriminatory language or behavior
- aggressive, hostile or mocking comments
- sexualized language or unwanted attention
- trolling, spam or repeated off-topic comments
- publishing private information without permission
- deliberately disruptive behavior in issues, pull requests or discussions
- pressuring maintainers to accept changes immediately

## Scope

This Code of Conduct applies to all project spaces, including:

- GitHub issues
- pull requests
- code reviews
- GitHub discussions
- the project wiki
- documentation contributions
- any future community spaces connected to ARGUS

It also applies when someone represents the project in public project-related communication.

## Maintainer Responsibilities

Project maintainers are responsible for keeping the project space respectful and productive.

Maintainers may take appropriate action in response to unacceptable behavior, including:

- asking someone to change their behavior
- editing or removing comments
- closing issues or pull requests
- limiting participation
- blocking users from the project if necessary

Maintainers should apply these rules fairly and focus on protecting a constructive technical environment.

## Enforcement Principles

Enforcement should be proportional to the situation.

Possible responses include:

1. **Clarification**
A maintainer explains why a behavior is inappropriate and asks for a change.

2. **Warning**
A maintainer gives a clear warning if the behavior continues or is serious.

3. **Temporary restriction**
A user may be temporarily limited from participating in discussions or pull requests.

4. **Permanent restriction**
A user may be blocked from the project in cases of harassment, repeated abuse or serious misconduct.

## Project Culture

ARGUS is built around careful technical growth.

The project values:

- clear thinking
- reliable code
- honest documentation
- constructive review
- long-term learning
- respectful collaboration

Strong technical opinions are welcome. Personal attacks are not.

## Attribution

This Code of Conduct is inspired by common open-source community guidelines and adapted for the ARGUS project.
Loading
Loading