This project is a drag-and-drop application implemented using TypeScript, showcasing a simple yet effective way to manage draggable and droppable elements on a web page.
The primary goals of this project were:
- To master TypeScript for building scalable and type-safe applications.
- To explore drag-and-drop functionality using the DOM API.
- To practice organizing a project with modular code and clean architecture.
Check out the live demo

Clone the repository:
git clone https://github.com/FilonenkoDima/Drag-And-Drop.git
cd Drag-And-Drop
Install dependencies:
npm install
Start the development server:
npm start
Drag-And-Drop/
├── src/
│ ├── components/ # Contains reusable components
│ ├── decorators/ # Contains reusable decorators
│ ├── models/ # Interfaces and type definitions
│ ├── state/ # Project State Management
│ ├── util/ # Helper functions
│ ├── app.ts # Main application logic
├── dist/ # Compiled output for production
├── index.html # Entry point for the application
├── app.css # Styles
├── tsconfig.json # TypeScript configuration
├── package.json # Project metadata and dependencies
├── webpack.config.js # Webpack settings
- Add a new task with a description.
- Drag tasks between different states (e.g., "In Progress", "Completed").
- Changes reflect immediately without reloading the page.
Contributions are welcome! Fork the repository, make changes, and submit a pull request.