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