97 lines
3 KiB
Markdown
97 lines
3 KiB
Markdown
# SaveInMed Frontend
|
||
|
||

|
||

|
||

|
||
|
||
Interface web da plataforma **SaveInMed**. O sistema permite que farmácias anunciem
|
||
ou comprem medicamentos próximos ao vencimento em um ambiente B2B.
|
||
|
||
## Índice
|
||
- [Visão Geral](#visão-geral)
|
||
- [Tecnologias](#tecnologias)
|
||
- [Instalação](#instalação)
|
||
- [Variáveis de Ambiente](#variáveis-de-ambiente)
|
||
- [Scripts npm](#scripts-npm)
|
||
- [Estrutura do Projeto](#estrutura-do-projeto)
|
||
- [Deploy](#deploy)
|
||
- [Contribuição](#contribuição)
|
||
- [Licença](#licença)
|
||
|
||
## Visão Geral
|
||
Aplicação **Next.js** (App Router) que serve como interface web da plataforma
|
||
B2B SaveInMed, permitindo que farmácias anunciem e comprem medicamentos
|
||
próximos ao vencimento. Todas as informações (empresas, produtos, usuários,
|
||
faturas etc.) são armazenadas no **Appwrite** e acessadas por meio de rotas de
|
||
API do próprio Next.js, garantindo que a API Key permaneça somente no servidor.
|
||
|
||
## Tecnologias
|
||
- **Next.js** 15.3.4
|
||
- **React** 19
|
||
- **Tailwind CSS** 4
|
||
- **TypeScript**
|
||
- **ESLint**
|
||
- **Appwrite** / **node-appwrite**
|
||
- **Heroicons**
|
||
|
||
## Instalação
|
||
### Pré-requisitos
|
||
- Node.js 18+
|
||
- npm 9+ (ou yarn/pnpm)
|
||
|
||
### Passos
|
||
1. Instale as dependências:
|
||
```bash
|
||
npm install
|
||
```
|
||
2. Copie `.env.example` para `.env` e preencha suas chaves.
|
||
3. Inicie o modo desenvolvimento:
|
||
```bash
|
||
npm run dev
|
||
```
|
||
4. Para gerar o build de produção:
|
||
```bash
|
||
npm run build
|
||
npm start
|
||
```
|
||
|
||
## Variáveis de Ambiente
|
||
As principais variáveis estão listadas em `.env.example`:
|
||
|
||
| Chave | Descrição |
|
||
| ----- | ---------- |
|
||
| `NEXT_PUBLIC_APPWRITE_ENDPOINT` | URL do seu servidor Appwrite |
|
||
| `NEXT_PUBLIC_APPWRITE_PROJECT_ID` | ID do projeto Appwrite |
|
||
| `NEXT_PUBLIC_APPWRITE_DATABASE_ID` | ID do banco de dados |
|
||
| `NEXT_PUBLIC_APPWRITE_COLLECTION_*` | IDs das coleções (endereços, produtos etc.) |
|
||
| `APPWRITE_API_KEY` | API Key utilizada nas rotas de API |
|
||
| `NEXT_PUBLIC_APPWRITE_FUNCTION_CAJU_ID` | (opcional) ID da function *caju* |
|
||
|
||
## Scripts npm
|
||
- `dev` – servidor de desenvolvimento
|
||
- `build` – gera o build
|
||
- `start` – executa o build
|
||
- `lint` – roda o ESLint
|
||
|
||
## Estrutura do Projeto
|
||
A árvore completa está documentada em
|
||
[docs/estrutura.md](docs/estrutura.md). Os diretórios principais são
|
||
`src/app`, `src/components`, `src/hooks`, `src/services` e `src/lib`.
|
||
|
||
## Deploy
|
||
1. Gere o build de produção:
|
||
```bash
|
||
npm run build
|
||
```
|
||
2. Publique o conteúdo da pasta `.next` e o `package.json` no provedor de
|
||
hospedagem (Vercel, Netlify etc.).
|
||
3. Defina todas as variáveis de ambiente no painel do provedor.
|
||
4. Execute `npm start` no ambiente de produção.
|
||
|
||
## Contribuição
|
||
Sinta-se à vontade para abrir issues ou pull requests.
|
||
|
||
## Licença
|
||
Distribuído sob a licença MIT. Consulte o arquivo `LICENSE` para mais detalhes.
|
||
|
||
Última atualização: 2025-07-15
|