Skip to content

ederbiason/ai-videohelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎬 AI VideoHelper 🎬

Projeto   |    Tecnologias   |    Utilização   |    Desafios   |    GitHub Actions   |    Licença

GitHub Actions

📁 Projeto

Este projeto consiste em uma ferramenta que automatiza a criação de descrições e títulos (por enquanto) para vídeos do YouTube a partir da transcrição do conteúdo. Basta fazer o upload de um vídeo que a Inteligencia Artificial do ChatGPT (Whisper) vai transcrever o áudio do vídeo e com base nessa transcrição gerar sugestões de título e descrição. Além da possibilidade de inserir um prompt personalizado para que a geração das sugestões atenda as necessidades do usuário.

💻 Tecnologias

Este projeto foi desenvolvido utilizando tecnologias como:

⚙️ Back-end

  • Node.JS
  • TypeScript
  • Fastify
  • Prisma
  • Dotenv
  • OpenAI
  • Zod

🖥️ Front-end

  • Next.JS
  • React
  • TypeScript
  • Tailwind CSS
  • Axios
  • FFmpeg
  • Shadcn UI

💡 Utilização

A aplicação está dividida entre o Back-end na pasta (server) e o Front-end na pasta (client).
Porém ao fazer o clone do projeto as duas já vão vir no arquivo, basta abrir um VSCode (ou qualquer que seja a IDE) para cada pasta.
Para executar a aplicação em sua máquina localmente, certifique-se de ter o Node.js e o npm instalados antes de prosseguir com as etapas abaixo:

  1. Clone o projeto:
$ git clone https://github.com/ederbiason/ai-videohelper.git
  1. Acesse a pasta do projeto:
$ cd ai-videohelper

Para rodar o Front-end

  1. Acesse o Front-end:
$ cd client
  1. Instale as dependências:
$ npm install
  1. Inicie o servidor:
$ npm run dev

Para rodar o Back-end

  1. Acesse o Back-end:
$ cd server
  1. Instale as dependências:
$ npm install
  1. Execute as migrações:
$ npx prisma migrate dev
  1. Inicie o servidor:
$ npm run dev

⚠️ Importante: Crie um arquivo .env de acordo com o arquivo .env.example. No campo DATABASE_URL, especifique a URL do banco de dados que deseja utilizar. Crie uma conta no site OpenAI, obtenha sua chave da API e preencha o campo OPENAI_API_KEY com sua chave.

🎯 Desafios

- [x] **Desafio de Configuração Inicial do GitHub**: Configure um arquivo de configuração `.gitignore` para excluir arquivos desnecessários do repositório.
- [x] **Desafio de Integração com API**: Integre o GitHub Actions com uma API externa, como um serviço de notificação.
- [x] **Desafio de Configuração de Badge**: Adicione um badge de status do GitHub Actions ao seu README.md para mostrar o status do pipeline.
- [x] **Desafio de Variáveis de Ambiente**: Utilize variáveis de ambiente no GitHub Actions para armazenar informações sensíveis, como chaves de API.
- [x] **Desafio de Análise de Desempenho**: Utilize ferramentas como Lighthouse para avaliar o desempenho do site e implemente otimizações.
- [x] **Desafio de Branch Protegida**: Configure a branch principal como protegida, exigindo revisões de código antes de mesclar pull requests.

😸 GitHub Actions

Esta Action verifica se tudo está configurado corretamente, instala as ferramentas necessárias e constrói o projeto, tanto a parte do front-end quanto do back-end. Depois, ele roda todos os testes para ter certeza de que tudo está funcionando como deveria.

Esta Action possui duas etapas: a primeira é para clonar o repositório e a segunda é para realizar uma revisão de dependências utilizando uma ação específica para isso. Essa configuração ajuda a automatizar a revisão de dependências em novos pull requests.

Esta Action é acionada em todos os pushes e pull_requests do projeto, sempre que algo chega na branch principal a Action é executada.

Esta Action integra o GitHub Actions com a API da OpenAI, que também foi utilizada no projeto. Ele usa um script local para realizar uma tarefa de completamento com a OpenAI.

📝 Licença

Este projeto está sob a licença MIT.