GithubHelp home page GithubHelp logo

marcosfragoso / loja-de-jogos-plp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marcosantonio15243/loja_de_jogos_projeto_plp

0.0 0.0 0.0 93.47 MB

Repositório dedicado a criação de uma Loja de Jogos utilizando as linguagens Haskell e Prolog para o projeto de paradigma funcional e lógico da disciplica de Paradigmas de Linguagens de Programação (PLP)

Haskell 48.13% Prolog 51.87%

loja-de-jogos-plp's Introduction

🎮🕹️ Loja de Jogos

Neste projeto, criaremos um sistema de uma loja de jogos digitais, possibilitando ao usuário uma forma fácil de adquirir seus jogos e mantê-los em sua biblioteca, gerenciar sua carteira digital e diversas outras funcionalidades utilizando apenas o terminal de linha de comando.

Cada usuário possuirá uma conta, podendo esta ser administrador (admin) ou padrão. Assim, após a criação da conta, o usuário padrão poderá realizar login no sistema para visualizar os jogos, avaliá-los, deixar comentários sobre o jogo, comprar os jogos que desejar, gerenciar sua carteira digital com operações de depósito e consulta de saldo, e também bater um papo com outro usuário através de um chat privado.

Para facilitar a busca de jogos por parte do usuário, além da pesquisa por nome, o sistema conta com métodos de filtragem para exibição dos jogos (mais vendidos, mais jogados, lançamentos, gêneros como RPG, terror, puzzle, etc).

O usuário administrador tem privilégios no sistema, como cadastrar jogos, atualizar jogos, ter um dashboard com diversas estatísticas do sistema e analisar as denúncias feitas pelos usuários.

⚙️📋 Funcionalidades

  • Gerais

    • Criar conta;
    • Fazer login.
  • Administrador

    • Adicionar, atualizar, visualizar e remover jogos;
    • Analisar denúncias;
    • Visualizar dashboard com estatísticas do sistema.
  • Usuário padrão

    • Visualizar jogos disponíveis (A visualização pode ser filtrada por gênero, mais vendidos, data de lançamento, mais avaliados, nome e preço);
    • Comprar jogos disponíveis;
    • Avaliar jogos;
    • Favoritar jogos;
    • Gerenciar carteira digital (depósito e consulta de saldo);
    • Comentar jogo;
    • Denunciar jogo;
    • Conversar através de chat privado com outros usuários.

🔧💻 Como executar

Instalação do PostgreSQL

  1. Baixe o PostgreSQL:

  2. Se for executar o projeto em Prolog, precisará baixar o driver do PostgreSQL OBDC para Windows (Link)

    • Após isso, você cria a database "lojajogos" no pgAdmin

    • Pesquise no menu iniciar por ODBC e clique na primeira opção. A tela “Administrador de Fonte de Dados ODBC” deve abrir. Na aba “DNS de Usuário” clique em Adicionar, e crie uma fonte de dados com o driver “PostgreSQL Unicode” que você baixou anteriormente. Os dados a serem inseridos são dessa forma (semelhante à anterior):

       Data Source: SWI-Prolog 
       Database: lojajogos
       Server: localhost
       User: postgres
       Description: Conexão ODBC para o PostgreSQL
       SSL mode: disable 
       Port: 5432 
       Password: postgres 
      
  3. Em caso de sistemas Unix, o driver do PostreSQL pode ser instalado e configurado da seguinte maneira:

    • Instalação do driver do PostgreSQL com sudo apt-get install odbc-postgresql
    • Instalação do ODBC para Prolog com apt install swi-prolog-odbc
    • Em seguida, no terminal, a partir do diretório raiz, navegar para o diretório do arquivo de inicialização do odbc com cd /etc e abrir o arquivo de inicializaçao com sudo vim odbc.iniou sudo nano odbc.ini(ou algum outro editor com permissão de superusuário).
    • Após isso, colar os seguintes dados de configuração da conexão com o banco:
       [SWI-Prolog]
       Description = Conexão ODBC para o PostgreSQL
       Driver = PostgreSQL Unicode
       Servername = localhost
       Database = lojajogos
       UserName = postgres
       Password = postgres
       Port = 5432
      
    • Por fim, basta salvar e fechar o arquivo que, assim, a conexão com o banco estará configurada.
  4. Após a instalação, entre no pgAdmin e crie a database com o nome "lojajogos"

  5. Configurações iniciais:

    • Caso peça para configurar username e password antes do passo 2, configure da seguinte forma:

      username: postgres
      password: postgres
      host name/address: localhost
      port: 5432
      
    • Caso não peça, clique com o botão direito no servidor onde está sua database, vá em connection e configure com as informações acima.

  6. Após as configurações, execute o projeto e em seguida copie o conteúdo do arquivo dadosIniciais.sql, cole na Query Tool do pgAdmin e execute, um comando por vez, para popular uma conta administrador padrão e alguns jogos na sua base de dados.

Observação: A configuração deve seguir a mesma que o tutorial acima. Caso contrário, a aplicação pode resultar em erros.

Instalação do Haskell

  1. Faça a instalação do GHCup
  2. Depois de configurar seu PostgreSQL, abra o terminal no diretório "haskell" e rode os comandos cabal init -n e cabal build
  3. Caso não ocorra erros, digite cabal run

Observação 1: Caso esteja usando Visual Studio Code, baixe as extensões necessárias.
Observação 2: Em caso de erro na lib "base", você pode alterar a versão manualmente no arquivo "haskell.cabal" com a versão da sua máquina.

Instalação do Prolog

  1. Faça a instalação do SWI-Prolog (Tutorial de instalação para Windows)
  2. Depois de configurar seu PostgreSQL, abra o terminal no diretório "prolog" e rode os comandos swipl main.pl.

👨‍💻👩‍💻 Equipe

loja-de-jogos-plp's People

Contributors

marcosantonio15243 avatar marcosfragoso avatar hildon27 avatar leilafarias avatar victorcosme avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.