Expedição Gold - SaaS de Investimento em Expedições

Projeto demonstrativo de um SaaS simples construído com Next.js (React + Node).

Funcionalidades

  • Página inicial (landing) com links para entrar e cadastrar-se.
  • Página de login (/login) autenticação via API mock (/api/login).
  • Página de cadastro (/signup) criação de conta via API mock (/api/signup).
  • Após login, redirecionamento para /dashboard (página "Em construção").
  • Logout remove o token do localStorage e redireciona para login.
  • API de login e cadastro salva usuários em memória (para demonstração) e retorna um token falsificado.

Pré-requisitos

  • Node.js (v18 ou superior)
  • npm ou yarn

Instalação

# Clone o repositório (ou copie os arquivos)
git clone <SEU_REPOSITORIO>
cd expedicao-gold

# Instale dependências
npm install

Executando em desenvolvimento

npm run dev

A aplicação estará disponível em http://localhost:3000.

Estrutura de pastas

expedicao-gold/
├─ pages/
│  ├─ _app.js
│  ├─ index.js          # landing page
│  ├─ login.js
│  ├─ signup.js
│  ├─ dashboard.js      # área logada (em construção)
│  └─ api/
│     ├─ login.js       # rota POST /api/login
│     └─ signup.js      # rota POST /api/signup
├─ styles/
│  └─ globals.css
├─ package.json
└─ README.md

Como funciona a autenticação (mock)

  1. Na página de login, ao submeter o formulário, o frontend faz uma POST para /api/login com { username, password }.
  2. A rota /api/login verifica se o usuário existe no array em memória (users) e compara a senha (usando bcryptjs).
  3. Se válido, retorna um objeto { token, user }. O token é salvo em localStorage.
  4. O middleware em dashboard.js verifica a presença do token; se ausente, redireciona para /login.
  5. Logout remove o token e redireciona para a página inicial.

Observação: Este é apenas um protótipo. Para produção, substitua o armazenamento em memória por um banco de dados real, use cookies seguros ou JWT com expiração, e adicione validação e proteção de rotas no servidor.

Personalização

  • Alterar mensagens e estilos nos arquivos de página.
  • Estender a API para buscar/salvar usuários em um banco de dados (ex: PostgreSQL, MongoDB).
  • Implementar rotas protegidas com middleware ou usando uma biblioteca como next-auth.

Licença

MIT sinta-se livre para usar, modificar e distribuir.

S
Description
SaaS de investimento em expedições
Readme 100 MiB
Languages
Dockerfile 78.3%
JavaScript 21.7%