How koskin17/users_database works
Purpose and Delivery Forms
This repository implements a user-management application with two packaging models:
• A standalone local application rooted at App/start.py, with application logic in App/classes.py.
• A Docker-oriented split deployment rooted at Docker_App/start.py, separating GUI and server/API roles.
A prebuilt Windows distribution is present at App_exe/start.exe.
Standalone Application
App/start.py is the primary local entry point. It likely initializes the UI, application objects, and local persistence workflow. Core domain behavior is centralized in App/classes.py; cross-cutting access or validation behavior is likely implemented through App/decorators.py.
Local UI assets are colocated under App/Font and App/Pictures, indicating a desktop GUI rather than a browser client.
Docker Client/Server Boundary
The containerized architecture separates presentation from backend service:
• GUI client: Docker_App/gui_app/gui.py
• HTTP/API layer: Docker_App/server_app/api.py
• Server bootstrap/runtime: Docker_App/server_app/server.py
Docker_App/start.py is the composition entry point and likely selects or launches these roles. The GUI communicates with the server through the API boundary rather than directly owning server-side operations.
Domain and Persistence
User records are the central persisted data concern, supported by database backup artifacts in App/DB_backup, including App/DB_backup/usersDB_09042026_4. SQL setup/sample operations are documented in App/SQL queries with test data.txt.
The likely flow is: UI collects user actions → domain classes validate/process them → persistence operations read or update the users database. In the Docker variant, requests instead cross from GUI to API before reaching server-side processing and persistence.
Runtime and Dependencies
Both delivery modes are Python applications with independently declared dependencies:
• App/requirements.txt
• Docker_App/requirements.txt
Container execution is defined by Docker_App/Dockerfile; .dockerignore controls the Docker build context. This makes Docker the primary infrastructure boundary for the distributed variant.
Assets and Operational Artifacts
Visual resources are duplicated between local and Docker GUI layouts:
• App/Font, App/Pictures
• Docker_App/gui_app/Font, Docker_App/gui_app/Pictures
Database backups and the executable are operational/distribution artifacts, not runtime integration points for the Docker client-server architecture.
Main entry points: App/start.py Local entry point · classes.py User domain logic · gui.py GUI client · Docker_App/start.py Docker composition entry
Components 15
Standalone desktop app
- Local entry point
App/start.py - User domain logic · Validates and processes user operations.
App/classes.py - Access and validation
App/decorators.py - Desktop UI assets
App/Pictures - Local dependencies
App/requirements.txt
Docker client/server deployment
- Docker composition entry · Launches or selects the split application roles.
Docker_App/start.py - GUI client
Docker_App/gui_app/gui.py - Docker GUI assets
Docker_App/gui_app/Pictures - HTTP API · Client/server boundary for user operations.
Docker_App/server_app/api.py - Server runtime
Docker_App/server_app/server.py - Container image build
Docker_App/Dockerfile - Container dependencies
Docker_App/requirements.txt
Data and distribution
- Users database · Central store for user records.
App/DB_backup/usersDB_09042026_4 - SQL setup and sample data
App/SQL queries with test data.txt - Windows distribution · Standalone packaged delivery artifact.
App_exe/start.exe
Connections 15
- Local entry point → User domain logic: invokes
- User domain logic → Access and validation: uses
- Local entry point → Desktop UI assets: renders with
- User domain logic → Users database: reads and updates
- SQL setup and sample data → Users database: defines setup data
- Windows distribution → Local entry point: packages
- Local dependencies → Local entry point: provides dependencies
- Docker composition entry → GUI client: launches role
- Docker composition entry → Server runtime: launches role
- GUI client → Docker GUI assets: renders with
- GUI client → HTTP API: HTTP requests
- HTTP API → Server runtime: dispatches operations
- Server runtime → Users database: reads and updates
- Container image build → Docker composition entry: containerizes
- Container dependencies → Container image build: installed during build