Meu primeiro projeto foi um plágio!
Sim, eu confesso, meu primeiro projeto foi um plágio, mas calma...
Estou aprendendo a programar em PHP, e como aprendo na prática, me veio a ideia de me testar e criar o meu primeiro projeto, mas enfrentei algo que enfrento constante, A FALTA DE IDEIAS! Porém, quando olhei para os meus sites aberto em meu navegador eu vi um site que não seria uma má ideia de criar um "clone" do mesmo, esse site é o tabnews.com.br.
Subi o código em meu github, e peço que, se algum programador (de preferência back-end) tiver tempo livre para avaliar o meu código, e apontar formas de melhorar, dar uma nota, agradecia.
Repositório: https://github.com/silvaleal/myopost-php
Manjo zero de php.
Mas pelo que vi do código, acho que dá pra fazer umas SQL Injection. Isso é uma vunerabilidade grave.
O que quero dizer é o seguinte, tu tem a query (peguei esse de exemplo, mas c tem várias nesse modelo): SELECT * FROM postagens WHERE author_id = $userID ORDER BY post_date DESC;
Se você não tiver cuidado com o tratamento do dado $userID, o teu usuário pode mandar uma string ao invés de um valor numérico. Aí vamo supor que ele manda '' or 1.
A busca vai ficar assim: SELECT * FROM postagens WHERE author_id = '' or 1 ORDER BY post_date DESC; E o resultado dessa busca são todas as postagens independente do usuário.
Eu ia até testar, porque pode ser que o tratamento exista, só que não identifiquei, mas não achei nenhum link publicado do seu site.
Essa news dá várias ideias de projetos gringos que geram grana de vdd, dá uma olhada: https://insightsdigitais.substack.com/
"Nada se cria, tudo se copia e aperfeiçoa"!
Meio que normal todo mundo começa assim, não se culpe, o próprio TabNews é uma versão com menos recursos do HackerNews
O próprio curso do Felipe Deschamps é um "plágio" do TabNews, e ele não parece nem se incomodar se fizessem um TabNews de sei lá, culinária. O projeto é open source, afinal
"Nosso projeto"☭ No começo o que importa é por a mão na massa, melhor fazer um projeto copiando de alguém do que não fazer projeto nenhum.
Copiar acho que é uma das melhores formas de aprender, acredito que você está no caminho certo.
Quando algum iniciante está sem ideias de projetos, eu normalmente digo que uma das formas de ter ideias para sistemas é pesquisar por planilhas prontas de Excel, tem um pessoal que faz muita coisa interessante com Excel e certamente poderiam ser bons sistemas. Esse site até vende planilhas, então se alguém compra uma planilha, poderia muito bem pagar por um sistema que faça a mesma coisa de forma melhorada.
Por mais que seja contra intuitivo e até parecer meio errado... na minha opinião, o melhor projeto para se fazer, é aquele projeto que já existe (Ou com proposta similar). Isso serve tanto para projetos pessoais, como para projetos profissionais.
Isso se deve a diversos fatores que incluem:
- Nunca vai ser a mesma coisa, sempre vai ter um plus extra;
- Mais fácil divulgação e trafêgo orgânico;
- O mercado é muito grande e existe públicos que pode não gostar do produto XYZ e curtir muito o seu (Mesmo que tenham propostas parecidas);
- etc
Parabéns pela iniciativa! Uma das maiores dificuldades é justamente decidir "O que eu vou fazer?" e muitas vezes perdemos tanto tempo pensando nisso que, se simplesmente tivéssemos começado algo, já estaria pronto.
Trabalho com PHP há um bom tempo, mas não utilizo PHP puro porque o tempo não permite. No ambiente de trabalho, provavelmente você utilizará frameworks (Laravel, no meu caso).
Novamente, parabéns pelo projeto, pois com certeza você aprendeu muito ao optar por não utilizar frameworks. Entretanto, ao analisar o código, achei um pouco complicado de entender e manter. Hoje o projeto é pequeno, então ainda é possível compreendê-lo depois de algum tempo. Porém, caso ele comece a crescer, pode perder o controle e qualquer alteração se tornar um pesadelo.
Minha sugestão é: Continue a fazer "plágios" para estudar. Tente aprender e aplicar o máximo possível de boas práticas e padrões de projeto.
Grande abraço e boa sorte!
Até hoje tenho esse mesmo problema que mencionou a FALTA DE IDEIAS. Hoje trabalho com PHP e com toda certeza fazer "clones" ajudam bastante nos estudos, principalmente se for algo que você goste ou que resolva um problema do dia a dia.
Deixando minha contribuição. Verifiquei que o seu método registerUser()
não está fazendo o hash da senha pesquise na doc por password_hash e password_verify.
Bons Estudos.
Parabéns pela iniciativa. Plágio em aprendizado é um ótimo caminho.Show!