R pre

Roboyo

By olekwow
  • Period: to

    Estágio - WeMake, Roboyo

    Progresso em PenTesting Reporting Tool
  • Period: to

    Fase 1 - User Management

    Esta fase marca o inicio do projeto com o intuito de me adaptar a Laravel e desenvolver a gestão de utilizadores e acessos à aplicação
  • Início de estágio Roboyo

    Início de estágio Roboyo
    Recomendado iniciar com curso de introdução a Laravel no LaraCast.
  • Dia #2 - Presencial

    Dia #2 - Presencial
    Neste primeiro dia em escritório tive a oportunidade de acompanhar a equipa de cibersegurança num dia normal de trabalho.
    Recebi portátil da empresa onde formatei e instalei:
    VSC, MySQL, TablePlus, Composer, PHP 8 e Laravel.
    Abrir também um repositório no Git e iniciei um projecto Laravel.
  • Dia #4

    Dia #4
    Continuação de curso LaraCast
    Criação de Base de Dados
    Pequenos testes
  • Dia #6 - Sistema de Login

    Dia #6 - Sistema de Login
    Inicio do desenvolvimento de sistema de autenticação
    Diversos problemas de backend
  • Dia #7 - Bcrypt

    Dia #7 - Bcrypt
    Avanços de UI/UX na autenticação
    Correção de erros de backend
    Encriptação automática de passwords com bcrypt Obs: Bcrypt é basead na cifra Blowfish e usa Salt
  • Dia #8 - Migrations, Seeding e Factory

    Dia #8 - Migrations, Seeding e Factory
    Continuação de LaraCasts.
    Reformatação de base de dados
    Criação de: Migrations, Seeding e Factory
    Inicio da ligação backend para registo de novos utilizadores
  • Dia #9 - Form Validation

    Dia #9 - Form Validation
    Aplicação de form validation aos forms desenvolvidos (login & registo)
    Desenvolvimento de mutators e acessores
    Desenvolvimento de funcionalidades para aumentar UX como session saver e timeout flash
    Frontent de botão de Logout
  • Dia #10 - Middleware

    Dia #10 - Middleware
    Estudo e aplicação de middleware para controlar acessos
    Sistemas de registo, login, e funcionalidade de logout funcionais
    Ajuste de UI
  • Dia #13 - Aplicação de requisito: Tipos de utilizadores

    Dia #13 - Aplicação de requisito: Tipos de utilizadores
    Modelação de base de dados, migrations e seeders com o intuito de prever 3 tipos de utilizadores: PenTesters, Managers e Admins.
    Ajuste de UI
  • Dia #14 - Dashboard & Menu

    Dia #14 - Dashboard & Menu
    Desenvolvimento de Dashboard e Menu em conformidade com fase B1
    Alteração a middleware para direcionar utilizadores não autenticados para menu de login
    Menu dinamico em conformidade com grau de previlégio de utilizador
  • Dia #16 - Status de utilizador

    Dia #16 - Status de utilizador
    Adicionados novos campos na base de dados para monitorizar utilizador.
    Role: Qual a sua função ?
    Ativo: Utilizador está bloqueado por admin?
    Password_reset: Flag para obrigar a alterar password
    Inicio de user table
  • Dia #17 - User management

    Dia #17 - User management
    Melhoramento da tabela de utilizadores
    Adição de botão DELETE
    Middleware para gerir acessos exclusivos a admin
    Middleware para gerir acessos exclusivos a managers
    Redirecionar para 403 caso seja utilizador basico a tentar acessar áreas de admin/manager
    Inicio de Push notifications
  • Dia #20 - Password Reset

    Desenvolvimento de sistema de password reset através de tokens enviados para e-mail de utilizador (mailtrap.io).
    Alterações estruturais a pedido de Eng. Rui Carreira.
  • Dia #23 - Password Reset ✅

    Dia #23 - Password Reset ✅
    Finalização de password reset após algumas dificuldades devido a funções nativas de Laravel que formatavam dados de forma incorrecta.
    Ajustes de UI
    Inicio de componente "modal button" para adicionar utilizadores
  • Dia #28 - Admin cria novo utilizador

    Dia #28 - Admin cria novo utilizador
    Alterações backend e frontend para garantir que admin consegue adicionar novos utilizadores
    Nova flashmessage para caso de erro
    Nova validações frontend e backend
  • Dia #29 - Alterar, Bloquear e Editar

    Dia #29 - Alterar, Bloquear e Editar
    Desenvolvida capacidade de bloquear utilizador
    Possibilidade de admin editar perfil de utilizador
    Corrigidas vulnerabilidades de segurança (informação que email estava ou não registado na app)
    UI para sinalizar utilizadores bloqueados
  • Dia #31 - User profile

    Dia #31 - User profile
    Inicio de perfil de utilizador
    Breadcrumbs
    Paginação em nas listas
    Update de UI
  • Period: to

    Fase 2 - Client Management

    Com os progressos da fase 1 várias features foram aplicadas aqui, com o aumenta da complexidade e restrições algumas features desta fase foram implementadas na anterior.
  • Segundo mês, dia #4 - Continuação de User profile

    Trabalho de FE e BE para upload de foto de utilizador
    Script de para preview de foto antes de registar
  • Dia #5 - Restrição de ações

    Dia #5 - Restrição de ações
    Adicionadas algumas restrições de backend como:
    - Delete / block de admin apenas é possível se existir um ou mais admins sem imposições.
    - Force password reset não permite utilizador progredir sem alterar para uma password diferente da anterior
  • Dia #12 - Features

    Feature para prevenir admin editar outro sem haver pelo menos 2 admins ativos
    Feature de primeiro login utilizador ser obrigado a alterar palavra-chave
    Possibilidade de escalar permissões na criação de utilizador
  • Dia #17 - STAR UML

    Dia #17 - STAR UML
    Desenvolvimento de base de dados em UML para melhor entendimento e desenvolvimento de produto final.
  • Dia #18 - Várias features

    Sortable table para organizar por ordem alfabética
    Action buttons para admin e managers
    Linkable Breadcrumbs
    Modal para adicionar clientes
  • Dia #19 - Restrições de inputs

    Verificação e alteração da base de dados para restringir inputs como max chars, chars em campos de contato telefónico, etc...
  • Dia #26 - Tabela de contatos e AJAX

    Dia #26 - Tabela de contatos e AJAX
    Criada infraestrutura para uma tabela de contatos pertencentes a um cliente.
    Inicio de desenvolvimento de tabela AJAX para adicionar, editar e remover contatos de forma assincrona.
  • Mes #3, Dia #3 - Extração de add contact para componente

    Mes #3, Dia #3 - Extração de add contact para componente
    Continuo melhoramento da tabela contacts
    Desenvolvimento de add contact
  • Dia #11 - Pequenas features

    Quando falha validação, modal volta a abrir.
    Melhoramento de UI
    Melhorada tabela de clientes
    Mensagens de notificação na alteração, adição e remoção de contacto
  • Dia #16 - Alteração de perfil de cliente

    Dia #16 - Alteração de perfil de cliente
    Implementação de 4 dropdown menus:
    Contatos
    Alterar perfil
    Status
    Assessements
  • Dia #18 - Validação em AJAX

    Script a prever todo o tipo de validação de dados necessária para a tabela de contatos.
    ** Verificar se é email válido
    Verificar se é numero válido
    Verifica se não contem caracteres inválidos em todos os campos
    Verificar se não existem keywords no input, evitando assim OR loads entre outros riscos**
  • FIM - Hosting e relatório

    FIM - Hosting e relatório
    Início de relatório
    Início de documentação
    Tentativa de hosting em:
    - FreeInfinity ❌
    - 00webhosting ❌
    - Fly.io ❌
    - Railway ❌

    - Google Cloud App Engine