versione 0.8
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# Copilot Instructions for infissionline-vite
|
||||
|
||||
Welcome to the `infissionline-vite` project! This document provides essential guidelines for AI coding agents to be productive in this codebase. Follow these instructions to understand the architecture, workflows, and conventions specific to this project.
|
||||
|
||||
---
|
||||
|
||||
## Project Overview
|
||||
|
||||
This project is a web-based configurator for infissi (windows and doors) built using Vite. It includes a modular structure for managing assets, data, and JavaScript logic. The primary goal is to provide a dynamic and interactive user experience for configuring and visualizing products.
|
||||
|
||||
### Key Components
|
||||
|
||||
1. **Frontend**:
|
||||
- **HTML Templates**: Located in `src/index.html` and `src/assets/_menu*.html`.
|
||||
- **CSS Styles**: Defined in `src/assets/style.css`.
|
||||
- **JavaScript Logic**: Core functionality resides in `src/js/`.
|
||||
- `app.js`: Entry point for initializing the application.
|
||||
- `configurator.js`: Handles product configuration logic.
|
||||
- `menu_builder.js`: Dynamically builds menus.
|
||||
- `params_parser.js`: Parses URL parameters.
|
||||
- `price_calculator.js`: Calculates product prices.
|
||||
- `starter.js`: Bootstraps the application.
|
||||
|
||||
2. **Data Management**:
|
||||
- **JSON Files**: Product data is stored in `src/assets/data/`.
|
||||
- `modelli/`: Contains model-specific data for `alluminio` and `pvc`.
|
||||
- `sistemi/`: Defines system-level configurations (e.g., handle heights).
|
||||
- **Images**: Product images are organized in `src/assets/data/icone/` and `src/assets/data/immagini/`.
|
||||
|
||||
3. **Build System**:
|
||||
- Vite is used for development and production builds.
|
||||
- Configuration is defined in `vite.config.js`.
|
||||
|
||||
---
|
||||
|
||||
## Developer Workflows
|
||||
|
||||
### Building the Project
|
||||
- Use `pnpm install` to install dependencies.
|
||||
- Run `pnpm dev` to start the development server.
|
||||
- Use `pnpm build` to create a production build.
|
||||
|
||||
### Debugging
|
||||
- Open the browser console to inspect JavaScript errors.
|
||||
- Use `console.log` for debugging specific parts of the code.
|
||||
- Modify `src/js/` files to test changes dynamically during development.
|
||||
|
||||
### Testing
|
||||
- No explicit testing framework is set up. Use manual testing by interacting with the configurator in the browser.
|
||||
|
||||
---
|
||||
|
||||
## Project-Specific Conventions
|
||||
|
||||
1. **File Organization**:
|
||||
- Separate `alluminio` and `pvc` data under `modelli/` and `sistemi/`.
|
||||
- Maintain a clear hierarchy for images and models.
|
||||
|
||||
2. **Data Format**:
|
||||
- JSON files follow a structured format for product attributes.
|
||||
- Example: `src/assets/data/modelli/alluminio/finestra_1_anta/modello.json`.
|
||||
|
||||
3. **Dynamic Imports**:
|
||||
- Use dynamic imports in JavaScript for better performance.
|
||||
|
||||
4. **Naming Conventions**:
|
||||
- Use lowercase and underscores for file names.
|
||||
- Follow camelCase for JavaScript variables and functions.
|
||||
|
||||
---
|
||||
|
||||
## Integration Points
|
||||
|
||||
- **External Libraries**:
|
||||
- Vite: Build tool for modern web development.
|
||||
- Ensure all dependencies are listed in `package.json`.
|
||||
|
||||
- **Cross-Component Communication**:
|
||||
- JavaScript modules communicate via imports/exports.
|
||||
- Data flows from JSON files to the frontend via `configurator.js`.
|
||||
|
||||
---
|
||||
|
||||
## Examples
|
||||
|
||||
### Adding a New Product Model
|
||||
1. Create a new folder under `src/assets/data/modelli/{material}/{product_name}`.
|
||||
2. Add a `modello.json` file with the product's attributes.
|
||||
3. Update `configurator.js` to include the new model if necessary.
|
||||
|
||||
### Debugging Price Calculation
|
||||
1. Modify `src/js/price_calculator.js`.
|
||||
2. Add `console.log` statements to inspect intermediate values.
|
||||
3. Test changes by running `pnpm dev` and interacting with the configurator.
|
||||
|
||||
---
|
||||
|
||||
For further questions or updates, refer to the `src/js/` directory for examples of existing patterns.
|
||||
Reference in New Issue
Block a user