Bem-vindo ao repositório Front-end do MindScribe, uma aplicação web elegante e moderna de anotações projetada para oferecer uma experiência de escrita fluida, reativa e sem interrupções – inspirada nos maiores aplicativos de produtividade do mercado.
Este projeto foi construído como um portfólio prático para aplicar conceitos avançados de Front-end e Engenharia de Software utilizando Angular, comunicando-se de forma consistente com uma API RESTful (nativamente desenvolvida em Spring Boot).
O projeto utiliza tecnologias modernas e as mais recentes boas práticas para garantir manutenção, escalabilidade e altíssima performance:
- Angular v21 (Construído totalmente com a moderna arquitetura de Standalone Components, garantindo um código mais limpo por não depender do tradicional
NgModules). - TypeScript para garantir segurança na tipagem e manutenibilidade na vida útil da aplicação.
- RxJS para orquestração de eventos assíncronos, gerenciamento de estado e reatividade real, com uso robusto de
SubjectseBehaviorSubjects. - CSS3 e HTML5 Nativos, com base construída do zero, focando em customização profunda e UI refinada ao invés da interdependência massiva de bibliotecas de componentes prontas.
- Login & Registro: Telas com formulários responsivos dedicados ao engajamento do usuário. Tratamento reativo em tempo real de erros de autenticação (HTTP 400, 401) com feedbacks visuais na tela.
- Tokens JWT: Integração fluida em armazenagem via localStorage (
auth_token), com uso interceptadores HTTP para enviar de forma silenciosa e automática credenciais pelo Header em requisições logadas.
- Criação Dinâmica de Layout (Sem Recarregamentos): Ao criar uma nota, a representação gráfica em tela responde em milissegundos, gerida pelo
ChangeDetectorRefnativo do Angular para evitar reloads. - Auto-Save Inteligente: O fluxo natural de escrita nunca é afetado. O operador
debounceTimedo RxJS aguarda pausas curtas na digitação e realiza salvamentos contínuos na base de dados de forma transparente na nuvem. - CRUD Intuitivo: Capacidade rica e responsiva de gerir e excluir notas do inventário através de lógicas robustas que evitam engasgos na detecção da interface do usuário.
- Ações Transversais: Um sistema de barramento isolado (
NoteService) onde a Sidebar se torna um controle mestre global: dispara ações de busca ou criação que componentes independentes como a visualização da Home escutam ativamente e executam em uníssono – princípio puro de baixo acoplamento! - Transições Visuais Lógicas: Mudanças em real-time entre visualização dos "Dashboards" contra o leitor imersivo da nota sendo editada.
Durante o desenvolvimento do Front-end em Angular v21, princípios sérios da engenharia foram atacados:
- Comunicação Reativa Eficiente: Superou os padrões de injeção e roteamento pesado delegando fluxos contínuos entre partes não-parentes da UI por intermédio reativo e Observables (
note.ts,isEditorOpen). - Prevenção de Memory Leaks: Controle microscópico do ciclo de vida nos módulos de serviço e paginas e destruição adequada de Subscriptions (
ngOnDestroy). - Sincronicidade de Tela x Estado: Lógica state-of-the-art na gerência dos menus paralelos em Dropdown (sem dependências modulares complexas do Javascript tradicional), manipulando a renderização a nível dos pixels através de cliques globais isolados.
O código-fonte reflete o isolamento completo por domínios de negócio com fácil navegação:
src/
└── app/
├── components/ # Pedaços atômicos e reutilizáveis da UI (Ex: Sidebar, Header estilizados).
├── layout/ # Definições modulares da casca das páginas (Ex: MainLayout que abriga rotas fluindo).
├── models/ # Objetos vitais e tipagens que transacionam com API (Ex: Payload e DTOs de Note).
├── pages/ # View central das rotas renderizadas ativamente (Login, Registros e Dashboard/Home).
├── services/ # Camada de Injeção para regras de negócio pesadas, Interceptações Web e requisições HTTP REST.
├── app.routes # Tabela modular para lazy-loading (se preciso) e redirecionamentos.
└── app.config # O Cérebro condutor das injeções de provedores do Angular.
Pré-requisitos Necessários: Você precisará ter o ecosistema Node.js e o Angular CLI adequados instalados globalmente. Adicionalmente, você precisa ter instanciada sua API Java Spring Boot (http://localhost:8080) para viabilizar as chamadas backend!
-
Clone este Repositório:
git clone <SUA_URL_DO_REPOSITÓRIO> cd mindscribe-web
-
Baixe os Pacotes da Aplicação:
npm install
-
Inicie o Servidor Front-end em Ambiente de Dev:
ng serve
-
Aplicação Pronta: Abra seu navegador favorito e inicie a imersão em: http://localhost:4200
Desenvolvido com dedicação, padrões Clean Code e Arquitetura Reativa.