O que usamos no projeto:
- Back-End: Go (Golang) — Escolhido por sua eficiência na construção de APIs RESTful.
- Front-End: HTML e CSS usados para fazer os layouts modernos (CSS Grid/Flexbox) e JavaScript.
- Estilo e Design: Conceito estético Vaporwave com referências a interfaces desktop clássicas e animações.
- Versionamento: Git e GitHub para organização do código e integração entre a nossa equipe.
Ter instalado em sua máquina:
Baixe todas as dependências automaticamente:
go mod downloadNo projeto estamos usando o MongoDB Atlas.
- Veja se seu arquivo
.envestá configurad com a sua Connection String:
MONGO_URI=mongodb+srv://<usuario>:<senha>@cluster0.lozapyk.mongodb.net/Após subir o banco, inicie o servido:
go run .- Arquitetura: Separei os arquivos do projeto entre Front-End e Back-End.
- Organização do Front-End: Dividi a estrutura em pastas específicas para
js,cssepages. - Organização do Back-End: Fiz a pasta com os arquivos Go do Back-End.
- Autenticação: Desenvolvi as telas e a lógica de Login e Cadastro.
- Back-End: Fiz a API de cadastro utilizando Go (Golang).
- correção de bugs no grid de fundo da pagina do login
- efeito de hover nos botões entrar e logins sociais
- correção de bugs no js no fade das estrelas
- Docker: Colquei nosso banco de dados no Docker.
- BackEnd: Resolvi o problema de login.
- FrontEnd: Atualizei para quando fizer login a pessoa ir para a homepage, o suporta tbm ir para a home page e depos configurei o que faltava para o carrossel.
- Adicionar: Tem que colocar o light mode no Configuração.
- Modal: feito seguindo o padrão estético do site.
- JS e CSS do Modal: feito também. o javascript seria back-end nesse caso...
- Separação da página de suporte
- teste de banco de dados com node (so pra ver ne)
- Separação da loja
- Separação da biblioteca (com todas as linguagens no msm arquivo)
- separação das paginas homepage, perfil e carrossel
- mudança de identação e comentarios nos arquivos separados
- atualização de redirecionamentos nos arquivos da loja e da biblioteca e do carrossel
- adição de arquivo root contendo as funçoes globais de css (que serão usadas em grande parte das pags confiram o arquivo antes de fzr qlqr css!!!)
- ps louie deleta a função goto do css da pag de suporte, nao vai precisar, btw nao sei se arrumei os redirecionamentos da sua pag da uma olhada la
- Trocas: Tirei o banco de dados que estava no MySQL via Docker e coloquei no mongoDB Atlas
- fix homepage link ficando vermelho (fixed).
- atualização pagina carrossel com rotatividade scroll e botões ps: bahia pfv faz um tutorial de como abrir o BD mais intuitivo pfv to mematano aq
- Responsividade: Adicionada responsividade mobile na tela de login.
- Backend: Criação dos novos arquivos
BackCadastro.goeBackUpdatePassword.go. O arquivoBackUpdatePassword.gofoi implementado para gerenciar a alteração de senha na tela deConfigurações. Também foi adicionada o Hash nas senhas. - Frontend: Ajustes no design do cadastro, configurações e scripts para melhorar a estética e a responsividade. Coloquei alertas via Toast.
- Correções & Refatorações: Modificações e melhorias nos arquivos
BackLogin.go,Main.goeStruct.go.
- Autenticação JWT: Implementado sistema de autenticação via JWT (JSON Web Tokens) no fluxo de login.
- Adicionada a biblioteca
github.com/golang-jwt/v5como dependência no projeto. - Criada a função
gerarTokenJWT()noBackLogin.go, que gera um token assinado com o algoritmo HS256, contendo o email do usuário e tempo de expiração de 24 horas no payload (claims). - O
scriptLogin.jspega o token e salva nolocalStorage(Seria mais seguro colocar em um Cookie no BackEnd, mas no LocalStorage é mais, o exemplo do video usava no LocalStorage).
- Adicionada a biblioteca
- Autenticação JWT (Frontend): Adicionei a função
tokenValido()noscriptConfiguracoes.jsque decodifica o payload do JWT e verifica se o campoexpainda não expirou. Agora a página de configurações bloqueia o acesso se o token estiver ausente, inválido ou expirado, limpando olocalStoragee redirecionando para o login. - Sistema de Temas (Backend): Adicionei o campo
Themena structUsersnoStruct.go. NoBackCadastro.go, todo novo usuário é cadastrado agora com o tema padrão"neon-classic". OBackLogin.gopassou a retornar othemedo usuário na resposta JSON do login. - Endpoint
/UpdateTheme: Criei o endpointPOST /UpdateThemeque recebe{ email, theme }e atualiza o campothemeno MongoDB com$set(sem alterar outros campos do documento). - Endpoint
/Me: Criei o endpoint para validar o JWT pelo headerAuthorization: Bearer <token>, extrair o email das claims e retornar{ email, theme }do banco. Serve para o frontend buscar os dados atualizados do usuário sem precisar fazer login novamente. Adicionei a verificação rigorosa do algoritmo de assinatura para evitar falsificação de tokens. - Refatoração do Backend: Criei o arquivo
BackConfiguracoes.gocom as funções de alterar senha e salvar o tema do usuário no BD. - Comentários: Adicionei comentários explicativos no
BackMe.goeBackConfiguracoes.go. - Frontend (Configurações): A função
salvarConfiguracoes()agora chamaPOST /UpdateThemepara persistir o tema no MongoDB ao clicar em salvar, mantendo também o salvamento nolocalStorage.
- padronizei as fontes e os tamanhos nas páginas utilizando o stylesheet de tema pra base para utilizar a padronização do arquivo, so colocar txt-title dentro da classe;
- arrumei a barra de pesquisa da loja e agora está mais intuitiva;
- arrumei o problema das janelas fechando;
- adicionei janelas arrastaveis utilizando o gerenciadorJanelas.js linkado ao html e que ao fechar a janela, ela fica minimizada.
- Struct
Users: Adicionei os camposNicknameeBirthDatenaStruct.go. Usei a tagomitemptynos dois campos para só serem usados quando eu chamar eles. - Endpoint
/Me: Atualizei oBackMe.gopara retornarnicknameebirthdatejunto comemailetheme. - Arquivo
BackPerfil.go: Criei o arquivo com a estrutura inicial do endpointPOST /UpdateProfile— por enquanto só com CORS e validação de método. A lógica de atualização de nickname e data de nascimento será implementada quando o frontend da página de perfil estiver pronto. - Rota no
Main.go: Coloquei a rota/UpdateProfile.
- Comecei a refazer a aba de perfil, com inspirações no layout de customização de perfil do discord e steam, com também um pouco de inspiração no layout da loja do brawl stars
- Fiz as bases da pagina, só precisando agora desenvolver os containers individualmente
- Fiz um menu hamburguer com animações
- Ainda falta integrar essas alterações com o projeto, já que agora a pagina perfil está em uma nova pasta
- Mudei o nome do stylesheet que padroniza as fontes e seus respectivos tamanhos para "Fontes";
- Commitei um teste de biblioteca que contém espaços para integrar dados de BD.
- Coloquei um Captcha usando a bibliotecas
dchest/captchapara as pessoas não encherem nosso site com informações inúeis.
- estou colocando detalhes do que fiz em duas semanas pros temas claro e fotossensível só agora
- criei o theme.css: css que carrega as cores de temas distintos (claro e fotossensível) em váriaveis diversas. esclarecimento: o root.css é o css que carrega apenas as cores das variáveis no tema padrão; isso é, do tema dark synthwave, o escuro padrão. ele pode coexistir com o theme.css e theme.js (já que não existe root.js)
- implementei nos HTMLs o <script src="../js/theme.js"></script> e o para o theme rodar.
- Reativadas as variáveis --bg-main, --bg-secondary, --card-bg, --text, --text-primary, --text-secondary, --border-color e --shadow-color, que estavam comentadas e por isso não tinham valor padrão no tema escuro: causa raiz do theme.css não funcionar corretamente
- Adicionadas as fontes --vt-font (VT323) e --orb-font (Orbitron), usadas em outras páginas do site mas ausentes do root.css