Meu primeiro grande projeto pessoal que desenvolvo utilizando a API do Google Gemini para criar um chatbot para recomendação de jogos de acordo com as caracteristicas pedidas pelo usuário no prompt. Além disso também implementei um sistema de Review baseado na plataforma Backloggd e utilização da API da IGDB para obter as informações de todos os games.
Na primeira versão do projeto, o usuário podia fazer reviews e solicitar recomendações para o chatbot, nenhuma informação é salva, pois havia decidido não usar um banco de dados.
Agora na segunda versão, o projeto conta com uma API Serverless criada com o Serverless Framework V4 e AWS, com autenticação pelo Cognito, banco de dados utilizando DynamoDB em 98% aplicação e uma pequena instância de um banco Postgresql no Supabase para obtenção de reviews aleatórias.
Quem quiser testar o projeto, por favor deixe seu feedback, sugestões, reclamações, todas são bem-vindas! 😊
- Next.js
- Typescript
- pnpm
- Axios
- Google Gemini
- API Serverless feita no Serverless Framework com AWS
- IGDB
- API Gateway (Para criar um proxy para poder interagir com a API do IGDB com a URL do deploy)
- DynamoDB para a maior parte da aplicação
- PostgreSQL no Supabase para obter reviews aleatórias
- Eslint
- Prettier
- Lint-staged
- Commitlinting
- Husky
- EditorConfig
- Shadcn UI
- Tailwind CSS
- Sonner
- Framer-motion para algumas animações
- Zustand
- Date-Fns
- React Markdown
Caso queira fazer o clone desse projeto e recriar suas funcionalidades, você vai precisar dos seguintes itens:
-
Uma API para aplicação, você pode utilizar a API Serverless que eu criei para esse projeto no seguinte repositório: Repositório da API Após ter a API, você precisará criar a seguinte variável de ambiente: "NEXT_PUBLIC_BASE_API_URL" que será o endpoint da API.
-
Com a API pronta, você precisará agora de algumas variáveis de ambiente da API do IGDB, sendo elas:
- IGDB_URL: Endpoint do proxy da API do IGDB;
- TWITCH_CLIENT_ID;
- TWITCH_CLIENT_SECRET;
- TWITCH_ACCESS_TOKEN;
- API_KEY;
Todas essas informações podem ser obtidas seguindo a documentação oficial da IGDB, que você pode acessar por aqui: API da IGDB
Com todas as variáveis de ambiente configuradas, você já poderá replicar o funcionamento do projeto.
This is my first project using Google's Gemini API to build a chatbot that suggests games based on what you're looking for! I've also added a review system using Backloggd and the IGDB API to get all the game info.
In this first version, you could review games and ask the chatbot for recommendations. I wasn't saving any of your info yet, because I had decided to not use a Database yet.
Now on this second verstion, I have created a Serverless API using Serverless Framework v4 with AWS, with authentication using AWS Cognito, I created a Database using DynamoDB with single-table design in 98% of the application, that's because I use a small Supabase PostgreSQL Instance for getting random completed Reviews.
Want to try it out? Please let me know what you think! Feedback, suggestions, complaints...I'm all ears! 😊
- Next.js
- Typescript
- pnpm
- Axios
- Google Gemini
- Next.js
- IGDB
- API Gateway (Create a Proxy to interact with deploy's URL)
- DynamoDB with single-table design for the most part of the aplication
- PostgreSQL on Supabase for getting random reviews.
- Eslint
- Prettier
- Lint-staged
- Commitlinting
- Husky
- EditorConfig
- Shadcn UI
- Tailwind CSS
- Sonner
- Framer-motion for small animations
- Zustand
- Date-Fns
- React Markdown
If you want to clone and recreate this project, you will need to follow a few steps:
-
You will need a API for the project, you can use the Serverless API that I created for this project, the API can be found on this repo: Serverless API Repo With the API ready to go, you will need this environment variable: "NEXT_PUBLIC_BASE_API_URL" what will be the endpoint of the API.
-
Now you will need some other env variables for the IGDB API, which will be:
- IGDB_URL: endpoint of the IGDB API proxy;
- TWITCH_CLIENT_ID;
- TWITCH_CLIENT_SECRET;
- TWITCH_ACCESS_TOKEN;
- API_KEY;
All this informations, you can get on the official documentation of the IGDB API on this link: IGDB API doc
With all the environment variables setted, you are ready to go and test your own version of this project.