Skip to content

luizeh/ProMaxHub

Repository files navigation

ProMaxHub

Rede social moderna com feed, perfis, comentários, curtidas, bookmarks e temas visuais.

Node.js Express SQLite License


Sumário


Visão geral

ProMaxHub é uma aplicação web full-stack de rede social. O backend é uma API REST em Node.js/Express com banco SQLite. O frontend é uma SPA (Single Page Application) em HTML, CSS e JavaScript puro, servida diretamente pelo servidor.


Stack

Camada Tecnologia
Servidor Node.js + Express
Banco SQLite via better-sqlite3
Auth JWT (jsonwebtoken) + bcrypt
Frontend HTML5 + CSS3 + JavaScript (Vanilla)
Email Nodemailer (opcional, para verificação)

Pré-requisitos


Como rodar localmente

1. Clone o repositório

git clone https://github.com/seu-usuario/promaxhub.git
cd promaxhub

2. Instale as dependências

npm install

3. Configure as variáveis de ambiente

Copie o arquivo de exemplo e preencha os valores:

# Windows
copy .env.example .env

# macOS / Linux
cp .env.example .env

Abra o arquivo .env e defina pelo menos o JWT_SECRET com uma string aleatória longa. As configurações de SMTP são opcionais — sem elas a verificação de email fica desativada, mas o app funciona normalmente.

4. Inicie o servidor

# Modo produção
npm start

# Modo desenvolvimento (reinicia automaticamente ao salvar)
npm run dev

5. Acesse no navegador

http://localhost:3000

O banco de dados SQLite (server/promaxhub.db) é criado automaticamente na primeira execução. Não é necessário nenhum setup adicional.


Variáveis de ambiente

Variável Obrigatório Descrição
PORT Não Porta do servidor (padrão: 3000)
JWT_SECRET Sim Segredo para assinar tokens JWT
JWT_EXPIRES_IN Não Expiração do token (padrão: 7d)
SMTP_HOST Não Host SMTP para envio de emails
SMTP_PORT Não Porta SMTP (padrão: 587)
SMTP_USER Não Usuário SMTP
SMTP_PASS Não Senha ou app password SMTP
SMTP_FROM Não Remetente exibido nos emails
APP_URL Não URL pública do app (usado nos links de verificação)

Aviso de segurança: nunca commite o arquivo .env com credenciais reais. Ele já está no .gitignore.


Estrutura do projeto

promaxhub/
├── public/                 # Frontend servido pelo Express
│   ├── index.html
│   ├── images/
│   ├── scripts/
│   │   ├── api.js          # Camada de comunicação com a API
│   │   ├── app.js          # Roteamento SPA e inicialização
│   │   ├── auth.js         # Login, cadastro, setup de perfil
│   │   ├── feed.js         # Feed, posts, curtidas, comentários
│   │   ├── profile.js      # Visualização de perfil
│   │   ├── saved.js        # Posts salvos (bookmarks)
│   │   ├── settings.js     # Configurações e temas
│   │   └── toast.js        # Notificações toast
│   └── styles/             # Folhas de estilo CSS
│
├── server/
│   ├── server.js           # Entry point do Express
│   ├── database.js         # Conexão SQLite e criação das tabelas
│   ├── middleware/
│   │   └── auth.js         # Middleware de autenticação JWT
│   ├── routes/
│   │   ├── auth.js         # /api/auth — register, login, verify
│   │   ├── posts.js        # /api/posts — feed, criar, curtir, comentar
│   │   └── users.js        # /api/users — perfil, settings, conta
│   └── uploads/            # Pasta de uploads (vazia no repositório)
│
├── .env.example            # Modelo de variáveis de ambiente
├── package.json
└── README.md

Scripts disponíveis

Comando Descrição
npm start Inicia o servidor em modo produção
npm run dev Inicia com --watch (reinicia ao salvar arquivos)

Funcionalidades

  • Cadastro e login com JWT
  • Verificação de email (opcional, via SMTP)
  • Setup de perfil com avatar, bio e interesses
  • Feed de posts com texto e imagem
  • Curtir e descurtir posts
  • Comentários com exclusão
  • Salvar posts (bookmarks)
  • Página de perfil com estatísticas
  • Troca de senha
  • Temas visuais: Dark, Light, Cyberpunk, Midnight
  • Modo compacto e ajuste de fonte
  • Exclusão de conta
  • Banco SQLite local — zero configuração de banco externo

Licença

MIT

About

Um projeto que inclui um website com um localstorage feito em javascript, e um agente de IA chamado "PRO MAX" que criei com a extensao Github Copilot do Vscode.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors