|
1 | | -# Flugo Staff Manager |
| 1 | +# Flugo Employees |
2 | 2 |
|
3 | | -Gerenciador de colaboradores feito com React + Firebase. Formulário multi-etapa com rascunho automático e sincronização com o Firestore. |
| 3 | +Este é o sistema de gestão de colaboradores e times da Flugo. Ele foi construído com foco em resiliência e facilidade de manutenção, usando uma arquitetura limpa que separa bem as regras de negócio da infraestrutura técnica. |
4 | 4 |
|
5 | | -Demo: [https://flugo-employees-theta.vercel.app](https://flugo-employees-theta.vercel.app) |
| 5 | +Demo online: [https://flugo-employees-theta.vercel.app](https://flugo-employees-theta.vercel.app) |
6 | 6 |
|
7 | | ---- |
| 7 | +## O que tem dentro? |
8 | 8 |
|
9 | | -## Stack |
| 9 | +- **React 19 + TypeScript:** O core da aplicação com a última versão do React. |
| 10 | +- **Material UI v7:** Toda a interface visual e componentes de UI. |
| 11 | +- **Firebase (Auth + Firestore):** Controle de acesso e banco de dados em tempo real. |
| 12 | +- **TanStack Query v5:** Gerenciamento inteligente de estado e cache de dados. |
| 13 | +- **Clean Architecture:** Código organizado em camadas (Domínio, Aplicação, Infra e Apresentação). |
| 14 | +- **Service Workers:** Estratégias avançadas de caching e sincronização de dados em segundo plano. |
10 | 15 |
|
11 | | -- React 19 + TypeScript + Vite |
12 | | -- Material UI v7 + Emotion |
13 | | -- TanStack Query v5 |
14 | | -- React Hook Form + Zod |
15 | | -- Firebase Firestore |
16 | | -- React Router v7 |
| 16 | +## Como rodar na sua máquina |
17 | 17 |
|
18 | | ---- |
19 | | - |
20 | | -## Como rodar |
21 | | - |
22 | | -**Localmente** |
| 18 | +Primeiro, clone o repositório e instale as dependências: |
23 | 19 |
|
24 | 20 | ```bash |
25 | 21 | npm install |
26 | | -# configure o .env com base no .env.example |
27 | | -npm run dev |
28 | | -# http://localhost:5173 |
29 | 22 | ``` |
30 | 23 |
|
31 | | -**Com Docker** |
| 24 | +### Configurando o ambiente |
| 25 | + |
| 26 | +Você vai precisar de um arquivo `.env.local` na raiz do projeto. Use o `.env.example` como base e preencha com as suas chaves do Firebase: |
| 27 | + |
| 28 | +```env |
| 29 | +VITE_FIREBASE_API_KEY=sua_chave |
| 30 | +VITE_FIREBASE_AUTH_DOMAIN=seu_projeto.firebaseapp.com |
| 31 | +VITE_FIREBASE_PROJECT_ID=seu_projeto |
| 32 | +VITE_FIREBASE_STORAGE_BUCKET=seu_projeto.appspot.com |
| 33 | +VITE_FIREBASE_MESSAGING_SENDER_ID=seu_sender_id |
| 34 | +VITE_FIREBASE_APP_ID=seu_app_id |
| 35 | +``` |
| 36 | + |
| 37 | +### Rodando o projeto |
| 38 | + |
| 39 | +Para iniciar o servidor de desenvolvimento: |
32 | 40 |
|
33 | 41 | ```bash |
34 | | -docker compose up --build |
35 | | -# http://localhost:3000 |
| 42 | +npm run dev |
36 | 43 | ``` |
37 | 44 |
|
38 | | ---- |
| 45 | +Abra [http://localhost:5173](http://localhost:5173) no navegador. |
39 | 46 |
|
40 | | -## Testes |
| 47 | +### Build de Produção |
| 48 | + |
| 49 | +Para gerar a versão final otimizada: |
41 | 50 |
|
42 | 51 | ```bash |
43 | | -npm run test # unitários (Vitest) |
44 | | -npm run test:e2e # E2E (Playwright) |
| 52 | +`npm run build |
| 53 | +npm run preview |
45 | 54 | ``` |
46 | 55 |
|
47 | | ---- |
| 56 | +## Configurando o Firebase |
| 57 | + |
| 58 | + |
| 59 | +Para que tudo funcione, você precisa ativar dois serviços no seu console do Firebase: |
48 | 60 |
|
49 | | -## Firebase |
| 61 | +1. **Authentication:** Ative o provedor de **E-mail/Senha**. |
| 62 | +2. **Cloud Firestore:** Crie o banco de dados. |
50 | 63 |
|
51 | | -1. Crie um projeto no Firebase Console |
52 | | -2. Ative o Firestore em modo de teste |
53 | | -3. Copie as chaves web para o `.env` |
| 64 | +### Regras de Segurança |
54 | 65 |
|
55 | | -As regras de segurança estão em `firestore.rules`. Para publicar: |
| 66 | +Para aplicar as regras do banco de dados (que estão no arquivo `firestore.rules`), você pode usar o CLI do Firebase: |
56 | 67 |
|
57 | 68 | ```bash |
58 | | -npx firebase-tools deploy --only firestore:rules --project SEU_ID |
| 69 | +npx firebase-tools deploy --only firestore:rules --project SEU_ID_DO_PROJETO |
59 | 70 | ``` |
| 71 | + |
| 72 | +## Testes |
| 73 | + |
| 74 | +Temos uma boa cobertura de testes para garantir que nada quebre ao adicionar novas funções: |
| 75 | + |
| 76 | +- **Unitários:** `npm run test` (testamos a lógica de negócio isolada). |
| 77 | +- **E2E:** `npm run test:e2e` (testamos o fluxo completo no navegador com Playwright). |
0 commit comments