{"id":30806604,"url":"https://github.com/jonasjs/aiqfome-front","last_synced_at":"2025-09-06T01:13:33.340Z","repository":{"id":295515062,"uuid":"989392588","full_name":"JonasJs/aiqfome-front","owner":"JonasJs","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-25T23:39:20.000Z","size":0,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-26T00:28:32.865Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JonasJs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-24T02:26:41.000Z","updated_at":"2025-05-25T23:39:23.000Z","dependencies_parsed_at":"2025-05-26T00:40:31.378Z","dependency_job_id":null,"html_url":"https://github.com/JonasJs/aiqfome-front","commit_stats":null,"previous_names":["jonasjs/aiqfome-front"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JonasJs/aiqfome-front","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasJs%2Faiqfome-front","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasJs%2Faiqfome-front/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasJs%2Faiqfome-front/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasJs%2Faiqfome-front/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonasJs","download_url":"https://codeload.github.com/JonasJs/aiqfome-front/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonasJs%2Faiqfome-front/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273843639,"owners_count":25178082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-06T01:13:18.896Z","updated_at":"2025-09-06T01:13:33.321Z","avatar_url":"https://github.com/JonasJs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aiqfome-front\n\nClone do aiqfome desenvolvido com foco em boas práticas, performance e acessibilidade.\n\n## 🛠 Tecnologias e Ferramentas\n\n### Core\n- **Next.js**: Framework React para SSR, otimização de imagens e roteamento\n- **TypeScript**: Tipagem estática para maior segurança e manutenibilidade do código\n- **TailwindCSS**: Framework CSS para estilização rápida\n- **Tailwind Variants**: Gerenciamento de variantes de componentes de forma tipada\n\n### Qualidade de Código\n- **ESLint**: Análise estática para manter padrões de código\n- **Prettier**: Formatação consistente do código\n- **Husky**: Automação de git hooks\n- **Lint-staged**: Otimização da execução de linters\n- **Commitlint**: Padronização de mensagens de commit\n\n### Testes e Documentação\n- **Storybook**: Desenvolvimento e documentação de componentes\n\n### Gerenciamento de Projeto\n- **Jira**: Gerenciamento de tarefas e acompanhamento do projeto\n\n## 🎯 Decisões Técnicas\n\n### Arquitetura\n- Separação entre resource (chamadas HTTP) e service (regras de negócio)\n  - Resource: Responsável apenas pela comunicação com a API\n  - Service: Concentra regras de negócio e transformação de dados\n- Design System próprio para maior controle e personalização\n- Estrutura de pastas por domínio para melhor organização do código\n\n### API e Integração\n- Adapter pattern nas chamadas de API\n  - Facilita mudanças na integração mantendo sempre o mesmo contrato para o front\n  - Permite implementação futura de um BFF. (Como utilizei a api da plataforma web e desenvolvi com base nela, encontrei diversas inconsistências de padrões, um BFF poderia ajudar a centralizar a transformação de dados e centralizar regras de negócio)\n- BFF (Backend for Frontend) planejado para:\n  - Otimizar dados recebidos pelo front\n  - Centralizar transformações de dados\n  - Reduzir número de requisições\n\n### Estilização e UX\n- Tailwind Variants para:\n  - Componentes com múltiplas variações\n  - Código mais legível e manutenível\n- Design System\n  - Desenvolvimento de ícones próprios\n  - Padronização de espaçamentos\n  - Sistema de tokens consistente\n\n### Controle de Versão\n- PRs direto na main para agilizar o desenvolvimento, mas o ideial seria pensar em branchs como develop ou até mesmo trabalhar direto com branchs de release.\n- Template de PR para padronização\n  - Descrição estruturada\n  - Checklist de qualidade\n  - Integração com Jira\n- Branches mantidas após merge para que possam da uma olhada.\n\n\n## 📝 Observações\nTodos os dados são consumidos em tempo real da plataforma web, por isso, alguns produtos podem ficar indisponíveis ou as lojas podem estar fechadas.\n-Todas as branchs estão visiveis assim é possivel olharemcomo eu organizo e também é possivel ver todos so PRs Criado\n- Adaptações no contrato da API baseadas na análise da plataforma web\n- Foco em componentização e reusabilidade\n- Design System próprio para maior consistência visual\n- Decisões técnicas priorizando:\n  - Manutenibilidade do código\n  - Performance da aplicação\n  - Experiência do usuário\n- Crie um crawler que busca as informações da url (https://www.aiqfome.com/PR/maringa/) e ao testar depois do envio notei que ela cai em alguns erros de timout, a api que está meio inconsistente, mas acredito que em uma api real com algumas validações extras funcione perfeitamente.\n\n## 🚀 Como Executar\n\n```bash\n# Instalar dependências\nnpm install\n\n# Iniciar servidor de desenvolvimento\nnpm run dev\n\n# Build para produção\nnpm run build\n\n# Iniciar servidor de produção\nnpm start\n\n# Executar Storybook\nnpm run storybook\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasjs%2Faiqfome-front","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonasjs%2Faiqfome-front","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasjs%2Faiqfome-front/lists"}