Este é um projeto web que integra duas aplicações micro frontEnds e um bff para consumir os vídeos do YouTube.
Nome: Anderson Felipe Silva do Nascimento Email: [email protected] GitHub: AndersonNascimentoAFSN
- HTML5
- CSS3
- TypeScript
- Web Components
- YouTube API
- NodeJs
- Docker
- Docker Compose
- Module Federation (Micro frontEnd)
src/
: Contém todos os arquivos de código fonte do projeto.src/components/
: Contém os Web Components usados no projeto também os arquivos de teste do projeto.src/utils/
: Contém utilitários e funções auxiliares.index.html
: Arquivo HTML principal.
Antes de começar, certifique-se de ter o seguinte instalado em sua máquina:
-
Clone o repositório:
git clone https://github.com/AndersonNascimentoAFSN/iMemories.git cd iMemories
-
Instale as dependências dentro do diretório de cada cada uma das aplicações (bff, mf_drawer, mf_videos):
npm install
-
Compile o TypeScript para JavaScript em cada uma das aplicações:
npm run build
-
Dentro do diretório de cada uma das aplicações:
npm test
-
Para executar testes específicos, você pode usar:
npm run test -- -t "Drawer Component"
Observação: "Drawer Component" é o texto do describe do texto. Pode ser utilizado também o texto do it.
- Configuração de variáveis de ambiente no arquivo .env de cada uma das aplicações. Você deve gerar sua própria API_KEY do youtube nesse link
bff:
API_BFF_PORT="3003"
YOUTUBE_API_KEY=""
mf_drawer:
APP_URL="http://localhost:3000/"
APP_PORT="3000"
APP_MF_VIDEOS="mf_videos@http://localhost:3001/remoteEntry.js"
mf_videos:
APP_URL="http://localhost:3001/"
APP_PORT="3001"
APP_MF_DRAWER="mf_videos@http://localhost:3000/remoteEntry.js"
API_BFF="http://localhost:3003"
- Dentro de cada uma das aplicações executar os comandos:
npm install
npm build
npm start
-
Dentro do arquivo docker-compose.yml defina a API_KEY do Youtube na variável de ambiente "YOUTUBE_API_KEY".
-
Dentro do diretório principal (IMemories) execute o comando:
docker compose up --build
-
Abra seu navegador e acesse:
http://localhost:3000
Aqui está uma visão geral da estrutura de código do projeto:
iMemories/
│
├── bff/
│ ├── src/
│ │ ├── lib/
│ │ └── types/
│ ├── Dockerfile
│ └── tsconfig.json
│
├── mf_drawer/
│ ├── src/
| │ ├── components/
| │ ├── utils/
| │ ├── index.ts
| │ ├── index.html
| │ ├── index.css
| │ ├── reset.css
│ │ └── App.ts
│ ├── types/
│ ├── .babelrc
│ ├── .gitignore
│ ├── .babel.config.js
│ ├── Dockerfile
│ ├── setupTests.ts
│ ├── vitest.config.mts
│ └── webpack.config.js
|
├── mf_videos/
│ ├── src/
| │ ├── components/
| │ ├── utils/
| │ ├── index.ts
| │ ├── index.html
| │ ├── index.css
| │ ├── reset.css
│ │ └── App.ts
│ ├── types/
│ ├── .babelrc
│ ├── .gitignore
│ ├── .babel.config.js
│ ├── Dockerfile
│ ├── setupTests.ts
│ ├── vitest.config.mts
│ └── webpack.config.js
│
├── .gitignore
├── .docker-compose.yml
└── README.md