This assessment aims to evaluate your expertise in both frontend and backend Drupal development, as well as your general web development skills. You'll be tasked with developing a landing page that incorporates several key features often encountered in our projects.
The design for the landing page is available on Figma: 👉 ImageX Skill Assessment Design
To inspect design elements and access all features, you'll need a Figma account. You can sign up for a free account here: https://www.figma.com
- The project must be built using Bootstrap.
- We expect a fully responsive theme.
- Feel free to use any Drupal modules or make any architectural decisions you deem necessary.
- Implement small, frequent commits with clear and descriptive commit messages. Each commit should address a single feature.
- You should not spend more than 16 hours on this assignment. Please indicate the total time spent on each of the features in your README.md.
- Provide a copy of the database including the content used for the landing page. Add it in the
databasefolder with the nameskill-assesment.sql
The header should include the following elements:
-
Company Logo: Display the company logo on the left side of the header.
-
Customizable Menu: Implement a Drupal menu that is manageable through the Drupal admin interface. Site administrators should be able to easily update the menu items (e.g., change labels, add/remove links, reorder items).
-
CTA (Call to Action) Button: Include a CTA button on the header.
- The button's text and URL should be fully customizable.
- You can implement the button as:
- A dedicated menu item within the Drupal menu system OR
- A separate custom block that allows editors to configure the button label and link.
- Choose the implementation that fits best with your theme structure, but ensure flexibility for content editors.
Make sure the header is responsive and adapts well to different screen sizes.
- A custom block that can be placed on any page.
- Users should be able to add a title, description, image, and CTA button.
This section should display a list of team members using data retrieved from an external API.
-
API Integration
- Fetch data from the DummyJSON Users API.
- The request must include authentication (e.g., by passing a token in the request headers).
- Use the following fields from the API response to populate each user card:
firstNameandlastName: combined to display the user's full name.image: used as the user's profile picture.company.title: displayed as the user's job title or role.address.cityandaddress.stateCode: used to display where the user lives.university: displayed as the user's educational background.
-
Configurable Block
- Implement a custom Drupal block that displays the team members.
- The block must provide a configuration form in the UI to allow site administrators to set the number of users to display (e.g., display 3, 6, or 9 members).
Evaluation Criteria:
- The focus is not just on functionality but also on code quality.
- Your implementation will be reviewed for:
- Clean, maintainable code.
- Use of Drupal best practices.
- Good use of abstractions, services, and configuration.
- Clear and modular organization.
💡 You don't need to overengineer—keep it simple but structured. Thoughtful decisions, even in small implementations, are key to a strong submission.
- The company logo.
- A customizable menu.
- A list of social media links.
- Copyright information.
- Focus on clean, maintainable code.
- Ensure the website is responsive and optimized for both desktop and mobile.
The project includes the foundational setup commonly used in IXM projects.
Here are the steps to get started with the project:
We use Docker and DDEV for local development. Make sure you have both installed on your machine.
Here you can find the installation instructions for Docker
Here you can find the installation instructions for DDEV. DDEV is a tool that simplifies Docker container management for web development projects.
Once you install both Docker and DDEV, you can verify the installation by running:
docker --version && ddev --versionAfter DDEV is installed you can continue to Project Setup:
The project uses SDC and in case you have any additional questions please consult the FRONTEND.MD
1-) Start the DDEV environment
ddev start2-) Install the project dependencies using composer within the container.
ddev composer install3-) Import the provided database dump.
ddev import-db --file=database/db.sql4-) Run Drush deploy to update the database and clear caches
ddev drush deploy4-) Install frontend packages and build frontend assets using yarn
ddev exec swat frontend:installIf you want to build or watch for changes in a frontend component package.
ddev exec swat frontend:buildOnce it's finished, you should be able to open https://ixm-skill-assesment.ddev.site/
Good luck!
If you find any issues when commiting your code, try to removing .git hooks by running the command below:
rm -rf .git/hooksTo complete this assessment, you will need to work on your own copy of the repository and submit your solution via a pull request (PR). Follow the steps below carefully.
If you don't already have a Bitbucket account, you can create one for free at: 👉 https://bitbucket.org/account/signup/
Create a fork of this repository under your own Bitbucket account. This will allow you to work on the project independently.
To fork this repository:
- Go to the original repository URL: 👉 https://bitbucket.org/ixm/ixm-skill-assesment/src/master/
- Click the “More options” menu (
•••) in the top right. - Select “Fork this repository”.
- Choose your personal Bitbucket workspace.
- Click “Create fork”.
Once your fork is created, clone it to your local development environment:
git clone https://bitbucket.org/your-username/ixm-skill-assesment.git
cd ixm-skill-assesmentCreate a new branch using your name. This will help us track submissions individually.
git checkout -b your-nameExample:
git checkout -b john-doeFollow the instructions in the Getting Started section below to spin up the environment using Docker/DDEV and install dependencies.
You’ll also need to import the database and build frontend assets as described.
- Develop the landing page as specified in the requirements.
- Make small, meaningful commits with descriptive messages.
- Ensure that each commit addresses a single feature or task.
Once you're happy with your progress, push your local branch to your forked repository:
git push origin your-nameSubmit your work by creating a pull request (PR) from your fork to our original repository.
To open a PR:
- Go to your forked repo on Bitbucket.
- Click “Create pull request”.
- Set the source to your branch and the destination to
masteron the original repository. - Add a clear title and detailed description.
- Include the total time spent on each feature.
- Mention modules used, any challenges, technical decisions or assumptions.
- List any known issues or limitations (if applicable).
After submitting your pull request, send us an email or message to let us know it’s ready for review.






