#### **Project Goals**:
Create a web platform that allows:
1. Automatically generating drafts of listings on eBay based on the folder structure with photos.
2. Pulling characteristics of spare parts from pre-parsed catalogs.
3. Providing the ability to manually edit product cards before publication.
4. Flexibly working with multiple catalogs (by the number of car brands), allowing the addition and structuring of new catalogs at any time.
---
#### **Development Stages**:
### 1. **Data Collection and Analysis**
- **Task Description**:
- Photos are organized by structure: `Photo → Brand → Series → VIN-code → Parts folders`.
- Each car brand will have its own separate catalog containing exploded diagrams and characteristics of spare parts.
- **Key Requirements**:
- Support for working with multiple catalogs simultaneously.
- Flexibility of data structure: the ability to add new brands and their catalogs without stopping the system's operation.
- **Result**:
- Complete understanding of the data structure, catalog schemes, and necessary eBay fields.
---
### 2. **Development of Platform Modules**
#### 2.1. **Photo Upload Module**
- **Functionality**:
- Ability to upload the folder structure with photos.
- Automatic recognition of the structure (brand → series → VIN-code → parts).
- Creating drafts of listings based on folders.
- **Technologies**: Python (for file processing), Django/Flask (web part), PostgreSQL/MySQL (for data storage).
---
#### 2.2. **Catalog Management Module**
- **Functionality**:
- Adding new brands and their catalogs to the platform through a user-friendly interface.
- Support for parsing for each catalog (Jaguar, BMW, Mercedes-Benz, etc.).
- Universal parser for exploded diagrams with the ability to customize for different brands.
- Storing all data about parts in the database, linked to the brand and model.
- **Data Structuring**:
- **Level 1**: Brand.
- **Level 2**: Model/series.
- **Level 3**: VIN-code.
- **Level 4**: Part.
- **Capabilities**:
- Adding a new catalog:
- Brand name.
- Data source (link to exploded diagram, files, other resources).
- Parser configuration.
- Interface for manual editing of catalog data.
- **Technologies**: BeautifulSoup/Selenium (for parsing), PostgreSQL/MySQL (for data storage).
---
#### 2.3. **Module for Automating eBay Draft Creation**
- **Functionality**:
- Filling in mandatory eBay fields:
- Title (automatically generated based on the specified structure).
- Category (based on the type of part).
- Item Specifics (characteristics from the catalog).
- Compatibility (according to catalog data).
- Condition, Description, Pricing (manual entry or suggestions).
- Saving drafts with the possibility of subsequent editing.
- **Technologies**: eBay API (Python SDK).
---
#### 2.4. **Product Card Editing Interface**
- **Functionality**:
- Viewing and editing drafts of listings.
- Checking data accuracy before publication.
- Notifications about empty or incorrect fields.
- **Technologies**: React/Angular/Vue.js (frontend), Django REST Framework (backend).
---
#### 2.5. **Publication Management Module**
- **Functionality**:
- Publishing ready cards on eBay.
- Tracking publication status (published, draft, error).
- Logging all actions.
- **Technologies**: eBay API.
---
### 3. **System Testing**
- Testing each module:
- Correctness of parsing exploded diagrams.
- Generating cards based on folders with photos.
- Pulling data from the catalog.
- Working with eBay API.
- Testing integration of all modules.
---
### 4. **Manual and Automatic Catalog Updates**
- Adding functionality for regular updates of catalog data.
- Checking and removing outdated data.
---
### 5. **Deployment and Support**
- Deployment on the server.
- Creating documentation for users and developers.
- Support and addition of new functionality (if necessary).
---
#### **Technology Stack**:
- **Backend**: Python (Django/Flask).
- **Frontend**: React/Angular/Vue.js.
- **Database**: PostgreSQL/MySQL.
- **Data Parsing**: BeautifulSoup/Selenium.
- **eBay API**: Python SDK.
- **Hosting**: AWS/DigitalOcean/VPS.
---
Corrections and changes are possible during the process.
Applications are accepted only from those who understand the essence and requirements of the task.
Priority is given to performers with experience in similar projects.