Executando verificação de segurança...
4

—–௹ Criei uma plataforma de cursos do zero como projeto pessoal ௹—–

- Eu sei que SaaS já é um tema que muitos já estão enjoados de ver, mas espero que isso incentive alguém. -


Um SaaS no qual venho trabalhando há mais de 7 meses. Só pra contextualizar, eu nunca trabalhei como programador. Tudo que sei veio de colocar na prática as ideias que surgem na minha cabeça.


A plataforma já conta com:

  • Página de Administração: dá pra gerenciar o banco de dados, os cursos e os alunos de forma simples.
  • Página Vitrine: mostra as trilhas de estudo, os cursos que a pessoa já tem e os que ainda estão à venda.
  • Página de Aulas: onde dá pra assistir as aulas e ver o que já está disponível.
  • Página de Perfil, Login e Registro: já está funcionando, mas ainda vou melhorar.
  • Tema Dark/Light: tem opção de modo escuro ou claro.
  • Card de Anotações: um espaço pro aluno anotar curiosidades ou algo que achar importante durante as aulas.

Quase tudo já está automatizado e pode ser controlado pela página de administração. Minha ideia é disponibilizar isso para algumas pessoas específicas no futuro.

Esse projeto tem sido um baita aprendizado pra mim e uma forma de explorar ideias, mesmo sem experiência profissional na área. 😊


- Lembrando: não compre nada na plataforma, pois ainda estou trabalhando na segurança e nas chaves de acesso às trilhas (e também não utilize sua senha verdadeira; está criptografada, mas ainda assim não é segura o bastante). - - Banco de dados é lento mesmo! É um compartilhada -

https://vortex01.netlify.app/
☝️ De uma olhada ☝️

Carregando publicação patrocinada...
3

Entendo que seja apenas uma brincadeira, mas existem alguns problemas gravissimos em sua plataforma:

  • Ao entrar na pagina de login, e navegar pelos menus de topo, em ao menos duas vezes seu software me mostrou algumas funcionalidades da area restrita mesmo sem logar.

  • Voce usa elementos de iteração com Browser para receber inputs para o js, como o Prompt, por exemplo. Jamais utilize esse tipo de elemento em aplicações reais.

  • Parece que você não usou JWT ou algo semelhante para proteger as requisições da sua API (Embora, não analisei, só olhei por cima)

Eis a importancia de um bom projeto antes do desenvolvimento, envitando, ou dificultando, que dados do cliente sejam expostos indevidademente. Hoje, em tempos de LGPD sendo fiscalizada, um vazamento de dados por render uma multa de milhões de reais para a empresa ou até o responsável pelo sistema.

1

MUITO obrigado pelas dicas! Welovetech 🤌
Sobre navegar pelo menu de topo sem logar, estou trabalhando nisso hoje. Pensei ter conseguido resolver, vou testar melhor aqui.

E os inputs, eu ainda vou criar um popup para digitar, só estava focando em criar as novas páginas.

JWT eu não sei o que é! Ainda bem que me deu esse toque. Eu não sei muito sobre back-end e estou tentando tornar o software mais seguro, como disse na publicação, para que as pessoas que testarem a plataforma não colocarem suas senhas reais.

4

Boa, o importante é ir ajustando.

Quando você trabalha com APIs que fornecem dados publicos, o ideal é trabalhar com autenticação. JWT é umas das formas pelas quais consegue adicionar uma camada de proteção em sua api, permitindo que o cliente só tenha acesso a ela após se autenticar pelo endpoint de login, obter o token criptografado e consumir os endpoints protegidos utilizando o mesmo na Header das requisições.

É simples de usar.

Outras situações importantes é proteger sua api de injection, e isso pode ser feito, inicialmente, por prepared statements, principalmente se estiver usando SQL Raw. E isso seria só o começo, pois existem muitas outras técnicas importantes quando a segurança de dados que devm ser observadas.

2
2

Com a onda de cursinhos de 6 meses (e promessa de 10k de salario...) observamos que praticamente todo curseiro tem um, e isso fica explicito quando vemos que todos eles foram feitos utilizando o sQLite. Esse tipo de banco não foi feito para ser utilizado com sistemas web que tendem a lidar com altas requisições e precisa de um desempenho adequado.

1
2
1
1
1
1
3

No front

Vite
React
React-router: Para criar as navegações entre rotas
SASS
Socket.io: Paro comunicação com o back-end em tempo real (otimo para criar chat)

No back

bcrypt: Para criptografar as senhas
Node / nodemon
express
mongoose / mongoDB: Banco de dados