---
# System prepended metadata

title: Atletico BiLBAW Demo Script

---

# Atletico BiLBAW Demo Script
## Parte 0 - Product Presentation

[Slides](https://docs.google.com/presentation/d/1g47WbRNf9wg6Hm5WxhlDuO-V_vTlnjyOvdCUJS6eElM/edit#slide=id.g41abfbaf28_3_2)

### Slide 1

A plataforma que criámos chama-se Tech Council e é um local para discutir quaisquer tópicos relacionados com tecnologia. Desde dúvidas sobre como utilizar uma aplicação a problemas ao instalar uma VPN o Tech Council é o local certo para procurar soluções.

### Slide 2

O propósito e motivação para desenvolver esta plataforma origina do facto da informação relacionada com a tecnologia estar muito espalhada pela Internet, o que pode tornar complicado o processo de encontrar uma solução ou até o processo de saber onde procurar.

Assim, para combater o problema descrito criámos o Tech Council que procura ser um local com informação centralizada e de qualidade para todos os assuntos relacionados com tecnologia. A platforma promove a interação, já que é através disso que a informação vai aumentar e melhorar. Nesse processo a os utilizadores têm a possibilidade de encontrar pessoas com tópicos de conversação semelhantes. Investimos bastante na simplicidade de uso e num design apelativo, minimalista e responsivo, para facilitar a entrada de novos utilizadores.

### Slide 3

As features principais estão aqui descritas. Os utilizadores podem ver e ler questões categorizadas por um conjunto de tags e interagir através de votos (ou likes e dislikes), respostas e comentários. Um utilizador pode visitar a página de uma tag para ver as perguntas relacionadas a esse tema e também segui-la. 

Também é importante destacar as funcionalidades de pesquisa que permitem aos utilizadores procurar questões, tags e utilizadores. 

A filtragem de conteúdo pode ser vista em várias zonas na plataforma, por exemplo na página incial é visto um mural de perguntas de acordo com a filtragem selecionada, entre elas `Best`, `New` e `Trending`.

Não esquecer também a possibilidade de ver o histórico do utilizador na sua página de perfil. Aqui pode ser vista a atividade no site a nível de questões colocadas, respostas submetidas e também perguntas guardadas.

Outras features que temos são a possibilidade de criar reports de conteúdos e utilizadores, que serão interpretados pelos moderadores. Os moderadores têm uma área dedicada para gerir a plataforma, onde podem banir utilizadores, gerir tags e resolver reports criados pelos utilizadores.

### Slide 4

Passamos agora para a demonstração.


## Parte I - Authentication & Authorization

- Mostar página inicial
- Experimentar dar upvote, save report para mostrar autorização (dá redirect para login)
- Fazer registo válido
- Dar logout, fazer login inválido para mostrar validação do lado do cliente
- Fazer login direito com utilizador normal
> user 13
> hbetancourtc@altervista.org
> 4KdRnq0P

## Parte II - CRUD Operations

- Página de perfil (user 13), mostrar filtros, perguntas do utilizador (não voltar atrás nos filtros!!)

### Perguntas:
- Criar uma pergunta simples, aproveitar para:
    -  verificar validações de inputs do lado do servidor
- Editar a pergunta criada (dar refresh para mostrar as AJAX calls, com conteúdo be)
- Apagar a pergunta criada 

### Respostas:
- Criar uma reposta na pergunta PS4 free monthly games
- Apagar resposta

### Comentários:
- Criar um comentário

### Respostas com diferentes cores:
- Abrir Disable info popups on Youtube app
- Escolher resposta como melhor

### Inserir questão complexa
#### Title

Gatsby - Command failed with exit code 1: npm install

#### Body

I'm trying to start my first Gatsby project but keep encountering the same error when creating a new project.

After running `gatsby new project-1`, I get the following error:

```bash
npm ERR! Maximum call stack size exceeded
npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/tom.allen/.npm/_logs/2020-06-18T15_54_40_537Z-debug.log

ERROR 
Command failed with exit code 1: npm install
  Error: Command failed with exit code 1: npm install

  - error.js:56 makeError
    [lib]/[gatsby-cli]/[execa]/lib/error.js:56:11
  - index.js:114 handlePromise
    [lib]/[gatsby-cli]/[execa]/index.js:114:26
  - task_queues.js:97 processTicksAndRejections
    internal/process/task_queues.js:97:5
  - init-starter.js:139 async install
    [lib]/[gatsby-cli]/lib/init-starter.js:139:7
  - init-starter.js:206 async clone
    [lib]/[gatsby-cli]/lib/init-starter.js:206:3
  - init-starter.js:345 async initStarter
    [lib]/[gatsby-cli]/lib/init-starter.js:345:19
  - create-cli.js:400 
    [lib]/[gatsby-cli]/lib/create-cli.js:400:7
```    

I have tried deleting the node_modules inside the project folder and running `npm i` again but I cant work out how to fix this issue. I'm on node v12.17.0 if that makes a difference... Any help will be really appreciated!

#### Tags

- javascript
- node.js


## Parte III - Tag page / Search results page

- Mostrar filtros:
    - Explicar cada um dos filtros
    - Evidenciar resultado de cada filtro (esconder o filtro New)
- Fazer pesquisa `windows`
    - Pesquisar e mostrar a página de resultados de pesquisa
    - Mostrar novamente os filtros
    - Explicar como funciona full text search ("weighted search com titulo da question com max prioridade e cenas assim" Miguel Pinto 2021)
- Como `windows` não dá resultados em users pesquisar por `mouse` (palavra presente na descrição do user id = 13 e mostra-se que search também tem em conta descrições de utilizadores) 

## Parte IV - Moderation / Reports

#### Reports

- criar um report a uma pergunta, aproveitar para:
    - mostrar validação do lado do cliente sem qualquer input inicial
    - mostrar íconde de validação
- dar log out e passar ao moderador

#### Moderator

- log in com moderador
- mostrar que pode apagar qualquer conteúdo


- **Reports**:
    - ver o report criado anteriormente
    - marcar o report como resolvido
- **Users**:
    - mostrar página de users, banir 1 utilizador (!! antes de paginar !!)
    - pesquisar por eliseu ctrl-enter
    - só agora paginar
- **Tags**:
    - editar tag `cmd` para `command` 
    - apagar tag `command`
    - só agora paginar

#### Admin

- mostrar pela linha de comandos
- executar demote do moderador previamente utilizado: `php artisan demote {user}`
- executar: `php artisan mods`
- fazer login com o utilizador para mostrar que de facto deixou de ser moderador
- promover de novo o utilizador `php artisan promote {user}`
- fazer login com o utilizador para mostrar que de factor voltou a ser moderador

#### Password Recovery




## Notes and bugs

- Cuidado com saved e votes nos filtros
- `Ctrl+Enter` na pesquisa por users na moderator area
- User settings não têm policies corretas, portanto não tentar ir lá pelo link
- Não visitar páginas de outros utilizadores pois vê-se logo as saved questions desse utilizador
- Banir user não funciona com paginação, banir logo na primeira página

#### Answer 1 (expert)

So there's a few suggestions:

- Hard cache removal: `npm cache clean --force`
- Upgrade `gatsby-cli` version: `npm update`
- Delete `node_modules` and `.cache` folder

Keep in mind removing `package-lock.json` to unlock you dependencies.

#### Answer 2 (expert, mod, set as best later)

#### Install node and npm via nvm

1. Run the following to install Node and npm: `nvm install node`
2. Now, **in order to make** `gatsby new` work, you will need to install a previous version of node, which will be: v14.13.1. Run the following command and you will install the mentioned version:

```bash    
nvm install 14.13.1
```
    
3. Select the Node version to use if is not selected:

```bash
nvm exec 14.13.1 node --version
```