Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,17 @@

Frontend da plataforma EventDev construído com React, Vite, Material-UI e TypeScript.

## Setup Rápido
## Ferramentas necessárias

### Desenvolvimento Local
- [**node.js**](https://nodejs.org/en/download)
- [**docker**](https://www.docker.com/get-started/)
- [**pnpm**](https://pnpm.io/pt/installation)

```bash
pnpm install # ou pnpm run setup
pnpm run dev
```

### Desenvolvimento com Docker
### Desenvolvimento Local

```bash
make setup-dev # Criar .env
make dev-up # Iniciar containers
make dev-logs # Ver logs
pnpm install #para instalar dependências
pnpm run dev #para iniciar o servidor de desenvolvimento
```

## Comandos Disponíveis
Expand Down
14 changes: 9 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@
"name": "event-dev-communities",
"type": "module",
"version": "0.0.0",
"engines": {
"node": " 22.x",
"pnpm": "10.x"
},
"private": true,
"packageManager": "pnpm@10.17.0",
"packageManager": "pnpm@10.23.0",
"scripts": {
"dev": "vite --host 0.0.0.0 --port 5173",
"env:setup": "node scripts/env-setup.js",
"dev": "pnpm run env:setup &&vite --host 0.0.0.0 --port 5173",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint .",
Expand All @@ -15,9 +20,8 @@
"prepare": "husky",
"server": "json-server --watch server/db.json --port 4000",
"setup": "pnpm install && pnpm run prepare && pnpm run husky:setup",
"check-blocked-files": "git diff --cached --name-only | grep -Fx -e '.vscode/settings.json' -e '.env' -e '.husky/pre-commit' -e '.husky/commit-msg' && echo '✖ Forbidden files staged' && exit 1 || exit 0",
"husky:setup": "node -e \"const fs=require('fs'); const path=require('path'); const huskyDir='.husky'; if(!fs.existsSync(huskyDir)) fs.mkdirSync(huskyDir); fs.writeFileSync(path.join(huskyDir,'pre-commit'),'#!/bin/sh\\n\\npnpm lint-staged && npx validate-branch-name && pnpm run check-blocked-files\\n',{mode:0o755}); fs.writeFileSync(path.join(huskyDir,'commit-msg'),'#!/bin/sh\\n\\nnpx --no-install commitlint --edit \\\"$1\\\"\\n',{mode:0o755}); console.log('Husky: Hooks criados com sucesso!')\"",
"postinstall": "node -e \"if (require('fs').existsSync('.git')) { console.log('Repositório Git encontrado. Configurando Husky...'); require('child_process').execSync('pnpm run husky:setup', {stdio: 'inherit'}); } else { console.log('Repositório Git ausente. Pulando setup do Husky.'); }\"",
"check-blocked-files": "node scripts/check-blocked-files.js",
"husky:setup": "node scripts/setup-husky.js",
"health": "curl -f http://localhost:5173 || echo 'Frontend not responding'"
},
"dependencies": {
Expand Down
18 changes: 18 additions & 0 deletions scripts/check-blocked-files.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { execSync } from 'child_process'

const blockedFiles = ['.vscode/settings.json', '.env', '.husky/pre-commit', '.husky/commit-msg']

try {
const stagedFiles = execSync('git diff --cached --name-only', { encoding: 'utf-8' }).trim().split('\n').filter(Boolean)

const foundBlockedFiles = stagedFiles.filter((file) => blockedFiles.includes(file))

if (foundBlockedFiles.length > 0) {
console.error('✖ Forbidden files staged')
process.exit(1)
}

process.exit(0)
} catch (error) {
process.exit(0)
}
8 changes: 8 additions & 0 deletions scripts/env-setup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import fs from 'fs'

if (!fs.existsSync('.env')) {
fs.copyFileSync('.env.dev.example', '.env')
console.log('.env file created successfully!')
} else {
console.log('.env file already exists')
}
23 changes: 23 additions & 0 deletions scripts/setup-husky.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import fs from 'fs'
import path from 'path'

const huskyDir = '.husky'

if (!fs.existsSync(huskyDir)) {
fs.mkdirSync(huskyDir)
}

const preCommitContent = `#!/bin/sh

pnpm lint-staged && npx validate-branch-name && pnpm run check-blocked-files
`

const commitMsgContent = `#!/bin/sh

npx --no-install commitlint --edit "$1"
`

fs.writeFileSync(path.join(huskyDir, 'pre-commit'), preCommitContent, { mode: 0o755 })
fs.writeFileSync(path.join(huskyDir, 'commit-msg'), commitMsgContent, { mode: 0o755 })

console.log('Husky: Hooks criados com sucesso!')