Metadata-Version: 2.4
Name: cpdlog
Version: 0.2.0
Summary: Record and build reports on Engineering CPD Activities
Keywords: CPD
Author-email: Alex Guinman <alex@guinman.id.au>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
License-File: LICENSE
Requires-Dist: typer>=0.24.0
Requires-Dist: cheroot>=11.1.2
Requires-Dist: pydantic>=2.0
Requires-Dist: altair>=6.0.0
Requires-Dist: polars>=1.38.1
Requires-Dist: flask>=3.1.2
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Project-URL: Source, https://github.com/aguinane/CPDLog/
Provides-Extra: test

# CPD Log

This program can be used to record and analyse Continued Professional Development (CPD) Activities. It will create CSV file that lets you add new activities.

CPD Rules are based on the [BPEQ](https://bpeq.qld.gov.au/cpd/) and [Engineers Australia](https://www.engineersaustralia.org.au/sites/default/files/content-files/2016-12/cpd_types_and_conditions_march_2014.pdf) conditions. 

## Install

```sh
pip install cpdlog
```

Or alternatively, if you have uv installed you can run it directly by calling `uvx cpdlog`.

## Add an entry

```sh
cpdlog new --logfile example.csv
```

If the logfile does not exist yet it will create one. It will then prompt you to enter the activity details.

```
Date [2023-01-06]:
Topic: Example Training Course
Hours: 2
A: TertiaryEducation
B: IndustryEducation
C: WorkplaceLearning
D: PrivateStudy
E: Service to Industry
F: Papers
G: IndustryEngagement
H: Other
 (A, B, C, D, E, F, G, H) [B]:
Provider []: Company ABC
Learning outcome: I learnt some things
Added entry to example.csv
```


## Show recent entries

```sh
cpdlog recent --logfile example.csv --num 5
```

This will then show the most recent entries in the file, this can be useful if you want to check what CPD you have already entered. 

```
There are 2 entries in the CPD Log File 'example.csv'
2023-01-07      1.0hrs  Example Webinar
2023-01-06      2.0hrs  Example Training Course
```

## Web GUI

A web GUI is also available to be generated based on the CSV file. 

```python -m cpdlog gui --logfile example.csv```

!["Summary Screenshot"](docs/web-summary.png "Summary Screenshot") !["New Screenshot"](docs/web-new.png "New Screenshot")


## Logfile location

If you don't want to parse the  `--logfile` argument every time, it will assume the CSV is located at `cpdlog.csv` in whatever directory you run the command from.

Alternatively, you can set the path to your logfile as an environment variable `CPD_LOG_FILE`.


