#################################################################################################### 01. Executando o Projeto Web: [Commit: Executando o Projeto Web](https://github.com/rocketseat-education/explorer-stock-commits/tree/3bb78562a2f755278665999d3526c485bbbb1990) Nesta aula, focamos no desenvolvimento do front-end da nossa aplicação web. Primeiro, paramos de executar a API no VSCode e abrimos o projeto web. Em seguida, executamos o comando `npm i` para gerar a pasta `node_modules`. Depois, abrimos um terminal e acessamos a pasta da API. Mantemos o back-end rodando em um terminal separado para nos concentrarmos no código do front-end. Executamos a aplicação web com o comando `npm run dev` e verificamos se tudo está em ordem. Em seguida, abrimos o arquivo do banco de dados e cadastramos alguns usuários usando o Insomnia. Agora, vamos trabalhar nas permissões para exibir as funcionalidades corretas para cada tipo de usuário. #################################################################################################### 02. Separando as Rotas: [Commit: Separando as Rotas](https://github.com/rocketseat-education/explorer-stock-commits/tree/eac16da4ebe2f79f9aa6cf592ee637d35a9fbfbe) Nesta aula, aprendemos sobre a organização das rotas em nossa aplicação. Inicialmente, todas as rotas estavam agrupadas em um único arquivo. No entanto, para melhorar a organização, separamos as rotas em arquivos diferentes. Ao separar as rotas, também ajustamos os acessos permitidos em cada uma delas. Por exemplo, as rotas de cliente terão acesso apenas às páginas de home e produto, enquanto as rotas de vendas terão acesso às páginas de produto e relatório. Agora que as rotas estão organizadas, na próxima aula iremos trabalhar na recuperação das permissões do usuário para redirecioná-lo corretamente. #################################################################################################### 03. Redirecionando Rotas de Acordo com o Perfil: [Commit: Redirecionando Rotas de Acordo com o Perfil](https://github.com/rocketseat-education/explorer-stock-commits/tree/5eea64b5833e6656b4bda1a5cd961e39d2d9f3fd) Nesta aula, aprendemos a distribuir as rotas da nossa aplicação de acordo com o perfil do usuário. Fizemos isso utilizando a estrutura de switch case e criando uma função chamada accessRoute. Também utilizamos um arquivo de utilitários para armazenar as regras de perfil dos usuários. Assim, conseguimos redirecionar o usuário para a rota correspondente ao seu perfil. Testamos o funcionamento com os perfis de admin, customer e sale. Agora, as rotas estão distribuídas corretamente de acordo com o perfil do usuário. #################################################################################################### 04. Filtrando as Opções de Feature na Home: [Commit: Filtrando as Opções de Feature na Home](https://github.com/rocketseat-education/explorer-stock-commits/tree/990ff772012e06df1bab0f6167ce6451ac20b430) Nesta aula, aprendemos como ocultar opções de menu com base no perfil do usuário. Utilizamos o hook useAuth para obter informações do usuário e, em seguida, verificamos se o perfil do usuário corresponde aos perfis que têm acesso a determinadas opções de menu. Podemos fazer isso usando um array de perfis ou verificando se o perfil do usuário é igual a um perfil específico. Também exploramos diferentes maneiras de implementar essa lógica, como aninhando condições ou separando as restrições por rota. No final, escolhemos a abordagem que melhor se adequava às nossas necessidades. #################################################################################################### 05. Filtrando Cadastrar Produto: [Commit: Filtrando Cadastrar Produto](https://github.com/rocketseat-education/explorer-stock-commits/tree/75c5d1b6819a7c65eacc0fe54110fb121fe6caa8) Nesta aula, aprendemos a estratégia de separar as rotas e como usá-la para exibir ou ocultar funcionalidades com base no perfil do usuário. Agora, vamos ver como aplicar essa ideia em um exemplo prático. Vamos supor que o perfil "João" só possa consultar produtos e não possa cadastrar. Podemos importar o usuário e usar sua regra para controlar a exibição do botão de cadastro. Dessa forma, podemos personalizar as funcionalidades de acordo com o perfil do usuário. Essa é uma lógica que você pode aplicar em seus projetos para controlar o acesso e a exibição de funcionalidades com base nos perfis dos usuários. #################################################################################################### 01. Executando o Projeto Web: [Commit: Executando o Projeto Web](https://github.com/rocketseat-education/explorer-stock-commits/tree/3bb78562a2f755278665999d3526c485bbbb1990) Nesta aula, focamos no desenvolvimento do front-end da nossa aplicação web. Primeiro, paramos de executar a API no VSCode e abrimos o projeto web. Em seguida, executamos o comando `npm i` para gerar a pasta `node_modules`. Depois, abrimos um terminal e acessamos a pasta da API. Mantemos o back-end rodando em um terminal separado para nos concentrarmos no código do front-end. Executamos a aplicação web com o comando `npm run dev` e verificamos se tudo está em ordem. Em seguida, abrimos o arquivo do banco de dados e cadastramos alguns usuários usando o Insomnia. Agora, vamos trabalhar nas permissões para exibir as funcionalidades corretas para cada tipo de usuário. #################################################################################################### 02. Separando as Rotas: [Commit: Separando as Rotas](https://github.com/rocketseat-education/explorer-stock-commits/tree/eac16da4ebe2f79f9aa6cf592ee637d35a9fbfbe) Nesta aula, aprendemos sobre a organização das rotas em nossa aplicação. Inicialmente, todas as rotas estavam agrupadas em um único arquivo. No entanto, para melhorar a organização, separamos as rotas em arquivos diferentes. Ao separar as rotas, também ajustamos os acessos permitidos em cada uma delas. Por exemplo, as rotas de cliente terão acesso apenas às páginas de home e produto, enquanto as rotas de vendas terão acesso às páginas de produto e relatório. Agora que as rotas estão organizadas, na próxima aula iremos trabalhar na recuperação das permissões do usuário para redirecioná-lo corretamente. #################################################################################################### 03. Redirecionando Rotas de Acordo com o Perfil: [Commit: Redirecionando Rotas de Acordo com o Perfil](https://github.com/rocketseat-education/explorer-stock-commits/tree/5eea64b5833e6656b4bda1a5cd961e39d2d9f3fd) Nesta aula, aprendemos a distribuir as rotas da nossa aplicação de acordo com o perfil do usuário. Fizemos isso utilizando a estrutura de switch case e criando uma função chamada accessRoute. Também utilizamos um arquivo de utilitários para armazenar as regras de perfil dos usuários. Assim, conseguimos redirecionar o usuário para a rota correspondente ao seu perfil. Testamos o funcionamento com os perfis de admin, customer e sale. Agora, as rotas estão distribuídas corretamente de acordo com o perfil do usuário. #################################################################################################### 04. Filtrando as Opções de Feature na Home: [Commit: Filtrando as Opções de Feature na Home](https://github.com/rocketseat-education/explorer-stock-commits/tree/990ff772012e06df1bab0f6167ce6451ac20b430) Nesta aula, aprendemos como ocultar opções de menu com base no perfil do usuário. Utilizamos o hook useAuth para obter informações do usuário e, em seguida, verificamos se o perfil do usuário corresponde aos perfis que têm acesso a determinadas opções de menu. Podemos fazer isso usando um array de perfis ou verificando se o perfil do usuário é igual a um perfil específico. Também exploramos diferentes maneiras de implementar essa lógica, como aninhando condições ou separando as restrições por rota. No final, escolhemos a abordagem que melhor se adequava às nossas necessidades. #################################################################################################### 05. Filtrando Cadastrar Produto: [Commit: Filtrando Cadastrar Produto](https://github.com/rocketseat-education/explorer-stock-commits/tree/75c5d1b6819a7c65eacc0fe54110fb121fe6caa8) Nesta aula, aprendemos a estratégia de separar as rotas e como usá-la para exibir ou ocultar funcionalidades com base no perfil do usuário. Agora, vamos ver como aplicar essa ideia em um exemplo prático. Vamos supor que o perfil "João" só possa consultar produtos e não possa cadastrar. Podemos importar o usuário e usar sua regra para controlar a exibição do botão de cadastro. Dessa forma, podemos personalizar as funcionalidades de acordo com o perfil do usuário. Essa é uma lógica que você pode aplicar em seus projetos para controlar o acesso e a exibição de funcionalidades com base nos perfis dos usuários. #################################################################################################### 01. Executando o Projeto Web: [Commit: Executando o Projeto Web](https://github.com/rocketseat-education/explorer-stock-commits/tree/3bb78562a2f755278665999d3526c485bbbb1990) Nesta aula, focamos no desenvolvimento do front-end da nossa aplicação web. Primeiro, paramos de executar a API no VSCode e abrimos o projeto web. Em seguida, executamos o comando `npm i` para gerar a pasta `node_modules`. Depois, abrimos um terminal e acessamos a pasta da API. Mantemos o back-end rodando em um terminal separado para nos concentrarmos no código do front-end. Executamos a aplicação web com o comando `npm run dev` e verificamos se tudo está em ordem. Em seguida, abrimos o arquivo do banco de dados e cadastramos alguns usuários usando o Insomnia. Agora, vamos trabalhar nas permissões para exibir as funcionalidades corretas para cada tipo de usuário. #################################################################################################### 02. Separando as Rotas: [Commit: Separando as Rotas](https://github.com/rocketseat-education/explorer-stock-commits/tree/eac16da4ebe2f79f9aa6cf592ee637d35a9fbfbe) Nesta aula, aprendemos sobre a organização das rotas em nossa aplicação. Inicialmente, todas as rotas estavam agrupadas em um único arquivo. No entanto, para melhorar a organização, separamos as rotas em arquivos diferentes. Ao separar as rotas, também ajustamos os acessos permitidos em cada uma delas. Por exemplo, as rotas de cliente terão acesso apenas às páginas de home e produto, enquanto as rotas de vendas terão acesso às páginas de produto e relatório. Agora que as rotas estão organizadas, na próxima aula iremos trabalhar na recuperação das permissões do usuário para redirecioná-lo corretamente. #################################################################################################### 03. Redirecionando Rotas de Acordo com o Perfil: [Commit: Redirecionando Rotas de Acordo com o Perfil](https://github.com/rocketseat-education/explorer-stock-commits/tree/5eea64b5833e6656b4bda1a5cd961e39d2d9f3fd) Nesta aula, aprendemos a distribuir as rotas da nossa aplicação de acordo com o perfil do usuário. Fizemos isso utilizando a estrutura de switch case e criando uma função chamada accessRoute. Também utilizamos um arquivo de utilitários para armazenar as regras de perfil dos usuários. Assim, conseguimos redirecionar o usuário para a rota correspondente ao seu perfil. Testamos o funcionamento com os perfis de admin, customer e sale. Agora, as rotas estão distribuídas corretamente de acordo com o perfil do usuário. #################################################################################################### 04. Filtrando as Opções de Feature na Home: [Commit: Filtrando as Opções de Feature na Home](https://github.com/rocketseat-education/explorer-stock-commits/tree/990ff772012e06df1bab0f6167ce6451ac20b430) Nesta aula, aprendemos como ocultar opções de menu com base no perfil do usuário. Utilizamos o hook useAuth para obter informações do usuário e, em seguida, verificamos se o perfil do usuário corresponde aos perfis que têm acesso a determinadas opções de menu. Podemos fazer isso usando um array de perfis ou verificando se o perfil do usuário é igual a um perfil específico. Também exploramos diferentes maneiras de implementar essa lógica, como aninhando condições ou separando as restrições por rota. No final, escolhemos a abordagem que melhor se adequava às nossas necessidades. #################################################################################################### 05. Filtrando Cadastrar Produto: [Commit: Filtrando Cadastrar Produto](https://github.com/rocketseat-education/explorer-stock-commits/tree/75c5d1b6819a7c65eacc0fe54110fb121fe6caa8) Nesta aula, aprendemos a estratégia de separar as rotas e como usá-la para exibir ou ocultar funcionalidades com base no perfil do usuário. Agora, vamos ver como aplicar essa ideia em um exemplo prático. Vamos supor que o perfil "João" só possa consultar produtos e não possa cadastrar. Podemos importar o usuário e usar sua regra para controlar a exibição do botão de cadastro. Dessa forma, podemos personalizar as funcionalidades de acordo com o perfil do usuário. Essa é uma lógica que você pode aplicar em seus projetos para controlar o acesso e a exibição de funcionalidades com base nos perfis dos usuários.