Make elements draggable and create drop zones:
// Make draggable
el.draggable = true;
el.addEventListener("dragstart", (e) => {
e.dataTransfer.setData("text", el.id);
});
// Drop zone
zone.addEventListener("dragover", (e) => e.preventDefault());
zone.addEventListener("drop", (e) => {
const id = e.dataTransfer.getData("text");
zone.appendChild(document.getElementById(id));
});