DBuilder Control Panel is a specialized web-based configuration tool designed for the precision drawing and customization of garage doors. Unlike standard image-based configurators, this project utilizes high-performance HTML5 Canvas rendering to dynamically draw door components based on exact coordinates and user-defined parameters.
- Frontend: JavaScript (ES5), HTML5, CSS3
- Rendering Engine: HTML5 Canvas API (Core logic for coordinate-based drawing)
- Backend: Python with Flask Framework (API services)
- Database: MongoDB (To store door configurations and coordinate sets)
- Environment:
python-dotenvfor configuration management
- Coordinate-Based Drawing: Precisely renders garage door panels, tracks, and hardware using dynamic canvas coordinates.
- Real-time Configuration: Adjust dimensions, panel counts, and styles with instant visual updates on the canvas.
- Interactive Control Panel: A dedicated UI to manipulate the properties of the drawn objects.
- Export/Save Capability: Save specific door configurations to MongoDB for future retrieval or manufacturing reference.
- Responsive Canvas: The drawing area scales to accommodate different screen sizes while maintaining coordinate accuracy.
- Python 3.10+
- MongoDB (Local or Atlas)
- A modern web browser with Canvas support
Clone the repository:
git clone https://github.com/Sundaraj0828/DBuilder_control_panel.git
cd DBuilder_control_panelCreate a .env file in the root directory:
MONGO_URI=mongodb://localhost:27017/dbuilder_db
FLASK_APP=app.py
FLASK_ENV=developmentpip install -r requirements.txtflask runAccess the control panel at http://127.0.0.1:5000/.
DBuilder_control_panel/
├── static/
│ ├── js/ # Core Drawing Logic
│ │ ├── canvas_logic.js # Coordinate calculations & Canvas API calls
│ │ └── ui_controls.js # Event listeners for the control panel
│ ├── css/ # Control panel styling
├── templates/ # HTML structure containing the <canvas> element
├── app.py # Flask backend for saving/loading configs
├── requirements.txt # Backend dependencies
└── README.md # Documentation
The project translates numerical data points into a visual representation of a garage door.
- Input: User selects door height and width via the control panel.
- Calculation: JavaScript calculates the (x, y) coordinates for each panel and hinge.
- Draw: The
CanvasRenderingContext2Dmethods (likerect()andlineTo()) render the shapes based on those calculated coordinates.
This project is licensed under the MIT License.
Developed with ❤️ by [Sundaraj0828]