DEV Community

Igor Oliveira
Igor Oliveira

Posted on

Criando uma plataforma do 0 - Dia 1

Aqui vou documentar todo o processo de criação de um sistema de ponta a ponta, desde o levantamento inicial, passando pela escolha de tecnologias, desenvolvimento do BackEnd, FrontEnd e deploy da aplicação.

Nesse primeiro dia, eu criei um mapa mental do objetivo e o fluxo básico da aplicação, descrevendo as tecnologias que vão ser usadas durante o desenvolvimento. Abaixo tem uma imagem desse mapa

Mapa

O objetivo é simples, eu quero um lugar onde eu possa colocar o código de uma ação que comprei, a quantidade, o valor pago por cada ação e que caso queira fazer o upload da nota de corretagem, também seja possível. De começo é para ser algo simples e com o passar do tempo e conforme eu for estudando novas coisas, quero ir melhorando esse produto.

A escolha de tecnologias foi com base em gosto, eu gosto muito de PHP e principalmente do Laravel, banco de dados o escolhido foi PostgreSQL, pois queria tentar algo novo já que estou acostumado a usar MySQL como banco de dados e a AWS vai ser para usar o S3 para guardar as notas de corretagem. O FrontEnd ainda não decidi se vou usar algo novo ou algo que já estou acostumado como um NextJS da vida, mas isso vai ser decisão para ser tomada mais para frente.

Dia 1 - parte 2

Aproveitando o embalo, dei o start no projeto, comecei criando um projeto Laravel na minha máquina, usei o próprio exemplo do site para gerar o projeto. Também entrei no Hub do Docker para poder criar um container com o banco de dados Postgres.
Com o projeto gerado e o banco de dados de pé, eu fiz os seguintes passos:

  • Primeiro fui no meu arquivo .env e mudei as configurações para acessar o banco de dados. Coloquei o driver do Postgres que é o pgsql, mudei a porta já que o Postgres usa a 5432 e mudei o usuário e senha para os valores que coloquei quando levantei o container
  • Depois no arquivo de migrate que o próprio Laravel gera para o modelo de User (que ele também já gera sozinho) eu fiz umas mudanças, primeiro eu mudei para a coluna ser um UUID e ser a chave primária da tabela, também acrescentei os campos first_name e last_name, retirei a verificação obrigatória de e-mail e o campo remember_token. Com isso já estava na forma como planejei inicialmente, aí foi só rodar o comando php artisan migrate e pronto, já tenho minha tabela pronta.
  • Precisei fazer umas alterações no meu Model User, a primeira coisa foi colocar uma Trait HasUuid para falar para o nosso modelo que vamos usar UUIDs, também adicionei os campos novos dentro do array $fillable e removi os campos que eu não vou utilizar.
  • E para finalizar o Laravel fornece uma Factory já pronta para o nosso usuário, só precisei remover alguns campos que eu não irei utilizar e adicionar os novos e depois disso no meu arquivo DatabaseSeeder, eu fiz o uso do nosso modelo para gerar usuários automaticamente e rodei um php artisan db:seed para persistir os novos usuários no banco de dados.

Conclusão

Acho que para um primeiro dia está bom, a próxima parte vai ser fazer o CRUD de usuários e estou animado para continuar com o projeto!

Top comments (0)