How nelexey/antiqq works
Purpose and Entry Points
This is a full-stack antique marketplace: catalog browsing, account management, carts/orders, reviews, provenance, address handling, and seller consignment requests. The backend is a Django application entered through backend/manage.py, deployed through backend/core/wsgi.py or backend/core/asgi.py; its API route composition is in backend/core/urls.py. The frontend is a Vue single-page application bootstrapped by frontend/src/main.ts and rooted at frontend/src/App.vue.
Backend API and Domain Boundary
Django apps own domain models, serializers, views, and URL endpoints, creating a conventional REST-style boundary between browser clients and persistent business data. Core application registration/runtime configuration is centralized in backend/core/settings.py; each domain exposes routes through app-level urls.py, including backend/catalog/urls.py, backend/orders/urls.py, and backend/users/urls.py. Django admin is also a material operational interface, with custom admin templates under backend/templates/admin.
Catalog, Discovery, and Product Context
The catalog domain is the central product source of truth: antiques, categories, images, publication/seller fields, favorites, and site settings are represented through backend/catalog/models.py. It exposes query/filter behavior in backend/catalog/filters.py, API representations in backend/catalog/serializers.py, and endpoint behavior in backend/catalog/views.py. Product detail is augmented by separate provenance and review domains, rather than embedding those concerns in catalog: backend/provenance/models.py and backend/reviews/models.py.
Identity, Addresses, and Customer State
A custom user domain manages authentication/account identity and related email-verification lifecycle through backend/users/models.py, backend/users/views.py, and asynchronous work in backend/users/tasks.py. Addresses are a separate reusable domain with geocoding support (backend/addresses/geocoder.py) and API endpoints (backend/addresses/views.py). On the client, authenticated session state is maintained in frontend/src/stores/auth.ts; route-level account flows include frontend/src/views/Login.vue, frontend/src/views/Profile.vue, and frontend/src/views/VerifyEmail.vue.
Commerce and Fulfillment Flow
The primary purchase flow is catalog/product detail → client cart → checkout → persisted order and order items. Client cart state resides in frontend/src/stores/cart.ts, while purchase screens are frontend/src/views/Cart.vue and frontend/src/views/Checkout.vue. Backend order persistence, authorization rules, API transformations, and workflows are separated into backend/orders/models.py, backend/orders/permissions.py, backend/orders/serializers.py, backend/orders/views.py, and backend/orders/tasks.py. Order administration includes summary-oriented admin presentation in backend/orders/templates/admin/order_summary_change_list.html.
Consignment and Operational Notifications
Seller intake is modeled independently from customer ordering. Consignment requests, associated images, serializers, and endpoints live in backend/consignments/models.py, backend/consignments/serializers.py, and backend/consignments/views.py; asynchronous handling is in backend/consignments/tasks.py. The selling UI is frontend/src/views/ConsignmentSell.vue. Email templates for registration and both user/admin consignment communications are maintained under backend/templates/emails, indicating server-side notification rendering.
Frontend, Deployment, and Runtime Infrastructure
The frontend uses Vue, TypeScript, Vite, and a router (frontend/src/router/index.ts), with a shared HTTP integration boundary at frontend/src/api/client.ts. Catalog browsing and product presentation are implemented by frontend/src/views/Catalog.vue, frontend/src/views/ProductDetail.vue, and reusable components such as frontend/src/components/CatalogFilters.vue and frontend/src/components/ProvenanceTimeline.vue. Containerized execution is defined by docker-compose.yml, backend/Dockerfile, and frontend/Dockerfile; the frontend includes Nginx configuration at frontend/nginx.conf. Celery is configured from backend/core/celery.py, supporting the domain task modules, though the queue broker/service is not identifiable from the supplied tree.
Main entry points: urls.py Django runtime · orders/models.py Orders and fulfillment · index.ts Router and screens · users/models.py Users and identity
Components 18
Vue SPA
- Vue application
frontend/src/main.ts - Router and screens · Catalog, product, account, cart, checkout, and selling flows.
frontend/src/router/index.ts - HTTP client
frontend/src/api/client.ts - Auth session state
frontend/src/stores/auth.ts - Client cart state
frontend/src/stores/cart.ts - Catalog product UI · Browsing, filters, product detail, and provenance timeline.
frontend/src/views/Catalog.vue
Django API
- Django runtime · Settings, WSGI/ASGI deployment entry points, and API route composition.
backend/core/urls.py - Catalog domain · Antiques, categories, images, publication, sellers, favorites, filtering, and REST endpoints.
backend/catalog/models.py - Provenance and reviews · Independent product-detail context domains.
backend/provenance/models.py - Users and identity · Custom accounts, authentication, and email verification APIs.
backend/users/models.py - Addresses and geocoding · Reusable address API with geocoding support.
backend/addresses/views.py - Orders and fulfillment · Order persistence, item workflows, serializers, and authorization.
backend/orders/models.py - Seller consignments · Seller intake requests, images, and API endpoints.
backend/consignments/models.py
Async work
- Celery worker runtime · Dispatches domain background tasks.
backend/core/celery.py - Domain task modules · User verification, order workflows, and consignment handling.
backend/orders/tasks.py - Email templates · Registration and consignment messages for users and administrators.
backend/templates/emails
Deployment & operations
- Django admin · Custom admin templates include order summaries.
backend/templates/admin - Container deployment · Runs backend and frontend containers; frontend is served through Nginx.
docker-compose.yml
Connections 26
- Vue application → Router and screens: mounts
- Router and screens → Catalog product UI: renders
- Router and screens → Auth session state: account flows
- Router and screens → Client cart state: cart and checkout
- Catalog product UI → HTTP client: API requests
- Auth session state → HTTP client: authenticated requests
- Client cart state → HTTP client: checkout request
- HTTP client → Django runtime: REST API
- Django runtime → Catalog domain: catalog routes
- Django runtime → Users and identity: user routes
- Django runtime → Addresses and geocoding: address routes
- Django runtime → Orders and fulfillment: order routes
- Django runtime → Seller consignments: consignment routes
- Catalog domain → Provenance and reviews: product detail context
- Users and identity → Addresses and geocoding: customer addresses
- Orders and fulfillment → Catalog domain: purchased items
- Orders and fulfillment → Users and identity: customer authorization
- Django admin → Catalog domain: manages inventory
- Django admin → Orders and fulfillment: order summaries
- Users and identity → Celery worker runtime: verification jobs
- Orders and fulfillment → Celery worker runtime: workflow jobs
- Seller consignments → Celery worker runtime: handling jobs
- Celery worker runtime → Domain task modules: executes
- Domain task modules → Email templates: renders notifications
- Container deployment → Vue application: serves frontend
- Container deployment → Django runtime: runs backend