Freelance Full-Stack Developer (Vue JS/PHP) Remote Project in Romania
Unfortunately, this offer is no longer available. More job offers !
Company Description
Our client is an experienced market research company focused on innovation trough experience. Our core values: customer experience, data quality, customization, digitalization and correct pricing. His research methods are developed in-house, using a mix of cutting-edge technology and an innovative approach.
Mission Description
Our client is looking for a Freelance Full-Stack developer (Vue JS/ PHP) to help with coding a PHP script that can import a CSV file and let the user assign columns to CSV fields, using a combination of Directus API (headless CMS & API system), VueJS (used in Directus Backend) and PHP.
This is just a module from a larger project that we’re working on and it would be very useful if you could send me a proper quote.
Description follows:
The client is working with 2 tables, one called subscriber and one that’s called subscriber_custom_fields.
Table structure is:
– subscriber:
- subscriber.email
- subscriber.country
- subscriber.city
- subscriber.tags
- subscriber.custom_fields (JSON value)
– subscriber_fields
- subscriber_fields.name
- subscriber_fields.description
- subscriber_fields.type (number, date, countdown, text)
The import script should have the following functionality:
0. A new panel / extension is created into Directus Backend. When accessed, here’s what the admin should see.
1. Admin is presented with a upload box / dropbox for a CSV file. As soon as the file is dropped into the magic box, a PHP script reads the file and processes column names, adding them into an array and displays them via VueJS (integrated into Directus Backend).
2. After reading the column names from the CSV, the script reads all the table column names from the tables `subscriber` and `subscriber_fields` using the Directus API. It concatenates them in a long array and then displays a selector with all the CSV column names and corresponding column names from our tables. Each column name from the CSV must be followed by a smart selector like we have here https://vuejs.org/v2/examples/select2.html.
- 2.1. If I write a name in this selector that can’t be found in the Smart Dropdown, then add the name written into `subscriber_fields.name` and add / update that column name into `subscriber.custom_fields`.
- 2.2. Each CSV column to field selector should contain an Ignore value.
- 2.3. If tags is selected as a field for one of the CSV columns, then the tags list should be appended.
3. After Admin selects all the corresponding fields for the CSV, the script should do an API call to add / update the subscribers, bearing in mind that the `subscriber.custom_fields` is a JSON value.
This script should function as an extension to Directus, the platform being used for the backend, and for the API platform. All functions should use the API, and the script should also function with an OAuth call when calling the API. Another thing worth mentioning, is that it should have a resume functionality. This is needed in case the script stops processing because of timeouts.
The second part of this module is a webhook, that can accept JSON / Form Post or GET with Query Variables. The add / update functionality should be identical to the first part, and the response of this webhook should be a JSON object with the latest `subscriber` data or detailed error.
Required Skills
- Freelance Full-Stack – Vue JS/ PHP 7;
- Directus CMS;
- REST API / JSON.
Unfortunately, this offer is no longer available.