Skip to content

🇺🇸 - A project developed with the purpose of choosing randomly a game from the user's backlog list at Backloggd 🇧🇷 - É um projeto desenvolvido com o intuito de escolher aleatoriamente um jogo da lista de backlog do site Backloggd

License

Notifications You must be signed in to change notification settings

erikbocks/random-backloggd-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Random Backloggd - Docker EN


Random Backloggd is a project developed with the purpose of choosing randomly a game from the user's backlog list at Backloggd.

About

The platform Backloggd allow gamers to maintain a journal/collection of games. Each user has a profile, which you can log games with the following criteria:

  • Played: games that were already played
  • Playing: games being played at the moment
  • Backlog: games that you own/can play, but hasn't played yet
  • Wishlist: games you wish to own

For now, we will focus on the Backlog list. With that many options, it can be hard to choose a game to play, right? And driven by this feeling, Random Backloggd was born.

The application web scraps the user list with the library Selenium, and based on that list, it chooses a random game for you to play. Nothing feels better than blaming something else by the bad choice, huh? ;)

The project infrastructure is made by using Docker containers. There will be 4 containers, created by using Docker Compose, these being:

  • Front-end: contains the Nginx web server that hosts the page.
  • Back-end: contains the Flask web server that handles the HTTP request to fetch a random game
  • Database: contains the Memcached database, which caches the user games during a period of time, allowing requests referring to the same user to be answered quickly
  • Selenium: contains the Edge browser instance, used to scrap the Backloggd account, allowing the user to run the application even without that browser installed locally.

Techs and Libraries

  • Python 3.12.3
  • Pip 24.3.1
  • Selenium 4.27.1
  • Pymemcache 4.0.0
  • Flask 3.1.0
  • Flask-Cors 5.0.0
  • Memcached 1.6.33
  • Docker 4.35.1
  • Tailwind CSS 3.4.14
  • ES 2020+

How to use

The project itself aims to be something easy and practical to be used. The only prerequisite is to have Docker installed, with the version 4.35.1 or newer.

The steps are:

  1. Clone this repo.
  2. Open the project folder with your IDE and create a new terminal, or open straight on your terminal
  3. Run the command: docker compose up -d

Done! Now you just have to wait a little while the containers aren't completely up and after that the page will be available at http://localhost:3000.

Random Backloggd - Docker PT/BR


O Random Backloggd é um projeto desenvolvido com o intuito de escolher aleatoriamente um jogo da lista de backlog do site Backloggd.

Sobre

A plataforma Backloggd possibilita que gamers mantenha um diário/coleção de jogos. Cada usuário possui um perfil, e nesse perfil podem ser cadastrados jogos com os seguintes critérios:

  • Jogado: jogos que já foram jogados.
  • Jogando: jogos sendo jogados no momento.
  • Backlog: jogos que você possui/tem acesso, porém não jogou ainda.
  • Wishlist: jogos que você deseja adquirir.

Nesse projeto, iremos nos concentrar na lista de Backlog. Com tantas opções, podemos ficar confusos na hora de escolher o que jogar, certo? É desse sentimento que o Random Backloggd nasceu.

A aplicação lê a lista do usuário fazendo web scrapping com a biblioteca Selenium, e a partir dessa lista, seleciona um jogo aleatório para você jogar. Nada melhor que poder culpar outro pela má escolha, né? ;)

A infraestrutura do projeto é composta por contêineres do Docker. Serão criados 4 contêineres com a ferramenta Docker Compose, sendo esses:

  • Front-end: contém o servidor web Nginx que hospeda a página web.
  • Back-end: contém o servidor web Flask que recebe a requisição HTTP para buscar um jogo aleatório.
  • Database: contém o banco de dados de Memcached, que armazena os jogos de determinado usuário por um período, fazendo com que várias consultas seguidas que se referem ao mesmo usuário sejam respondidas mais rapidamente.
  • Selenium: contém a instância de um navegador Edge, utilizada para fazer a consulta no perfil do Backloggd, fazendo com que não seja necessário haver tal navegador instalado localmente.

Tecnologias e Bibliotecas

  • Python 3.12.3
  • Pip 24.3.1
  • Selenium 4.27.1
  • Pymemcache 4.0.0
  • Flask 3.1.0
  • Flask-Cors 5.0.0
  • Memcached 1.6.33
  • Docker 4.35.1
  • Tailwind CSS 3.4.14
  • ES 2020+

Como usar

O projeto, desde seu início, tem o objetivo de ser algo fácil e prático de ser executado. O único requisito é ter o Docker instalado, na versão 4.35.1 ou posterior.

Os passos são os seguintes:

  1. Clonar esse repositório
  2. Abrir o diretório com sua IDE de preferência (ou diretamente via terminal) e criar um novo terminal.
  3. Executar o comando: docker compose up -d

Pronto! Agora é só esperar os contêineres estarem totalmente inicializados e a página estará disponível em http://localhost:3000.

About

🇺🇸 - A project developed with the purpose of choosing randomly a game from the user's backlog list at Backloggd 🇧🇷 - É um projeto desenvolvido com o intuito de escolher aleatoriamente um jogo da lista de backlog do site Backloggd

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published