Skip to content

vitorcricas/tombola_digital

Repository files navigation

Tômbola Digital

Apoiar o comércio local

Plataforma para gestão de uma tômbola digital.

Configurações Servidor

PHP version 7.3 or higher is required, with the following extensions installed:

  • intl
  • libcurl if you plan to use the HTTP\CURLRequest library

Additionally, make sure that the following extensions are enabled in your PHP:

  • json (enabled by default - don't turn it off)
  • mbstring
  • mysqlnd
  • xml (enabled by default - don't turn it off)

Algumas definições:

  • fotos dos comerciantes aderentes ficam em public/images/aderentes/ com o nome do ficheiro a corresponder ao id_comerciante da tabela da b.d.

  • o endpoint do portal é definido no ficheiro app/Config/app.php

    public $baseURL = 'https://<servidor>'; (p.e. public $baseURL = 'https://tombola.cm-mealhada.pt/';)
    
  • a sub-pasta onde está todo o projeto é definida em public/.htaccess

    RewriteBase /tombola_digital/
    
  • logs da aplicação em writable/logs

  • logs de atividade na plataforma (login, logout, registos de códigos...) na base de dados tabela logger ou no backoffice no endpoint /admin/logs

  • credenciais de administração (a entrada é feita também no menu "clientes")

    email: admin@camara.pt
    password: 12345678
    
  • definições apache2 /etc/apache2/sites-enabled/000-default.conf

    <Directory "<server_dir>/tombola_digital/public">
        AllowOverride all
        Require all granted
     </Directory>
    
  • definições para ligação à base de dados em app/Config/Database.php

       'hostname' => 'localhost',
       'username' => 'dbuser',
       'password' => 'dbpass',
       'database' => 'tombola_digital',
    
  • definições para envio de emails (recuperação de conta, registo e ativação de conta) em app/Config/Email.php

    public $SMTPHost = "smtp.host.pt";
    public $SMTPUser = "email@camara.pt";
    public $SMTPPass = "password";
    public $SMTPPort = 587;
    
    public $adminEmail = 'admin@camara.pt'; // Admin Email, admin@example.com
    
  • definições para envio de emails (pedidos de adesão de comerciantes, ou contato geral) em system/Email/Email.php -config igual ao anterior...

  • bloqueio de tentativa de login automático

    • após 3 tentativas erradas de um utilizador o sistema bloqueia a entrada

    • necessário limpar os registos desse login na tabela login_attempts da base de dados

  • chaves API

    public $apikey = "<your_api_key>";
    <script src="https://maps.googleapis.com/maps/api/js?key=<maps-api-key>&callback=initMap&v=weekly" defer></script>
    
    - $recaptcha_secret_key = "<recaptcha_secret_key>";
    
    • OAUTH2 em Ion-Auth/Controllers/Auth.php
      • google
       //https://forum.codeigniter.com/showthread.php?tid=82429
       //https://www.youtube.com/watch?v=a5puLR051Is
       //google client code
       //google oauth2
       $this->googleClient = new \Google\Client();
       $this->googleClient->setClientId("<client-id>.apps.googleusercontent.com");
       $this->googleClient->setClientSecret("<client-secret>");
      
      • facebook
       $this->facebookClient = new \League\OAuth2\Client\Provider\Facebook([
             'clientId'          => '<client-id>',
             'clientSecret'      => '<client-secret>',
             'redirectUri'       => base_url('auth/login_facebook'),
             'graphApiVersion'   => 'v15.0',
         ]);