LUDOBOX é uma rede social dedicada a gamers, inspirada no conceito do Letterboxd. A plataforma permite aos utilizadores criar um perfil personalizado, catalogar a sua biblioteca de jogos, escrever críticas e interagir com uma comunidade de jogadores.
O projeto utiliza a API da RAWG para obter dados atualizados sobre milhares de jogos e oferece integração com a Steam para autenticação e importação de dados de perfil.
- Autenticação Híbrida: Login via e-mail/senha ou através da conta Steam (OpenID).
- Gestão de Biblioteca: Classificação de jogos em três categorias:
- 🕹️ A Jogar
- ✅ Terminado (Zerado)
- ❌ Abandonado
- Sistema de Avaliação: Atribuição de notas e criação de críticas escritas (reviews).
- Interação Social:
- Seguir e deixar de seguir outros utilizadores.
- Sistema de "Gosto" (Like/Dislike) em avaliações.
- Visualização de seguidores e utilizadores seguidos.
- Exploração: Pesquisa e filtragem de jogos por género, popularidade e lançamentos (via RAWG API).
- Perfil Personalizado: Bio editável, avatar (importado da Steam ou padrão) e histórico de atividades.
- Python 3
- Flask (Framework Web)
- PostgreSQL (Base de dados)
- PyJWT (Autenticação via JSON Web Tokens)
- Psycopg2 (Conector de base de dados)
- React 19
- Vite (Build tool rápida)
- HTML5 / CSS3
- React Router (Navegação SPA)
- RAWG Video Games Database API (Metadados dos jogos)
- Steam Web API (Autenticação e dados de utilizador)
Para executar este projeto localmente, siga os passos abaixo para o Backend e Frontend.
- Python 3.8+
- Node.js e npm
- PostgreSQL instalado e a correr
-
Navegue até à pasta do servidor:
cd Server/serv -
Crie um ambiente virtual (recomendado):
python -m venv venv # Windows .\venv\Scripts\activate # macOS/Linux source venv/bin/activate
-
Instale as dependências:
pip install -r requirements.txt
-
Configure a Base de Dados:
- Certifique-se que o PostgreSQL está ativo.
- Execute o script de criação das tabelas (via
create_database.sqlou executando os comandos Python correspondentes nocomandos_dados.py/setup_database.py).
-
Execute o servidor:
python app.py
O servidor iniciará em
http://localhost:8080
-
Navegue até à pasta do frontend (num novo terminal):
cd frontend -
Instale as dependências do Node:
npm install
-
Inicie o servidor de desenvolvimento:
npm run dev
A aplicação estará disponível no endereço indicado pelo Vite (geralmente
http://localhost:5173).
Para segurança, recomenda-se criar um ficheiro .env na pasta Server/serv (o projeto atual tem as chaves no código, mas para produção devem ser ocultadas). As chaves necessárias são:
RAWG_API_KEY: A sua chave da API RAWG.STEAM_API_KEY: A sua chave da API Steam.SECRET_KEY: Chave secreta para assinatura de sessões/JWT.DATABASE_URL: String de conexão ao PostgreSQL.
Nota: Este projeto foi desenvolvido com fins académicos/educativos.