Build a Customer Directory โข Show Your UI/UX Skills โข Document Your AI Journey
The main objective of this challenge is to assess your Front-end Development skills, your approach to UI/UX, and how you leverage AI tools in your workflow.
| โ | Your coding style and component architecture |
| โ | Knowledge of frameworks and modern technologies |
| โ | UI/UX skills and attention to detail |
| โ | Testing strategies |
| โ | How you collaborate with AI tools |
Important
๐ค AI collaboration is mandatory. We don't want to know if you used AI. We want to know how you used it. Document your journey!
๐ก Check out our frontend-guideline for some of our patterns and best practices.
- ๐ The Challenge
- ๐ Layout
- ๐ API
- โญ Evaluation Criteria
- ๐ค AI Journey (Required)
- ๐ค Submission
- โ FAQ
Build a Customer Directory application that allows users to browse, search, and view customer details.
flowchart LR
subgraph INPUT["๐ฅ Data Source"]
API[("JSON API\nCustomer Data")]
end
subgraph APP["โ๏ธ Your Application"]
FETCH["Fetch Data"]
LIST["Customer List\n+ Filters"]
DETAIL["Customer\nDetail Page"]
end
subgraph UX["โจ User Experience"]
SEARCH["๐ Search"]
FILTER["๐ Filter by State"]
PAGINATE["๐ Pagination"]
end
API --> FETCH
FETCH --> LIST
LIST --> DETAIL
SEARCH --> LIST
FILTER --> LIST
PAGINATE --> LIST
You must implement:
| Feature | Description |
|---|---|
| ๐ Search | Search customers by name and/or last name |
| ๐ Filter by State | Filter the customer list by Brazilian states |
| ๐ Pagination | Navigate between pages of customer cards |
| ๐ค Customer Cards | Display customer information in card format |
| ๐ Detail Page | Internal page with more customer details (use your creativity!) |
| ๐งช Tests | We'll be happy if you write tests for it |
Note
This is just a prototype! We want to see your ability to propose improvements and new contributions to the UI.
Feel completely free to add:
- โจ Animations and micro-interactions
- ๐ฏ New filters and sorting options
- ๐ฑ Responsive design improvements
- โฟ Accessibility features
- ๐ Dark mode
- ๐ Any feature you think adds value
https://jsm-challenges.s3.amazonaws.com/frontend-challenge.json
๐ Click to see JSON structure
{
"results": [
{
"gender": "female",
"name": {
"title": "mrs",
"first": "ione",
"last": "da costa"
},
"location": {
"street": "8614 rua santa catarina",
"city": "ponta grossa",
"state": "distrito federal",
"postcode": 24358,
"coordinates": {
"latitude": "-73.6753",
"longitude": "142.4098"
},
"timezone": {
"offset": "-3:00",
"description": "Brazil, Buenos Aires, Georgetown"
}
},
"email": "ione.dacosta@example.com",
"dob": {
"date": "1968-01-24T18:03:23Z",
"age": 50
},
"phone": "(01) 5765-3027",
"cell": "(75) 9398-8111",
"picture": {
"large": "https://randomuser.me/api/portraits/women/50.jpg",
"medium": "https://randomuser.me/api/portraits/med/women/50.jpg",
"thumbnail": "https://randomuser.me/api/portraits/thumb/women/50.jpg"
}
}
]
}Tip
Feel free to use a BFF (Backend for Frontend) layer if you think it makes sense for your architecture.
We assess your submission across 7 competencies. There are no "levels" to choose โ just deliver your best work, and we'll evaluate where you stand.
|
|
Caution
This section is mandatory. Submissions without AI documentation will not be evaluated.
Create an /ai-journey folder in your repository documenting how you collaborated with AI tools.
๐ ai-journey/
โโโ ๐ README.md # Summary of your AI usage
โโโ ๐ prompts.md # Key prompts you used
โโโ ๐ learnings.md # What you learned in the process
## ๐ง Prompt: Component architecture
**Tool:** ChatGPT-4 / Claude / Copilot
**What I asked:**
"How should I structure my React components for a customer directory app?"
**What happened:**
Initial suggestion was over-engineered. I simplified to...
**Final approach:**
[your architecture]## โ
What worked well
- AI helped with CSS animations I wasn't familiar with
- Great for generating test boilerplate
## โ What didn't work
- Accessibility suggestions were incomplete
- Had to research WCAG guidelines myself
## ๐ What I'd do differently
- Be more specific about design system constraints
- Ask for simpler solutions firstChoose your favorite framework/library. We're framework-agnostic!
๐ your-repo/
โโโ ๐ src/ # Source code (tests alongside components)
โโโ ๐ ai-journey/ # AI documentation (required!)
โ โโโ ๐ README.md
โ โโโ ๐ prompts.md
โ โโโ ๐ learnings.md
โโโ ๐ README.md # Setup instructions
flowchart LR
A["1๏ธโฃ Create public\nGitHub repo"] --> B["2๏ธโฃ Open Issue\nin this repo"]
B --> C["3๏ธโฃ Wait for\nour feedback"]
Issue format:
- Title:
[Frontend] Your Name - Content: Link to your repository + brief description
| Recommended | Need more time? |
|---|---|
| 10 days | Just let us know in the issue! |
๐ ๏ธ What frameworks can I use?
Any modern framework: React, Vue, Angular, Svelte, Next.js, Nuxt, etc. Choose what you're most comfortable with.
๐ผ Are there open positions?
Not always, but we maintain a talent pool. Great submissions stay on our radar for future opportunities.
โ ๏ธ What if I can only complete part of the challenge?
Submit what you have! Partial submissions with quality code tell us more than complete submissions with poor code. Just document what's missing and why.
๐จ Should I follow the layout exactly?
No! The layout is just a starting point. We want to see your creativity and UI/UX improvements. Feel free to redesign it entirely if you have good ideas.
๐ How will I know my seniority level?
We don't ask you to self-declare a level. We evaluate your submission across all criteria and determine fit based on our internal standards.
๐ง Can I use component libraries (Material UI, Chakra, etc.)?
Yes, but we also want to see your CSS skills. A mix of custom styling and library components is perfectly fine.
| Position | Repository |
|---|---|
| โ๏ธ Backend | backend-challenge |
๐ Open an Issue ย โขย โ๏ธ vagas-dev@juntossomosmais.com.br
Before asking, check if your question was already answered in previous issues.
Made with ๐ by the Engineering Team at Juntos Somos Mais