Compare commits
1 Commits
main
..
bc73f3dcd5
| Author | SHA1 | Date | |
|---|---|---|---|
| bc73f3dcd5 |
@@ -1,5 +0,0 @@
|
|||||||
node_modules/
|
|
||||||
|
|
||||||
.next/
|
|
||||||
.env
|
|
||||||
*.log
|
|
||||||
-22
@@ -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"]
|
|
||||||
@@ -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)**.
|
SaaS de investimento em expedições
|
||||||
|
|
||||||
## 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.
|
|
||||||
-1
Submodule app deleted from 1bf21f0754
@@ -1,4 +0,0 @@
|
|||||||
// Shared in-memory store for demo purposes
|
|
||||||
let users = [];
|
|
||||||
|
|
||||||
module.exports = { users };
|
|
||||||
Reference in New Issue
Block a user