Skip to content

Patricia rodrigues#182

Closed
patiregina89 wants to merge 48 commits intodynamox-s-a:mainfrom
patiregina89:patricia-rodrigues
Closed

Patricia rodrigues#182
patiregina89 wants to merge 48 commits intodynamox-s-a:mainfrom
patiregina89:patricia-rodrigues

Conversation

@patiregina89
Copy link
Copy Markdown

No description provided.

@campofernando
Copy link
Copy Markdown
Contributor

Hello @patiregina89! Thanks for your submission. Just letting you know that we got your pull request and are in the process of reviewing it. We will soon provide you with our considerations.

@gabschlemper
Copy link
Copy Markdown

Challenge 1

Functional Requirements and User Stories

In today's digital landscape, a well-crafted landing page is crucial for business success. Your challenge is to create a landing page that not only looks great but also performs exceptionally well in terms of loading speed, SEO, and user experience.

1 - User Stories

  1. As a user, I want to view a landing page that follows the provided Figma design.
  2. As a user, I want the page to be fully responsive on all devices.
  3. As a user, I want the page to load quickly with optimized images and assets.
  4. As a user, I want to be able to change the images in the first section carousel by clicking on the respective image.
  5. As a user, I want to click on the buttons with label "+ Leia mais" and be redirected to https://dynamox.net/blog.
  6. As a user, in the footer, I want to click on the respective social media icons, text links and be redirected to the listed links on the Figma design.

2 - Technical Requirements

  1. Use TypeScript.
  2. Use React.
  3. [/] Implement comprehensive SEO best practices:
    • Meta tags optimization
    • Semantic HTML structure
    • Social media meta tags
      // Parcial pois o requisito de "Implementar práticas abrangentes de SEO" não foi totalmente cumprido. O projeto utiliza uma estrutura HTML semântica adequada, mas faltam meta tags essenciais para SEO (como descrição, palavras-chave, Open Graph e Twitter).
  4. Cover the application logic with automated tests

3 - Bonus

  1. Deploy your application to a cloud provider and provide a link for the running app.
  2. Achieve 95+ score on Lighthouse (Desktop).
  3. Add smooth animations and micro-interactions.

Pontos a melhorar:

SEO: Faltam meta tags essenciais (description, keywords, Open Graph, Twitter). Recomendo adicionar essas tags no [index.html] ou via componente Head.
Testes automatizados: Não há testes unitários ou de integração cobrindo a lógica da aplicação. Recomendo implementar testes com Jest e Testing Library.
Deploy: Não foi realizado deploy em cloud nem fornecido link para aplicação rodando.
Lighthouse: A pontuação de performance ficou abaixo de 95. Sugiro revisar otimizações de carregamento, lazy loading de imagens, minificação de assets e uso de cache.
Documentação: Poderia incluir instruções claras de instalação, execução e testes no README.


Challenge 2: Event Management System 🎟️

Functional Requirements and User Stories

Authentication & Authorization

  1. As a user, I want to authenticate using the pre-configured email and password:
    • Implement fake JWT token generation.
    • Store token in localStorage.
    • Include token in API requests headers.
  2. As a user, I want to only access protected routes if I am authenticated.
  3. As a user, I want to logout of the system.
  4. As a user, I want to be redirected based on my role:
    • Admin -> Admin Dashboard
    • Reader -> Events List

Admin Features (Role: admin)

  1. As an admin, I want to create new events with the following information:
    • Event name (required)
    • [/] Date and time (required, must be future date)
      // Parcial pois po sistema ainda permite criar eventos com horários no passado. Por exemplo, ao selecionar a data de hoje e um horário já transcorrido, o evento é criado sem validação adequada.
  • Location (required)
  • Description (required, min 50 characters)
  • Category (required, select from: Conference, Workshop, Webinar, Networking, Other)
  1. As an admin, I want to edit existing event details.
  2. As an admin, I want to delete events.
  3. As an admin, I want to view events.

Reader Features (Role: reader)

  1. As a reader, I want to view events.
  2. As a reader, I want to view past events separately from upcoming events.
  3. As a reader, I want to search and filter events.
  4. As a reader, I want to sort events by:
    • Date
    • Name

Technical Requirements

  1. Use TypeScript.
  2. Use React.
  3. Use Next.js Check out to get started.
  4. Implement state management using Redux Toolkit.
  5. Create a mock REST API using json-server.
  6. Use Material UI 6 for styling with custom theme configuration.
  7. Ensure responsive design for all screen sizes.
  8. [/] Ensure correct business logic and behavior with automated unit tests.
    // Parcial pois os testes automatizados cobrem apenas a lógica de autenticação. As demais regras de negócio (como validação de eventos, permissões, etc.) não estão testadas.

Bonus

  1. Add e2e tests with Cypress. Check out to get started.
  2. Implement role-based route protection using HOCs or middleware.
  3. Deploy your application to a cloud provider and provide a link for the running app.
  4. Add Storybook documentation for UI components.

Pontos a melhorar:

Validação de data/hora: O sistema permite criar eventos com datas e horários no passado. Recomendo implementar validação para garantir que apenas datas futuras sejam aceitas.
Testes automatizados: Os testes cobrem apenas autenticação. Faltam testes para regras de negócio (validação de eventos, permissões, fluxos de CRUD). Recomendo ampliar cobertura com Jest e Testing Library.
Storybook: Não há documentação de componentes com Storybook. Recomendo adicionar para facilitar manutenção e colaboração.
Deploy: Não foi realizado deploy em cloud nem fornecido link para aplicação rodando.
Documentação: Poderia incluir instruções claras de instalação, execução, testes e exemplos de uso no README.

Evaluation Criteria

Each one of the items above will be evaluated as "Not Implemented", "Implemented with Issues", "Implemented", or "Implemented with Excellence". In order to assess different profiles and experiences, we expect candidates applying to more senior levels demonstrate a deeper understanding of the requirements and implement more of them in the same deadline.

In general we will be looking for the following:

  1. Anyone should be able to follow the instructions and run the application.
  2. Front-end code is successfully integrated with a fake REST API.
  3. Stories were implemented according to the functional requirements.
  4. Problem-solving skills and ability to handle ambiguity.
  5. Code quality, readability, and maintainability.
  6. Code is well-organized and documented.
  7. Application layout is responsive.

Parabéns pela entrega do desafio! Você demonstrou domínio das principais tecnologias requisitadas, com uma implementação funcional, responsiva e alinhada ao design proposto. Os fluxos de autenticação, proteção de rotas e manipulação de eventos estão bem resolvidos, e a experiência do usuário é agradável, com animações e interações que agregam valor. Como pontos de melhoria, recomendo ampliar a cobertura de testes automatizados para contemplar todas as regras de negócio, aprimorar a validação de datas e horários, adicionar meta tags SEO e documentação técnica, além de organizar melhor o código seguindo princípios de clean code e SOLID. Também seria interessante realizar o deploy em cloud e documentar os componentes com Storybook. No geral, sua entrega está muito boa e mostra potencial para evoluir ainda mais. Parabéns pelo esforço e dedicação!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants