Compare commits

..

1 Commits

Author SHA1 Message Date
c4 bc73f3dcd5 Initial commit 2026-06-24 22:44:29 +00:00
5 changed files with 2 additions and 106 deletions
-5
View File
@@ -1,5 +0,0 @@
node_modules/
.next/
.env
*.log
-22
View File
@@ -1,22 +0,0 @@
FROM node:20-alpine
WORKDIR /app
# Install dependencies
COPY package*.json ./
RUN npm ci
# Copy source code
COPY . .
# Build the application
RUN npm run build
# Set environment to production
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
# Expose port
EXPOSE 3000
# Start the application
CMD ["npm", "start"]
+2 -74
View File
@@ -1,75 +1,3 @@
# Expedição Gold - SaaS de Investimento em Expedições
# expedicao-gold
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
```bash
# Clone o repositório (ou copie os arquivos)
git clone <SEU_REPOSITORIO>
cd expedicao-gold
# Instale dependências
npm install
```
## Executando em desenvolvimento
```bash
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.
SaaS de investimento em expedições
Submodule app deleted from 1bf21f0754
-4
View File
@@ -1,4 +0,0 @@
// Shared in-memory store for demo purposes
let users = [];
module.exports = { users };