Skip to content

Commit 79504c1

Browse files
committed
docs: polish README language and architecture section
1 parent 1d7ce6b commit 79504c1

1 file changed

Lines changed: 63 additions & 57 deletions

File tree

README.md

Lines changed: 63 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@
33
![CI](https://github.com/JrValerio/Kenzie-Hub/actions/workflows/ci.yml/badge.svg)
44
![Kenzie Hub](./src/assets/KenzieHub.png)
55

6-
Aplicacao fullstack com frontend React (Vite) e API propria (Express + JWT + Prisma/Postgres), configurada por ambiente, CORS por allowlist e dominio validado/normalizado. O CI roda lint/build no frontend e testes de API com Supertest.
6+
Aplicação fullstack com frontend React (Vite) e API própria (Express + JWT + Prisma/Postgres), configurada por ambiente, CORS por allowlist e domínio validado/normalizado. O CI roda lint/build no frontend e testes de API com Supertest.
77

88
## Links Importantes
99

10-
- Aplicacao: https://kenzie-hub-seven-blue.vercel.app/
11-
- Codigo-fonte: https://github.com/JrValerio/Kenzie-Hub
10+
- Aplicação: https://kenzie-hub-seven-blue.vercel.app/
11+
- Código-fonte: https://github.com/JrValerio/Kenzie-Hub
1212

1313
## Quick Start
1414

1515
```bash
16-
# instalar dependencias do frontend (raiz)
16+
# instalar dependências do frontend (raiz)
1717
npm ci
1818

19-
# instalar dependencias da API
19+
# instalar dependências da API
2020
npm --prefix api ci
2121

2222
# rodar frontend + API juntos
@@ -38,52 +38,58 @@ npm --prefix api run test
3838

3939
## Funcionalidades
4040

41-
- Cadastro de usuario
41+
- Cadastro de usuário
4242
- Login e logout
43-
- Autologin com token
43+
- Persistência de sessão via JWT
4444
- Dashboard privada
4545
- CRUD de tecnologias
4646

4747
## Destaques
4848

49-
- Integracao de frontend React com API REST.
50-
- API incluida (Express + JWT + Prisma/Postgres) para rodar sem depender de endpoints externos.
51-
- Config segura via ambiente: `JWT_SECRET` obrigatorio em producao e CORS por allowlist (`FRONTEND_URL`).
49+
- Integração de frontend React com API REST.
50+
- API incluída (Express + JWT + Prisma/Postgres) para rodar sem depender de endpoints externos.
51+
- Configuração segura via ambiente: `JWT_SECRET` obrigatório em produção e CORS por allowlist (`FRONTEND_URL`).
5252

5353
## Estrutura
5454

55-
- `src/components`: componentes reutilizaveis
56-
- `src/pages`: paginas da aplicacao
55+
- `src/components`: componentes reutilizáveis
56+
- `src/pages`: páginas da aplicação
5757
- `src/providers`: contextos de estado
58-
- `src/routers`: rotas publicas e privadas
58+
- `src/routers`: rotas públicas e privadas
5959
- `src/services`: camada de API do frontend
6060
- `src/styles`: estilos (SCSS)
6161
- `api`: backend (Express + Prisma + PostgreSQL)
6262

6363
## Arquitetura
6464

6565
```text
66-
Frontend (Vercel / React)
67-
|
68-
v
69-
API (Railway / Express + JWT + Prisma)
70-
|
71-
v
72-
PostgreSQL (Railway)
66+
┌────────────────────────────┐
67+
│ Frontend (Vercel / React) │
68+
└──────────────┬─────────────┘
69+
70+
71+
┌────────────────────────────────────┐
72+
│ API (Railway / Express + JWT) │
73+
└──────────────┬─────────────────────┘
74+
75+
76+
┌────────────────────────────┐
77+
│ PostgreSQL (Railway) │
78+
└────────────────────────────┘
7379
```
7480

75-
## Configuracao (Frontend)
81+
## Configuração (Frontend)
7682

7783
O frontend usa `VITE_API_URL` para apontar para a API.
78-
Em desenvolvimento, se `VITE_API_URL` nao estiver definida, o fallback e `http://localhost:3333`.
84+
Em desenvolvimento, se `VITE_API_URL` não estiver definida, o fallback é `http://localhost:3333`.
7985

8086
1. Crie `.env` na raiz:
8187

8288
```bash
8389
VITE_API_URL=http://localhost:3333
8490
```
8591

86-
Voce tambem pode copiar de `.env.example`:
92+
Você também pode copiar de `.env.example`:
8793

8894
```bash
8995
cp .env.example .env
@@ -97,7 +103,7 @@ npm run dev:all
97103

98104
## API Local
99105

100-
A API local esta em `api/` e expoe:
106+
A API local está em `api/` e expõe:
101107

102108
- `POST /sessions`
103109
- `POST /users`
@@ -106,15 +112,15 @@ A API local esta em `api/` e expoe:
106112
- `PUT /users/techs/:techId`
107113
- `DELETE /users/techs/:techId`
108114

109-
Instalacao da API:
115+
Instalação da API:
110116

111117
```bash
112118
cd api
113119
npm install
114120
```
115121

116122
Configure `api/.env` com base em `api/.env.example`.
117-
Rode migrations antes de iniciar a API pela primeira vez:
123+
Rode migrações antes de iniciar a API pela primeira vez:
118124

119125
```bash
120126
cd api
@@ -124,23 +130,23 @@ npm run seed
124130

125131
## Deployment (Vercel + Railway)
126132

127-
Este projeto roda em producao com:
133+
Este projeto roda em produção com:
128134

129135
- Frontend: Vercel (React + Vite)
130136
- API: Railway (Express + JWT + Prisma)
131137
- Banco: Railway PostgreSQL
132138

133139
### Deploy da API no Railway (monorepo)
134140

135-
1. Crie um projeto no Railway e conecte este repositorio.
141+
1. Crie um projeto no Railway e conecte este repositório.
136142
2. Adicione um PostgreSQL no mesmo projeto.
137-
3. Configure o servico da API:
143+
3. Configure o serviço da API:
138144

139145
- Root Directory: `api`
140146
- Build Command: `npm install`
141147
- Start Command: `npm run start:prod`
142148

143-
4. Configure variaveis de ambiente no servico da API:
149+
4. Configure variáveis de ambiente no serviço da API:
144150

145151
```bash
146152
NODE_ENV=production
@@ -149,9 +155,9 @@ FRONTEND_URL=https://kenzie-hub-seven-blue.vercel.app
149155
DATABASE_URL=postgresql://...
150156
```
151157

152-
Em `NODE_ENV=production`, `FRONTEND_URL` e obrigatorio para CORS por allowlist.
158+
Em `NODE_ENV=production`, `FRONTEND_URL` é obrigatório para CORS por allowlist.
153159

154-
5. Apos o primeiro deploy, aplique as migrations:
160+
5. Após o primeiro deploy, aplique as migrações:
155161

156162
```bash
157163
npm run migrate:deploy
@@ -175,7 +181,7 @@ Healthcheck:
175181
VITE_API_URL=https://SUA-API.railway.app
176182
```
177183

178-
2. Rode um redeploy.
184+
2. Rode um novo deploy.
179185

180186
### Production URLs
181187

@@ -185,51 +191,51 @@ VITE_API_URL=https://SUA-API.railway.app
185191
### Security Notes
186192

187193
- `JWT_SECRET` deve ser forte e exclusivo por ambiente.
188-
- `FRONTEND_URL` deve apontar apenas para o dominio do frontend em producao.
194+
- `FRONTEND_URL` deve apontar apenas para o domínio do frontend em produção.
189195

190-
### Checklist de validacao (producao)
196+
### Checklist de validação (produção)
191197

192-
- Registrar usuario (`POST /users`) -> `201`
198+
- Registrar usuário (`POST /users`) -> `201`
193199
- Login (`POST /sessions`) -> `200` + token
194200
- Perfil (`GET /profile`) -> `200`
195201
- Criar tech (`POST /users/techs`) -> `201`
196-
- Editar tech (status acentuado/ascii) -> `200`
197-
- Status invalido -> `400`
202+
- Editar tech (status acentuado/ASCII) -> `200`
203+
- Status inválido -> `400`
198204
- Delete tech -> `204`
199205

200-
## Case Study - Evolucao para Mini-Produto
206+
## Case Study - Evolução para Mini-Produto
201207

202-
Este projeto comecou como uma aplicacao academica dependente de API externa instavel.
203-
A evolucao tecnica incluiu:
208+
Este projeto começou como uma aplicação acadêmica dependente de API externa instável.
209+
A evolução técnica incluiu:
204210

205211
### Arquitetura
206212

207-
- Remocao de dependencia externa.
208-
- Criacao de API propria (`Express + JWT`).
209-
- Migracao de persistencia em arquivo para Postgres com Prisma.
213+
- Remoção de dependência externa.
214+
- Criação de API própria (`Express + JWT`).
215+
- Migração de persistência em arquivo para Postgres com Prisma.
210216

211-
### Seguranca
217+
### Segurança
212218

213-
- `JWT_SECRET` obrigatorio em producao.
219+
- `JWT_SECRET` obrigatório em produção.
214220
- CORS restrito por `FRONTEND_URL` (allowlist).
215221
- `.env` isolado e ignorado no versionamento.
216222

217-
### Dominio consistente
223+
### Domínio consistente
218224

219-
- Validacao e normalizacao de status de tecnologia.
220-
- Compatibilidade com entradas acentuadas e variacoes de encoding.
221-
- Fonte unica de verdade para regras de dominio (front + backend).
225+
- Validação e normalização de status de tecnologia.
226+
- Compatibilidade com entradas acentuadas e variações de encoding.
227+
- Fonte única de verdade para regras de domínio (front + backend).
222228

223229
### Engenharia e Qualidade
224230

225-
- Script unico `dev:all` (frontend + backend).
231+
- Script único `dev:all` (frontend + backend).
226232
- Testes de API com Supertest (auth + CRUD + rotas protegidas).
227-
- CI automatico com lint/build/test em push e pull request.
233+
- CI automático com lint/build/test em push e pull request.
228234

229-
## Decisoes Tecnicas
235+
## Decisões Técnicas
230236

231-
- CORS por allowlist: API aceita apenas o dominio oficial do frontend em producao.
237+
- CORS por allowlist: API aceita apenas o domínio oficial do frontend em produção.
232238
- Separacao `app` e `server`: facilita testes sem subir listener HTTP.
233-
- Prisma + Postgres: persistencia transacional e schema versionado por migration.
234-
- Status de tecnologia normalizado: evita inconsistencias de acento/encoding.
235-
- CI obrigatorio: valida frontend e API em todo push para `main`.
239+
- Prisma + Postgres: persistência transacional e schema versionado por migration.
240+
- Status de tecnologia normalizado: evita inconsistências de acento/encoding.
241+
- CI obrigatório: valida frontend e API em todo push para `main`.

0 commit comments

Comments
 (0)