Projeto com dois tipos de usuários, faço 2 apps ou apenas uma com menu dinamico? #1563
Replies: 6 comments
-
Pelo o que você explicou parece ser bem diferente as aplicações, talvez duas App realmente façam sentido. Mas compensa colocar na balança alguns pontos, por exemplo;
Esses foram os pontos que pensei, mas o ideal é fazer um brainstorm com a equipe para ver o posicionamento de cada um, pois vocês são os melhores para responder essa pergunta, visto que estão ambientados com o projeto e sabem melhor do que nós as particularidades dele. Espero ter ajudado e sucesso nesse projeto 🚀 |
Beta Was this translation helpful? Give feedback.
-
Cara sem o escopo é complicado, mais eu imaginei esse projeto assim, você tem um lado administrativo que gerencia e inclui eventos e outro lado que interage com esses eventos. Sendo assim faz todo o sentido separar, mais ou menos como o Wordpress faz, vc tem um adm isolado que só serve pra gestão de conteúdo e o front separado só pro usuário final com pouca ou quase nenhuma interação do usuário logado. Só toma cuidado na organização do projeto, se for compartilhar componentes entre as duas partes, invista o tempo na documentação e no styleguide. |
Beta Was this translation helpful? Give feedback.
-
Eu separaria. Eventualmente as aplicações podem crescer e você vai ter que separá-las de qualquer forma. Hoje em dia é mais fácil compartilhar código entre diferentes apps usando um monorepo com Yarn Workspaces e Lerna, por exemplo. Benefícios:
Eu faria um esforço para evitar duplicação de rotas (de páginas e de API endpoints). Onde trabalho, temos um mapa YAML de rotas na raíz do projeto que é usado tanto pelas aplicações backend (PHP e NodeJS) quanto frontend. A vantagem é que você sempre referencia as rotas por um alias, um nome que não vai mudar: public.home:
path: /
public.user.profile:
path: /user/{userId} admin.home:
path: /
admin.user.search:
path: /user/search api.admin.user.search:
path: /api/user/search
methods: [GET]
api.admin.user.details:
path: /api/user/{userId}/details
methods: [GET] Depois compilamos isso para uns arquivos JS/JSON que podemos consumir no frontend: import getPath from 'shared/route-utils/getPath';
import publicRoutes from './algumarquivo.json';
<Link to={getPath(publicRoutes, 'public.user.settings', { userId: 'abc123' })}>
See John's profile
</Link> import adminApiRoutes from './umoutroarquivo.json';
// Uma API call
const endpoint = getPath(adminApiRoutes, 'api.admin.user.details', { userId: 'abc123' });
fetch(endpoint).then(res => console.log(res)); Desta forma, você pode mudar a path sem ter que alterar nenhum outro arquivo. |
Beta Was this translation helpful? Give feedback.
-
Opa, valeu galera, ótimas observações, e valeu @eliseumds pelas observações e pela dicas das rotas... realmente pensando aqui isso vai ajudar. Obrigado galera! |
Beta Was this translation helpful? Give feedback.
-
@eliseumds só um off aqui: bem massa essa abstração pra rotas 👍
Se é uma preocupação segurança entre ambas aplicações, também sugeriria como o @eliseumds citou, monorepo ajudaria a transitar implementações e modularizar a aplicação. |
Beta Was this translation helpful? Give feedback.
-
Ia falar de usar monorepo também, como sugerido pelo @ninetails, fica perfeito nessa situação. No demais, as respostas do @eliseumds tem me representado aqui, tenho dado um 👍 atrás do outro, hahaha. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Galera,
minha app terá dois tipos de usuários, o organizador que posta eventos, e as equipes que veem estes eventos e fazem notas e tarefas dali descritas.
Enfim, a parte do organizador/admin terá várias telas de crud e etc.
Já a equipe é mais simples, apenas ver e fazer certas notas, e dar tarefas como feitas.
Nestes casos como vocês fariam? Uma app (web) para cada caso ou uma maneira de gerar as rotas, proteger e mostrar menus específicos?
Como indicam fazer?
Meu medo é fazer a msm app e o usuário conseguir burlar editando algum dado javascript no browser... Por isso pensei em duas apps.
Abs.
Beta Was this translation helpful? Give feedback.
All reactions