We appreciate your interest in joining our BBG gang as a Full-Stack Developer. This take-home challenge will help us evaluate your coding skills, problem-solving approach, and ability to create functional web applications.
Build a basic product catalog application that allows users to:
- View a list of products
- See details of individual products
- Filter products by category
Technology Stack:
- PHP with a lightweight framework of your choice
- Use a SQL database (MySQL or PostgreSQL)
Features to Implement:
-
Create an API with the following endpoints:
- GET
/api/products
- List all products with pagination (limit 10 per page) - GET
/api/products/:id
- Get a single product by ID - GET
/api/categories
- List all product categories
- GET
-
Data Requirements:
- Create a simple database schema for products with at least these fields:
- id
- name
- price
- description
- category_id
- image_url (can be a placeholder)
- Create a categories table with at least:
- id
- name
- Seed the database with at least 15 sample products across 3-5 categories
- Create a simple database schema for products with at least these fields:
Technology Stack:
- Use your preferred frontend framework/library or pure JS with CS
Features to Implement:
-
Product Listing Page:
- Display products in a grid with basic information (name, price, image)
- Show pagination controls
- Includes a simple dropdown to filter by category
-
Product Detail Page:
- Show complete product information when a user clicks on a product
- Include a "Back to Listing" button
- Multilingual support
- Implement search functionality to filter products.
- Implement shopping cart.
- Implement checkout process.
- Clean, readable code with appropriate comments
- Basic error handling
- Responsive design (mobile-friendly)
Your submission will be evaluated based on:
- Functionality (does it work as expected?)
- Code quality and organization
- Proper use of the selected technologies
- UI/UX considerations
- Documentation quality
Please submit your code as Pull Request to this repository.
Start mysql database
docker compose up