{"id":25451162,"url":"https://github.com/williamjayjay/innovatec-mobile-rework","last_synced_at":"2026-04-18T04:33:29.596Z","repository":{"id":252332398,"uuid":"829181139","full_name":"williamjayjay/innovatec-mobile-rework","owner":"williamjayjay","description":"Este aplicativo tem como principais funcionalidades a busca de dados de estudantes a partir de uma API externa, o armazenamento dessas informações no storage, a exibição em uma lista com scroll infinito, a apresentação dos detalhes de cada aluno em um modal dinâmico, e a possibilidade de alterar o gênero do estudante em um modal separado.","archived":false,"fork":false,"pushed_at":"2024-08-09T14:35:56.000Z","size":2855,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-05-16T10:45:23.181Z","etag":null,"topics":["asyncstorage","expo","react","reactnative","reanimated","tailwindcss"],"latest_commit_sha":null,"homepage":"","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/williamjayjay.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}},"created_at":"2024-07-15T23:32:23.000Z","updated_at":"2024-08-09T14:35:59.000Z","dependencies_parsed_at":"2024-08-09T03:55:21.098Z","dependency_job_id":"3e0f1df7-71ed-4e75-90f1-0d7eb33f38c4","html_url":"https://github.com/williamjayjay/innovatec-mobile-rework","commit_stats":null,"previous_names":["williamjayjay/innovatec-mobile-rework"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/williamjayjay/innovatec-mobile-rework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamjayjay%2Finnovatec-mobile-rework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamjayjay%2Finnovatec-mobile-rework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamjayjay%2Finnovatec-mobile-rework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamjayjay%2Finnovatec-mobile-rework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/williamjayjay","download_url":"https://codeload.github.com/williamjayjay/innovatec-mobile-rework/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/williamjayjay%2Finnovatec-mobile-rework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31957004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["asyncstorage","expo","react","reactnative","reanimated","tailwindcss"],"created_at":"2025-02-17T22:24:09.343Z","updated_at":"2026-04-18T04:33:29.545Z","avatar_url":"https://github.com/williamjayjay.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eProjeto - Lista de estudantes\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/williamjayjay/innovatec-mobile-rework\"\u003e\n\n  \u003cimg alt=\"GitHub Top Language\" src=\"https://img.shields.io/github/languages/top/williamjayjay/innovatec-mobile-rework\" /\u003e\n\n  \u003cimg alt=\"Repository size\" src=\"https://img.shields.io/github/repo-size/williamjayjay/innovatec-mobile-rework\"\u003e\n  \n  \u003ca href=\"https://github.com/williamjayjay/Github-Blog/commits/master\"\u003e\n    \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/williamjayjay/innovatec-mobile-rework\"\u003e\n  \u003c/a\u003e\n    \n   \u003ca href=\"https://github.com/williamjayjay/innovatec-mobile-rework/stargazers\"\u003e\n    \u003cimg alt=\"Stargazers\" src=\"https://img.shields.io/github/stars/williamjayjay/innovatec-mobile-rework?style=social\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cp align=\"center\"\u003e\nEste aplicativo tem como principais funcionalidades a busca de dados de estudantes a partir de uma API externa, o armazenamento dessas informações no storage, a exibição em uma lista com scroll infinito, a apresentação dos detalhes de cada aluno em um modal dinâmico, e a possibilidade de alterar o gênero do estudante em um modal separado.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg alt=\"app students\" src=\".github/assets/cover.png\" /\u003e\n\u003c/p\u003e\n\n## 🥶 Sobre o projeto\n\nDesenvolvi esse projeto para uma das etapas do teste para a C2S.\n\n## Mobile React Native:\n\n**Aplicativo:** O app irá buscar e exibir dados de pessoas ao redor do mundo, mas classificaremos como alunos.\n\n## 🚀 Tecnologias\n\nPrincipais tecnologias que utilizei para desenvolver esta aplicação\n\n- [Typescript](https://www.typescriptlang.org/)\n- [Async-Storage](https://docs.expo.dev/versions/latest/sdk/async-storage/)\n- [React-Navigation](https://reactnavigation.org/)\n- [Expo-Font](https://docs.expo.dev/versions/latest/sdk/font/)\n- [NativeWind](https://www.nativewind.dev/quick-starts/expo)\n- [TailwindCSS](https://www.nativewind.dev/)\n- [Zod](https://zod.dev/)\n- [Axios](https://axios-http.com/docs/intro)\n- [React-Native-Toast-Message](https://www.npmjs.com/package/react-native-toast-message)\n- [React-Native-SVG](https://docs.expo.dev/versions/latest/sdk/svg/)\n- [Tanstack Query](https://tanstack.com/query/latest/docs/framework/react/overview)\n- [Classnames](https://www.npmjs.com/package/classnames)\n- [Date FNS](https://date-fns.org/docs/Getting-Started)\n- [React-Native-Reanimated](https://docs.swmansion.com/react-native-reanimated/)\n- [React Content Loader](https://github.com/danilowoz/react-content-loader)\n- [React-Native-Safe-Area-Context](https://docs.expo.dev/versions/latest/sdk/safe-area-context/)\n- [FakerJS](https://fakerjs.dev/)\n- [Testing Library React Hooks](https://react-hooks-testing-library.com/installation)\n- [Jest Native](https://testing-library.com/docs/ecosystem-jest-native/)\n- [Jest Expo]()\n- [Jest]()\n- [Jest Fech Mock]()\n- [Testing Library Jest Native]()\n\n## Detalhe CI CD\n\nNo arquivo ci_cd.yml observe o alias para a criar a secret no github que irá conter o token expo para assim podermos criar um fluxo de automação CI CD que irá executar o build da aplicação, rodar os testes unitários e por fim gerar o apk do aplicativo android no caso. \n\n## Testes unitários\n\nPara rodar os testes basta iniciar o comando:\n  ```sh\n  bun run test\n  ```\n\n## Guia de inicialização\n\nPara instalar e configurar uma cópia local, siga estas etapas simples:\n\n### Prerequisitos\n\nPara garantir o funcionamento adequado da nossa aplicação, verifique abaixo:\n\n1. **Clone o repositório**:\n  ```sh\n  git clone https://github.com/williamjayjay/innovatec-mobile-rework\n  ```\n\n2. **Navegue na raiz do projeto innovatec-mobile-rework:**\n\n3. **Instale os módulos:**\n  ```sh\n  bun i\n  ```\n\n4. **Copie o .env de exemplo:** \n\n5. **Rode o aplicativo:**\n  ```sh\n  bun android\n  ```\n\n## Roadmap\n\n- [x] Iniciar o aplicativo, entrar na tela de login\n\n- [x] Na tela de login conseguir navegar para a tela home via tela de login\n\n- [x] Caso não haja alunos no storage, deve buscar dados da API.\n\n- [x] Caso haja alunos no storage, deve exibir esses últimos 10 dados e não buscar nada na API ainda.\n\n- [x] Conseguir fazer \"push refresh\" ao puxar para baixo a lista e assim conseguir atualizar os alunos que estão sendo buscados da API.\n\n- [x] Conseguir buscar mais alunos atráves do \"scroll infinity\" na flatlist.\n\n- [x] Conseguir visualizar mais informações do aluno ao clicar no componente do mesmo.\n\n- [x] Conseguir alterar o filtro de alunos por gênero.\n\n- [x] Conseguir buscar alunos pelo filtro de pesquisa.\n\n\u003c!-- --------------------- --\u003e\n## UI UX\nUI e UX feita pelo time C2S.\n\n| Tela de login | Tela Home |\n|:-------------------------:|:-------------------------:|\n| ![Tela de login](.github/assets/tela_login.PNG) | ![Tela Home](.github/assets/tela_home.PNG) |\n\n| Modal de filtros | Barra de Pesquisa |\n|:-------------------------:|:-------------------------:|\n| ![Modal de filtros](.github/assets/modal_filtros.PNG) | ![Barra de Pesquisa](.github/assets/barra_pesquisa.PNG) |\n\n| Shimmer Effect | Modal de perfil |\n|:-------------------------:|:-------------------------:|\n| ![Shimmer Effect](.github/assets/shimmer_effect.PNG) | ![Modal de perfil](.github/assets/modal_perfil.PNG) |\n\n| Scroll Infinity |\n|:-------------------------:|\n| ![Scroll Infinity](.github/assets/scroll_infinity.PNG) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamjayjay%2Finnovatec-mobile-rework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliamjayjay%2Finnovatec-mobile-rework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliamjayjay%2Finnovatec-mobile-rework/lists"}