There is a small admin panel implemented on https://craftable.pro/, there is also a backend for the project. We are looking for a frontend developer with knowledge of vue.js who can implement the technical task. There is no drawn design, but there is a reference photo that fits perfectly (column selection). The task for now is to create the functionality itself.
Visual Example

Task
• Implement drag & drop of columns and rows in the table.
• Store settings (order, visibility, sorting, etc.) on the server, linking them to userId.
1. Main Functionality
• Drag & Drop of Columns: change the order by dragging.
• Change Visibility: enable/disable columns.
• Saving Settings: all changes are automatically sent to the backend and recorded in the database.
• Restoring Settings: upon reloading or logging in on other devices, the user receives their last settings.
2. API
• GET /settings/columns?userId=XYZ – get settings for the user.
• POST /settings/columns – save/update settings (in the request body userId and corresponding data).
3. Database
• Table (for example, user_table_settings) with a user_id field and a settings field (JSON) for storing column configuration.
4. Authentication
• Use the existing login system to obtain userId.
• Ensure that the settings belong only to the authorized user.
5. Acceptance Criteria
• The user can change the order/visibility of columns and see these settings on subsequent logins.
• Data is not lost when switching from one device to another.
• There is no access to another user's settings.