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 queuing
β”œβ”€β”€ utils.py
β”œβ”€β”€ storage.py
β”‚Β Β  β”œβ”€β”€ resources TK
β”‚Β Β  β”œβ”€β”€ css css files used to style the gui
β”‚Β Β  β”œβ”€β”€ fonts TK
β”‚Β Β  └── images TK
β”‚Β Β  └── state 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
Clone this wiki locally