8000
Skip to content

juntossomosmais/frontend-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

62 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Juntos Somos Mais

<frontend-challenge />

Build a Customer Directory โ€ข Show Your UI/UX Skills โ€ข Document Your AI Journey

๐Ÿ‡ง๐Ÿ‡ท Leia em Portuguรชs

React Vue TypeScript AI Powered


๐ŸŽฏ What We're Looking For

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.


๐Ÿ“‘ Table of Contents


๐Ÿš€ The Challenge

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
Loading

๐Ÿ“‹ Requirements

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

๐Ÿ“ Layout

Layout Reference

Note

This is just a prototype! We want to see your ability to propose improvements and new contributions to the UI.

๐ŸŽจ Be Creative!

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

๐Ÿ”Œ API

Endpoint

https://jsm-challenges.s3.amazonaws.com/frontend-challenge.json

Sample Response

๐Ÿ“„ 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.


โญ Evaluation Criteria

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.

๐ŸŽฏ Problem Solving

  • Correct implementation of all requirements
  • Edge cases handling (empty states, errors, loading)
  • Logical and efficient approach

๐Ÿ—๏ธ Code Architecture

  • Clear component structure and separation
  • State management strategy
  • Reusable and maintainable code
  • Consistent project organization

โœจ Code Quality

  • Readability over cleverness
  • Meaningful naming conventions
  • Consistent style (linting, formatting)
  • Proper TypeScript usage (if applicable)

๐Ÿงช Testing

  • Unit tests for components/utilities
  • Integration tests for user flows
  • Tests that catch real bugs
  • Good testing practices

๐ŸŽจ UI/UX

  • Visual design and attention to detail
  • Responsive design across devices
  • Accessibility (a11y) considerations
  • Smooth interactions and feedback
  • Creative improvements to the prototype

๐Ÿš€ Performance & Best Practices

  • Bundle size awareness
  • Core Web Vitals optimization
  • SEO basics (semantic HTML, meta tags)
  • Modern frontend practices

๐Ÿค– AI Collaboration

  • Transparency in AI usage
  • Critical thinking about AI-generated code
  • Iteration and refinement over copy-paste
  • Understanding of what the AI produced

๐Ÿค– AI Journey (Required)

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.

๐Ÿ“ Required Structure

๐Ÿ“ ai-journey/
โ”œโ”€โ”€ ๐Ÿ“„ README.md          # Summary of your AI usage
โ”œโ”€โ”€ ๐Ÿ“„ prompts.md         # Key prompts you used
โ””โ”€โ”€ ๐Ÿ“„ learnings.md       # What you learned in the process

๐Ÿ“ What to Document

prompts.md โ€” The interesting parts, not everything

## ๐Ÿ”ง 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]

learnings.md โ€” Reflect on the experience

## โœ… 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 first

๐Ÿ“ค Submission

๐Ÿ’ป Tech Stack

React Vue Angular Next.js Nuxt

Choose your favorite framework/library. We're framework-agnostic!

๐Ÿ“ Repository Structure

๐Ÿ“ your-repo/
โ”œโ”€โ”€ ๐Ÿ“‚ src/                  # Source code (tests alongside components)
โ”œโ”€โ”€ ๐Ÿ“‚ ai-journey/           # AI documentation (required!)
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ README.md
โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ prompts.md
โ”‚   โ””โ”€โ”€ ๐Ÿ“„ learnings.md
โ””โ”€โ”€ ๐Ÿ“„ README.md             # Setup instructions

๐Ÿ“ฎ How to Submit

flowchart LR
    A["1๏ธโƒฃ Create public\nGitHub repo"] --> B["2๏ธโƒฃ Open Issue\nin this repo"]
    B --> C["3๏ธโƒฃ Wait for\nour feedback"]
Loading

Issue format:

  • Title: [Frontend] Your Name
  • Content: Link to your repository + brief description

โฐ Timeline

Recommended Need more time?
10 days Just let us know in the issue!

โ“ FAQ

๐Ÿ› ๏ธ 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.


๐Ÿ”— Other Challenges

Position Repository
โš™๏ธ Backend backend-challenge

๐Ÿ’ฌ Questions?

๐Ÿ“‹ 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

About

๐Ÿš€ Our hiring challenge to Front-end Developers

Resources

License

Stars

Watchers

Forks

Contributors

0