{"id":23178871,"url":"https://github.com/aszurar/tododark","last_synced_at":"2026-04-14T04:01:36.557Z","repository":{"id":198325492,"uuid":"699669693","full_name":"Aszurar/tododark","owner":"Aszurar","description":"O projeto todo dark é um site de lista de tarefas, com a possibilidade de adicionar, remover, marcar e persistir os dados de forma simples na web. Esse projeto tem o objetivo de praticar os conceitos básicos do desenvolvimento web com React ","archived":false,"fork":false,"pushed_at":"2024-04-24T13:57:34.000Z","size":354,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-10T10:26:47.653Z","etag":null,"topics":["axe","axe-core","css","css-module","css-modules","date-fns","flexbox","hooks","html","ignite-reactjs","javascript","netlify","radix-ui","react","reactjs","typescript","vite"],"latest_commit_sha":null,"homepage":"https://tododark-aszurar.netlify.app/","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/Aszurar.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":"2023-10-03T05:19:14.000Z","updated_at":"2024-04-24T13:57:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"9ed10e7c-270b-42be-a8cc-be4b1052319f","html_url":"https://github.com/Aszurar/tododark","commit_stats":null,"previous_names":["aszurar/tododark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aszurar%2Ftododark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aszurar%2Ftododark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aszurar%2Ftododark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aszurar%2Ftododark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aszurar","download_url":"https://codeload.github.com/Aszurar/tododark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276185,"owners_count":20912288,"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","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":["axe","axe-core","css","css-module","css-modules","date-fns","flexbox","hooks","html","ignite-reactjs","javascript","netlify","radix-ui","react","reactjs","typescript","vite"],"created_at":"2024-12-18T07:13:02.222Z","updated_at":"2026-04-14T04:01:31.526Z","avatar_url":"https://github.com/Aszurar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# #2 - React: **\u003chttps://tododark-aszurar.netlify.app\u003e**\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/A9ywYDA.png\" width=\"1000\"\u003e\n\u003c/div\u003e\n\n## todo dark\n\n- O projeto **todo dark** é um site de lista de tarefas, com a possibilidade de adicionar, remover, marcar e persistir os dados de forma simples na web.\n- O propósito aqui é praticar conceitos básicos de **React e seus estados, otimização com memo**, uso do **TypeScript e date-fns** e estilização via **CSS modules e Radix UI**.\n\n- A acessibilidade também foi levada em consideração, com o uso da lib axe-core para testes e correções de acessibilidade assim como leitor de tela ChromeVox.\n- O site foi publicado com CI/CD por meio da plataforma **[Netlify](https://www.netlify.com/)**.\n- Acesse em: **\u003chttps://tododark-aszurar.netlify.app\u003e**\n\n  \u003cdiv align=\"center\"\u003e\n    \u003ch3\u003e\u003ca href=\"https://tododark-aszurar.netlify.app\"\u003etodo dark\u003c/a\u003e\u003c/h3\u003e\n\n\n\n    https://github.com/Aszurar/tododark/assets/64987824/659d19e4-1bc1-446d-a2de-cf5e80806ed8\n\n\n  \u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/d1883904-92e9-4862-b4c8-23883152c1bb/deploy-status)](https://app.netlify.com/sites/tododark-aszurar/deploys)  [![Vite](https://img.shields.io/badge/-Vite-%23646CFF.svg?style=flat\u0026logo=vite\u0026logoColor=white\u0026link=https://vitejs.dev/)](https://vitejs.dev/) [![React](https://img.shields.io/badge/-React-black?style=flat\u0026logo=react\u0026link=https://react.dev)](https://react.dev/) [![Radix UI](https://img.shields.io/badge/Radix%20UI-161618.svg?style=flat\u0026logo=radix-ui\u0026logoColor=white)](https://www.radix-ui.com/) [![TypeScript](https://img.shields.io/badge/-TypeScript-%23007ACC?style=?style=flat-square\u0026logo=typescript\u0026logoColor=white\u0026link=https://www.typescriptlang.org/)](https://www.typescriptlang.org/) [![JavaScript](https://img.shields.io/badge/-JavaScript-%23323330.svg?style=flat\u0026logo=javascript\u0026link=https://www.javascript.com/)](https://www.javascript.com/) [![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat\u0026logo=html5\u0026logoColor=white\u0026link=https://developer.mozilla.org/pt-BR/docs/Web/HTML)](https://developer.mozilla.org/pt-BR/docs/Web/HTML) [![CSS3](https://img.shields.io/badge/-CSS3-1572B6?style=flat\u0026logo=css3\u0026link=https://www.w3schools.com/css/)](https://www.w3schools.com/css/) [![Yarn](https://img.shields.io/badge/-yarn-%232C8EBB?style=flat\u0026logo=yarn\u0026logoColor=white\u0026link=https://yarnpkg.com/)](https://yarnpkg.com/)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n        \u003ch2\u003e\n          \u003ca href=\"#information_source-sobre\"\u003eSobre\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca href=\"#interrobang-motivo\"\u003eMotivo\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca href=\"#art-design\"\u003eDesign\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca href=\"#seedling-requisitos-mínimos\"\u003eRequisitos\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca href=\"#rocket-tecnologias-utilizadas\"\u003eTecnologias\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca\n          href=\"#truck-entrega-e-distribuição-continua\"\u003eCI/CD\u003c/a\u003e\u0026nbsp;|\u0026nbsp;\n          \u003ca href=\"#package-como-baixar-e-executar-o-projeto\"\u003eBaixar e Executar\u003c/a\u003e\u0026nbsp;\n        \u003c/h2\u003e\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/xNd42KX.gif\" width=\"400\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\" \u003e\n\n**[Vídeo no Youtube](https://www.youtube.com/watch?v=RIIGVwqbESE)**\n\n\u003c/div\u003e\n\n---\n\n## :information_source: Sobre\n\n- O projeto **todo dark** é um site de lista de tarefas, com a possibilidade de adicionar, remover, marcar como concluída e persistir as tarefas por meio do localStorage.\n- É o 1º desafio do curso **Ignite da trilha React Native 2022 da [Rocketseat](https://www.rocketseat.com.br/)**\n- Para a construção da interface desse projeto foi usado **[React](https://react.dev)** com **[TypeScript](https://www.typescriptlang.org/)**.\n- A animação da listagem é feita com a lib **[AutoAnimate](https://auto-animate.formkit.com/)**.\n- A estilização é feita com CSS comum sem nenhuma lib por meio do **[CSS modules](https://github.com/css-modules/css-modules)** já que a ideia é entender o básico do React em desenvolvimento web.\n\n- **Adição de tarefa**\n\n\u003cdiv align=\"center\" \u003e\n      \u003cimg src=\"https://i.imgur.com/vDhUAgO.png\" width=\"700\"\u003e\n      \u003cimg src=\"https://i.imgur.com/Jv9QDgS.png\" width=\"700\"\u003e\n\u003c/div\u003e\n\n---\n\n## :interrobang: Motivo\n\n- Esse projeto tem o objetivo de praticar os conceitos básicos do desenvolvimento web com React como:\n  - Praticar o uso de TypeScript;\n  - Lógica de programação com JavaScript;\n  - Componentes, componentização e suas propriedades;\n  - Variável Estado e manipulações de variável Estado;\n  - Otimização simples como memo\n  - Formatação de datas com Date FNS\n  - Persistência de dados básica com localStorage;\n  - Estilização básica com CSS e a aplicação de CSS modules;\n  - Boas práticas de acessibilidade com axe-core;\n  - Uso de elementos do Radix UI para construção de modais e tooltips com melhor acessibilidade;\n\n- É um projeto simples, mas que trata da base de uma aplicação web com React.\n- Temos funcionalidades e práticas como:\n  1. Listar tarefas;\n  2. Criar novas tarefas;\n  3. Excluir tarefas;\n  4. Persistir as tarefas por meio do localStorage;\n  5. Melhoria de acessibilidade com testes e correções com axe-core e ChromeVox.\n  6. Uso do Radix UI para construção de Modais e Tooltips com melhor acessibilidade\n  7. Estilização com CSS modules\n\n- **Marcando tarefas**\n\n  \u003cdiv align=\"center\" \u003e\n      \u003cimg src=\"https://i.imgur.com/4arLhvP.png\" width=\"700\"\u003e\n      \u003cimg src=\"https://i.imgur.com/m6QNJ5A.png\" width=\"700\"\u003e\n  \u003c/div\u003e\n\n---\n\n## :art: Design\n\n- O Design do projeto foi fornecido pela **[Rocketseat](https://www.rocketseat.com.br/)** no primeiro módulo do Ignite - React por meio do Figma.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003e\u003ca href=\"https://www.figma.com/file/u2TAXCfiufWLNRZibyl3Hj/ToDo-List-%E2%80%A2-Desafio-React-(Copy)?type=design\u0026node-id=56-96\u0026mode=design\u0026t=nl3sM63VnZNZZuAn-0\"\u003etodo dark\u003c/a\u003e\u003c/h3\u003e\n\n  [![Design](https://i.imgur.com/xDgCJf4.png)](https://www.figma.com/file/u2TAXCfiufWLNRZibyl3Hj/ToDo-List-%E2%80%A2-Desafio-React-(Copy)?type=design\u0026node-id=56-96\u0026mode=design\u0026t=nl3sM63VnZNZZuAn-0)\n\u003c/div\u003e\n\n- **Excluindo tarefas**\n\n\u003cdiv align=\"center\" \u003e\n      \u003cimg src=\"https://i.imgur.com/Rs3Gk7L.png\" width=\"700\"\u003e\n      \u003cimg src=\"https://i.imgur.com/UGDzfnC.png\" width=\"700\"\u003e\n\u003c/div\u003e\n\n---\n\n## :seedling: Requisitos Mínimos\n\n  1. NodeJS\n  2. React\n  3. Vite\n  4. Yarn(ou NPM)\n  \n- **Excluindo todas tarefas**\n\n  \u003cdiv align=\"center\" \u003e\n      \u003cimg src=\"https://i.imgur.com/LrGYJwP.png\" width=\"700\"\u003e\n      \u003cimg src=\"https://i.imgur.com/0885SsL.png\" width=\"700\"\u003e\n      \u003cimg src=\"https://i.imgur.com/XJoxHbV.png\" width=\"700\"\u003e\n  \u003c/div\u003e\n\n---\n\n## :rocket: Tecnologias Utilizadas\n\n- O projeto foi desenvolvido utilizando as seguintes tecnologias:\n\n  1. **[axe-core/react](https://www.npmjs.com/package/@axe-core/react)**\n  2. **[AutoAnimate](https://auto-animate.formkit.com/)**\n  3. **[Date FNS](https://date-fns.org/)**\n  4. **[JavaScript](https://developer.mozilla.org/pt1.BR/docs/Web/JavaScript)**\n  5. **[Netlify](https://www.netlify.com/)**\n  6. **[NodeJS](https://nodejs.org/en/)**\n  7. **[Phosphor Icons](https://phosphoricons.com/)**\n  8. **[Radix UI](https://www.radix-ui.com/)**\n  9. **[React](https://pt1.br.react.dev/)**\n  10. **[Sentry](https://sentry.io/welcome/)**\n  11. **[TypeScript](https://www.typescriptlang.org/)**\n  12. **[Vite](https://vitejs.dev/)**\n  13. **[Yarn](https://classic.yarnpkg.com/blog/2017/05/12/introducing-yarn/)**\n\n---\n\n## :truck: Entrega e distribuição continua\n\n**\u003chttps://tododark-aszurar.netlify.app/\u003e**\n\n- Para a publicação da aplicação foi por meio da plataforma **[Netlify](https://www.netlify.com/)** onde é possível publicar de forma rápida, fácil e simples projetos React que estão hospedados no GitHub, GitLab, dentre outras plataformas de repositório remoto de graça.\n- Com isso, o CI/CD já é aplicado automaticamente por meio dessa plataforma definindo a branch de produção, sempre que houver uma atualização nela, será gerado uma nova versão do projeto e já publicado.\n- Além disso, podemos customizar o próprio endereço do site, adicionar ferramentas dentre outras funcionalidades facilmente.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://i.imgur.com/4TpEdor.png\" width=\"1000\"\u003e\n\u003c/div\u003e\n\n---\n\n## :package: Como baixar e executar o projeto\n\n### Baixar\n\n- Clonar o projeto:\n\n  ```bash\n   git clone https://github.com/Aszurar/tododark\n  ```\n\n- É necessário ter o Node.js e um gerenciador de pacotes, como o Yarn, instalados em seu sistema. Se você ainda não os tem, siga estas instruções:\n  - [Instalação do NodeJS](https://nodejs.org/en/)\n  - [Instalação do Yarn](https://classic.yarnpkg.com/blog/2017/05/12/introducing-yarn/)\n\n- Instalação das dependências:\n  - Execute o comando abaixo dentro da pasta do projeto\n\n    ```bash\n      yarn\n    ```\n\n### Execução\n\n- Caso tudo tenha sido instalado com sucesso, basta executar na raiz do projeto:\n\n  ```bash\n    yarn dev\n  ```\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nDesenvolvido por :star2: Lucas de Lima Martins de Souza.\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faszurar%2Ftododark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faszurar%2Ftododark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faszurar%2Ftododark/lists"}