Um clone do GetNinjas desenvolvido com React, Node.js e MongoDB, onde clientes podem publicar pedidos de serviços e freelancers podem encontrar e desbloquear esses pedidos usando moedas virtuais.
getninjas-clone/
├── backend/ # API Node.js + Express
│ ├── config/ # Configurações (banco de dados, etc.)
│ ├── controllers/ # Controladores das rotas
│ ├── middleware/ # Middlewares (autenticação, etc.)
│ ├── models/ # Modelos do MongoDB (Mongoose)
│ ├── routes/ # Definições das rotas da API
│ ├── uploads/ # Arquivos enviados pelos usuários
│ ├── .env # Variáveis de ambiente
│ ├── package.json # Dependências do backend
│ └── server.js # Arquivo principal do servidor
└── frontend/ # Aplicação React
├── public/ # Arquivos públicos
├── src/ # Código fonte React
├── package.json # Dependências do frontend
└── ...
- Cadastro e login
- Criar e gerenciar pedidos de serviço
- Acompanhar freelancers interessados
- Receber notificações por e-mail
- Cadastro com áreas de especialização
- Buscar e filtrar pedidos por categoria
- Comprar pacotes de moedas virtuais
- Desbloquear pedidos usando moedas
- Histórico de transações
- Pacotes de moedas com diferentes valores
- Custo dinâmico de desbloqueio (diminui conforme mais freelancers desbloqueiam)
- Máximo de 5 freelancers por pedido
- Integração com gateway de pagamento
- Node.js
- Express.js
- MongoDB + Mongoose
- JWT para autenticação
- bcryptjs para hash de senhas
- Multer para upload de arquivos
- CORS
- React + TypeScript
- React Router DOM
- Axios para requisições HTTP
- CSS Modules / Styled Components
cd backend
npm install
npm run devcd frontend
npm install
npm startCrie um arquivo .env na pasta backend com as seguintes variáveis:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/getninjas
JWT_SECRET=sua_chave_secreta_jwt_aqui
NODE_ENV=development
Este projeto foi desenvolvido como um clone educacional do GetNinjas para demonstrar conceitos de desenvolvimento full-stack.