Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aszurar/tododark

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
https://github.com/aszurar/tododark

axe axe-core css css-module css-modules date-fns flexbox hooks html ignite-reactjs javascript netlify radix-ui react reactjs typescript vite

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# #2 - React: ****



## todo dark

- 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.
- 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**.

- 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.
- O site foi publicado com CI/CD por meio da plataforma **[Netlify](https://www.netlify.com/)**.
- Acesse em: ****


todo dark

https://github.com/Aszurar/tododark/assets/64987824/659d19e4-1bc1-446d-a2de-cf5e80806ed8

[![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&logo=vite&logoColor=white&link=https://vitejs.dev/)](https://vitejs.dev/) [![React](https://img.shields.io/badge/-React-black?style=flat&logo=react&link=https://react.dev)](https://react.dev/) [![Radix UI](https://img.shields.io/badge/Radix%20UI-161618.svg?style=flat&logo=radix-ui&logoColor=white)](https://www.radix-ui.com/) [![TypeScript](https://img.shields.io/badge/-TypeScript-%23007ACC?style=?style=flat-square&logo=typescript&logoColor=white&link=https://www.typescriptlang.org/)](https://www.typescriptlang.org/) [![JavaScript](https://img.shields.io/badge/-JavaScript-%23323330.svg?style=flat&logo=javascript&link=https://www.javascript.com/)](https://www.javascript.com/) [![HTML5](https://img.shields.io/badge/-HTML5-E34F26?style=flat&logo=html5&logoColor=white&link=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&logo=css3&link=https://www.w3schools.com/css/)](https://www.w3schools.com/css/) [![Yarn](https://img.shields.io/badge/-yarn-%232C8EBB?style=flat&logo=yarn&logoColor=white&link=https://yarnpkg.com/)](https://yarnpkg.com/)



Sobre | 
Motivo | 
Design | 
Requisitos | 
Tecnologias | 
CI/CD | 
Baixar e Executar 


---



**[Vídeo no Youtube](https://www.youtube.com/watch?v=RIIGVwqbESE)**

---

## :information_source: Sobre

- 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.
- É o 1º desafio do curso **Ignite da trilha React Native 2022 da [Rocketseat](https://www.rocketseat.com.br/)**
- Para a construção da interface desse projeto foi usado **[React](https://react.dev)** com **[TypeScript](https://www.typescriptlang.org/)**.
- A animação da listagem é feita com a lib **[AutoAnimate](https://auto-animate.formkit.com/)**.
- 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.

- **Adição de tarefa**




---

## :interrobang: Motivo

- Esse projeto tem o objetivo de praticar os conceitos básicos do desenvolvimento web com React como:
- Praticar o uso de TypeScript;
- Lógica de programação com JavaScript;
- Componentes, componentização e suas propriedades;
- Variável Estado e manipulações de variável Estado;
- Otimização simples como memo
- Formatação de datas com Date FNS
- Persistência de dados básica com localStorage;
- Estilização básica com CSS e a aplicação de CSS modules;
- Boas práticas de acessibilidade com axe-core;
- Uso de elementos do Radix UI para construção de modais e tooltips com melhor acessibilidade;

- É um projeto simples, mas que trata da base de uma aplicação web com React.
- Temos funcionalidades e práticas como:
1. Listar tarefas;
2. Criar novas tarefas;
3. Excluir tarefas;
4. Persistir as tarefas por meio do localStorage;
5. Melhoria de acessibilidade com testes e correções com axe-core e ChromeVox.
6. Uso do Radix UI para construção de Modais e Tooltips com melhor acessibilidade
7. Estilização com CSS modules

- **Marcando tarefas**




---

## :art: Design

- O Design do projeto foi fornecido pela **[Rocketseat](https://www.rocketseat.com.br/)** no primeiro módulo do Ignite - React por meio do Figma.


todo dark

[![Design](https://i.imgur.com/xDgCJf4.png)](https://www.figma.com/file/u2TAXCfiufWLNRZibyl3Hj/ToDo-List-%E2%80%A2-Desafio-React-(Copy)?type=design&node-id=56-96&mode=design&t=nl3sM63VnZNZZuAn-0)

- **Excluindo tarefas**




---

## :seedling: Requisitos Mínimos

1. NodeJS
2. React
3. Vite
4. Yarn(ou NPM)

- **Excluindo todas tarefas**





---

## :rocket: Tecnologias Utilizadas

- O projeto foi desenvolvido utilizando as seguintes tecnologias:

1. **[axe-core/react](https://www.npmjs.com/package/@axe-core/react)**
2. **[AutoAnimate](https://auto-animate.formkit.com/)**
3. **[Date FNS](https://date-fns.org/)**
4. **[JavaScript](https://developer.mozilla.org/pt1.BR/docs/Web/JavaScript)**
5. **[Netlify](https://www.netlify.com/)**
6. **[NodeJS](https://nodejs.org/en/)**
7. **[Phosphor Icons](https://phosphoricons.com/)**
8. **[Radix UI](https://www.radix-ui.com/)**
9. **[React](https://pt1.br.react.dev/)**
10. **[Sentry](https://sentry.io/welcome/)**
11. **[TypeScript](https://www.typescriptlang.org/)**
12. **[Vite](https://vitejs.dev/)**
13. **[Yarn](https://classic.yarnpkg.com/blog/2017/05/12/introducing-yarn/)**

---

## :truck: Entrega e distribuição continua

****

- 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.
- 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.
- Além disso, podemos customizar o próprio endereço do site, adicionar ferramentas dentre outras funcionalidades facilmente.



---

## :package: Como baixar e executar o projeto

### Baixar

- Clonar o projeto:

```bash
git clone https://github.com/Aszurar/tododark
```

- É 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:
- [Instalação do NodeJS](https://nodejs.org/en/)
- [Instalação do Yarn](https://classic.yarnpkg.com/blog/2017/05/12/introducing-yarn/)

- Instalação das dependências:
- Execute o comando abaixo dentro da pasta do projeto

```bash
yarn
```

### Execução

- Caso tudo tenha sido instalado com sucesso, basta executar na raiz do projeto:

```bash
yarn dev
```

---

Desenvolvido por :star2: Lucas de Lima Martins de Souza.