feat: dockerize app and convert to pyproject setup
- Add pyproject.toml with proper metadata and dependency groups - Create multi-stage Dockerfile for backend - Add docker-compose.yml with dev/prod profiles - Create frontend Dockerfile with nginx - Add .dockerignore for optimized builds - Update README with Docker instructions and troubleshooting - Remove requirements.txt in favor of pyproject.toml - Ensure data persistence with Docker volumes
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: pyproject.toml replaces requirements.txt
|
||||
The project SHALL use `pyproject.toml` as the primary dependency and build configuration file.
|
||||
|
||||
#### Scenario: Install from pyproject.toml
|
||||
- **WHEN** developer runs `pip install -e .`
|
||||
- **THEN** all runtime dependencies are installed correctly
|
||||
- **AND** the package is installed in editable mode
|
||||
|
||||
### Requirement: Dependencies are properly declared
|
||||
The `pyproject.toml` SHALL declare all runtime, development, and optional dependencies in appropriate groups.
|
||||
|
||||
#### Scenario: Install with dev dependencies
|
||||
- **WHEN** developer runs `pip install -e ".[dev]"`
|
||||
- **THEN** testing tools (pytest, pytest-asyncio) are installed
|
||||
- **AND** development tools are available
|
||||
|
||||
### Requirement: Package metadata is complete
|
||||
The `pyproject.toml` SHALL include project metadata such as name, version, description, authors, and license.
|
||||
|
||||
#### Scenario: Package info is accessible
|
||||
- **WHEN** user queries package metadata via `pip show backup-tool`
|
||||
- **THEN** name, version, description, and author information are displayed
|
||||
|
||||
### Requirement: Console scripts are defined
|
||||
The `pyproject.toml` SHALL define console entry points for running the application.
|
||||
|
||||
#### Scenario: Run via CLI command
|
||||
- **WHEN** user runs `backup-tool` or `uvicorn backup_tool.main:app`
|
||||
- **THEN** the application starts successfully
|
||||
- **AND** the console script is properly registered
|
||||
Reference in New Issue
Block a user