# 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
```