Windows-ready chemistry utility for resolving SMILES via PubChem and extracting melting points (°C). with a feature to visualize molecules
Recommended for new users (even without Python/Conda installed):
-
Download/clone this folder from GitHub.
-
Double-click: bootstrap_chem_reporter.bat
What the bootstrap does:
Detects (or installs) Miniforge in your user profile (no admin needed).
Creates/updates the chem-reporter conda environment from environment.yml.
Ensures the launcher works and creates a Desktop shortcut (supports OneDrive Desktop).
Starts the Unified Launcher GUI.
If Windows warns about execution policy, right-click the .bat → Run anyway.
The Desktop link will appear under your real Desktop path (often C:\Users\<you>\OneDrive\Desktop).Requires:
- Miniforge / Conda
- Windows 10 or 11
- Internet connection (for live PubChem)
Create the environment:
conda env create -f environment.yml
conda activate chem-reporter
copy .env.example .envscripts\run_app.batscripts\run_batch.bat input\test_molecules.csvscripts\run_launcher.bat- choose option manually or fetch CSV
- paste a SMILES structure in the box and press search
- example SMILES: aspirin: CC(=O)OC1=CC=CC=C1C(=O)O
- in the folder: input you can find an example csv
Each compound folder includes:
results/<compound>/
metadata.json
melting_point.csv
structure.sdf
IUPAC.txt- open
visualize_molecule.ipynband run the cells
A global summary.csv aggregates all results.
Offline unit tests use cached PubChem JSONs (aspirin/caffeine) to verify parsing.
pytestchem-reporter/
assets/
icon.ico
input/
test_molecules.csv
results/ # auto-created by runs
scripts/
run_app.bat
run_batch.bat
run_launcher.bat
run_batch.py
src/
app_gui.py # GUI for single compound
launcher_gui.py # Unified launcher (Tkinter)
pubchem.py # network + parsing
io_utils.py, rdkit_utils.py, models.py, config.py
tests/
data/ # cached JSON (aspirin/caffeine)
test_offline_parsing.py
tools/
make_shortcut.ps1
environment.yml
bootstrap_chem_reporter.bat
README.md
edit src/config.py
TIMEOUT_SECONDS– HTTP timeout for PubChem requestsUSER_AGENT– sent with every request (keep it informative) logging is enabled in entrypoints>
import logging
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(message)s')- No Desktop shortcut appears: Your Desktop may be under OneDrive. The bootstrap targets the real path from
- PowerShell: [Environment]::GetFolderPath('Desktop'). Check that folder.
- “No module named src” running tests: Ensure tests/conftest.py exists and src/init.py is present.
- Icon not showing in taskbar: Tkinter sets the window icon; the taskbar may still show python.exe until packaging (post-MVP).
Conda not found: The bootstrap auto-installs Miniforge. If you prefer manual install, install Miniforge and re-run.
To make a portable version:
-
Zip the project folder with /scripts/*.bat and /assets/icon.ico
-
Optionally create a desktop shortcut via PowerShell script in tools/make_shortcut.ps1




