Uma aplicação moderna para criação e gerenciamento de currículos profissionais.
- Criação de currículos profissionais
- Edição com preview em tempo real
- Drag and drop para reordenar experiências, educação e habilidades
- Personalização de fonte, tamanho e cor
- Export para PDF e DOCX
- Autenticação JWT
- API RESTful documentada com Swagger
- React 19 - UI library
- TypeScript - Type safety
- Vite - Build tool
- Tailwind CSS - Styling
- React Query - Server state management
- React Router - Routing
- Radix UI - Accessible components
- dnd-kit - Drag and drop
- Lucide React - Icons
- Storybook - Component documentation
- Node.js - Runtime
- Express - Web framework
- Prisma - ORM
- SQLite - Database
- JWT - Authentication
- Swagger - API documentation
- Zod - Validation
- pnpm - Package manager
- Turborepo - Monorepo management
- ESLint - Linting
- Prettier - Code formatting
- GitHub Actions - CI/CD
create-resume/
├── apps/
│ ├── api/ # Backend Express
│ │ ├── prisma/ # Database schema and migrations
│ │ └── src/
│ │ ├── config/ # Configuration (Swagger, etc.)
│ │ ├── database/ # Prisma client
│ │ └── modules/ # Feature modules (auth, resume)
│ └── web/ # Frontend React
│ ├── .storybook/ # Storybook configuration
│ └── src/
│ ├── components/ # UI components
│ ├── features/ # Feature modules
│ └── lib/ # Utilities
├── packages/
│ ├── api-client/ # HTTP client
│ ├── eslint-config/ # Shared ESLint config
│ ├── routes/ # Shared route definitions
│ ├── schemas/ # Zod validation schemas
│ ├── shared-types/ # TypeScript types
│ └── tsconfig/ # Shared TypeScript config
└── .github/
└── workflows/ # CI/CD pipelines
- Node.js 20+
- pnpm 9+
# Clone o repositório
git clone https://github.com/your-username/create-resume.git
cd create-resume
# Instale as dependências
pnpm install
# Configure o banco de dados
pnpm --filter @create-resume/api db:push
pnpm --filter @create-resume/api db:seed# Inicie todos os serviços em modo de desenvolvimento
pnpm dev
# Ou inicie separadamente:
pnpm --filter @create-resume/api dev # API em http://localhost:3001
pnpm --filter @create-resume/web dev # Web em http://localhost:5173| Comando | Descrição |
|---|---|
pnpm dev |
Inicia todos os serviços em modo dev |
pnpm build |
Build de produção de todos os pacotes |
pnpm lint |
Executa ESLint em todos os pacotes |
pnpm typecheck |
Verifica tipos TypeScript |
pnpm test |
Executa testes |
pnpm format |
Formata código com Prettier |
pnpm storybook |
Inicia Storybook |
pnpm build-storybook |
Build do Storybook |
A documentação da API está disponível via Swagger UI:
http://localhost:3001/api-docs
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /auth/login |
Autenticação |
| GET | /resumes |
Listar currículos |
| POST | /resumes |
Criar currículo |
| GET | /resumes/:id |
Buscar currículo |
| PUT | /resumes/:id |
Atualizar currículo |
| DELETE | /resumes/:id |
Excluir currículo |
Documentação visual dos componentes:
pnpm storybook
# Acesse http://localhost:6006# Executar todos os testes
pnpm test
# Executar testes com watch mode
pnpm --filter @create-resume/api test:watchO projeto utiliza GitHub Actions para:
- Lint - Verificação de código com ESLint
- Type Check - Verificação de tipos TypeScript
- Build - Build de produção
- Test - Execução de testes
A pipeline é executada em:
- Push para
mainoumaster - Pull requests para
mainoumaster
DATABASE_URL="file:./dev.db"
JWT_SECRET="your-secret-key"
JWT_EXPIRES_IN="7d"
API_PORT=3001
API_HOST=0.0.0.0VITE_API_URL=http://localhost:3001Após executar o seed, você pode fazer login com:
Email: demo@example.com
Senha: demo123
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/amazing-feature) - Commit suas mudanças (
git commit -m 'Add some amazing feature') - Push para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.