Skip to content

Project Patterns

rocodes edited this page Oct 26, 2022 · 5 revisions

How the project is organized

Directory structure Description
β”œβ”€β”€ alembic database migration for SQLAlchemy
β”‚Β Β  └── versions database migrations
β”œβ”€β”€ changelog.md list of changes for each release
β”œβ”€β”€ CODE_OF_CONDUCT.md community code of conduct
β”œβ”€β”€ create_dev_data.py creates local db and config for test
β”œβ”€β”€ files files to create qubes-client exe
β”œβ”€β”€ LICENSE license file
β”œβ”€β”€ Makefile build automation
β”œβ”€β”€ MANIFEST.in files to include in sdist
β”œβ”€β”€ pyproject.toml code formatting configuration
β”œβ”€β”€ requirements list of dependencies to pip install
β”œβ”€β”€ run.sh script to run the client for test
β”œβ”€β”€ securedrop_client client application code
β”‚Β Β  β”œβ”€β”€ api_jobs queue jobs that make api requests
β”‚Β Β  β”œβ”€β”€ app.py creates & configures the application
β”‚Β Β  β”œβ”€β”€ config.py creates config file in homedir
β”‚Β Β  β”œβ”€β”€ crypto.py decrypts messages, encrypts replies
β”‚Β Β  β”œβ”€β”€ database.py representation of db
β”‚Β Β  β”œβ”€β”€ db.py sqlalchemy models
β”‚Β Β  β”œβ”€β”€ export.py exports files to qubes sd-devices vm
β”‚Β Β  β”œβ”€β”€ gui gui for the application
β”‚Β Β  β”œβ”€β”€ __init__.py contains the application version
β”‚Β Β  β”œβ”€β”€ logic.py controller, manage auth, networking
β”‚Β Β  β”œβ”€β”€ main.py TK
β”‚Β Β  β”œβ”€β”€ queue.py network operations queue class
β”‚ β”œβ”€β”€ utils.py safer calls to mkdir, untar etc
β”‚ β”œβ”€β”€ storage.py database actions
β”‚Β Β  β”œβ”€β”€ resources TK
β”‚Β Β  β”‚ β”œβ”€β”€ css css files used to style the gui
β”‚Β Β  β”‚ └── images TK
β”‚Β Β  └── state TK
β”‚Β Β  β”œβ”€β”€ domain.py TK
β”‚Β Β  └── state.py TK
β”œβ”€β”€ setup.cfg TK
β”œβ”€β”€ setup.py setuptools pkging config
β”œβ”€β”€ svs.sqlite database holding client content
β”œβ”€β”€ test-functional.sh randomize & run functional tests
β”œβ”€β”€ tests test suite
β”‚ β”œβ”€β”€ api_jobs test networking actions
β”‚ β”œβ”€β”€ files sample files used in testing
β”‚ β”œβ”€β”€ functional functional tests
β”‚ β”‚Β Β  └── cassettes vcr mock network calls for testing
β”‚ β”œβ”€β”€ gui GUI testing
β”‚ └── integration GUI integration tests
└── update-version.sh bump version in setup and config
Clone this wiki locally