Files

4.0 KiB

MIL-001 Project setup

Metadata

Key Value
ID MIL-001
CrossReference BC-001
Language en
Domain it

Version History

Date Status Author Reviewer Change Commit
2026-10-28 Accepted Jens Tirsvad Nielsen AI as stand-in for S01 Initial version e1a3d8d

Purpose

Decide whether the repository is configured well enough to start writing the Selenium code: project configuration, folder structure, constants, tooling, documentation skeleton and repository metadata.

Deliverable

A repository on branch mil-001-project-setup with pyproject.toml, the src/ and tests/ skeleton, constants.py, a Python .gitignore, a Doxyfile, the README with venv instructions, ADR-0001, and the repository description and topics set on the git host.

Go / No-Go Criteria

# Criterion (objectively checkable) Go No-Go
1 python -m venv .venv, python -m pip install --upgrade pip and pip install -e ".[dev]" succeed on Python 3.13 All three succeed Any fails
2 pytest runs and exits 0 on the skeleton Exit 0 Non-zero
3 [project] dependencies lists only selenium Only selenium Any other runtime dependency
4 The git host shows a description and at least 5 topics Both present Either missing
5 .env is ignored and is not read by any file under src/ or tests/ git check-ignore .env succeeds; no match for .env in code Otherwise
6 The code review record against QC-PY-001 is Go Go No-Go

Dependencies

Depends on Reason
None First gateway; the Business Case, Stakeholder Analysis and Project Plan are accepted before it starts

Traceability

Business Case objective / KPI / user story Reference
Objective 5 (repository configuration) BC-001
Success criteria 4 and 5 BC-001

Ownership

Role Stakeholder ID (SA)
Owner S01
Approving reviewer S01

Target Date

2026-10-29 — inside the one-week window of the Business Case.

Tasks

# Task Summary Needs its own Use Case/User Story? Reference
1 Set repository description and topics Set a short description and topics (python, selenium, udemy, 100-days-of-code, web-automation, pytest) on the git host through its API. The token is read from the shell environment loaded from .env by the operator and is never printed, committed, tested or imported by the project (CN-005). No
2 Add Python .gitignore Add a Python .gitignore that also ignores .venv/, .env, build output, caches and generated Doxygen output so that no secret or artifact is committed (CN-005). No
3 Create pyproject.toml and package layout Configure the project in pyproject.toml with requires-python = ">=3.13", selenium as the only runtime dependency, pytest as a dev extra, and the src/fill_out_form/ and tests/ folders (CN-006). No
4 Create constants.py Put every URL, selector, link text, search term, field value and timeout in constants.py so the logic has no magic values (CN-003). No
5 Add Doxyfile Add a Doxyfile configured for Python sources in src/ and write Doxygen-style comments in the skeleton (CN-003). No
6 Write README with venv and test instructions Create README.md from the framework template with how to create a local .venv, run python -m pip install --upgrade pip, install, run and test (CN-004). No
7 Record dependency and fixture decisions as ADR-0001 Record that selenium is the only runtime dependency, that the form step has a local HTML fixture because the original demo site may be offline, and that browser runs happen in Docker (CN-006). No