Freelas é uma plataforma web moderna desenvolvida para conectar freelancers talentosos com clientes em busca de serviços profissionais. Esta aplicação oferece um ambiente intuitivo e seguro para que freelancers possam mostrar suas habilidades e clientes possam encontrar os melhores profissionais para seus projetos.
- Autenticação de usuários (login/registro)
- Perfis personalizados para freelancers e clientes
- Dashboard para gerenciamento de projetos e propostas
- Sistema de busca e filtragem de projetos/freelancers
- Comunicação direta entre clientes e freelancers
- Sistema de avaliações e feedback
O projeto Freelas foi construído utilizando as seguintes tecnologias e frameworks:
- Next.js 15.1.4 com App Router: Framework React para renderização híbrida e estática
- React: Biblioteca JavaScript para construção de interfaces de usuário
- TypeScript: Superset do JavaScript que adiciona tipagem estática
- Tailwind CSS: Framework CSS utilitário para design rápido e responsivo
- Shadcn/ui: Biblioteca de componentes UI reutilizáveis
- Prisma ORM: ORM moderno para Node.js e TypeScript
- PostgreSQL: Sistema de gerenciamento de banco de dados relacional
- NextAuth.js: Solução de autenticação para Next.js
freelas/
├── app/ # Diretório principal da aplicação (App Router)
│ ├── (private)/ # Rotas privadas (requerem autenticação)
│ ├── api/ # Endpoints da API
│ └── layout.tsx # Layout principal da aplicação
├── components/ # Componentes reutilizáveis
├── lib/ # Utilitários e configurações
├── prisma/ # Configurações do Prisma e schemas
├── provider/ # Provedores de contexto
├── public/ # Arquivos estáticos
└── types/ # Definições de tipos TypeScript
- Node.js 18.x ou superior
- PostgreSQL
- NPM ou Yarn
- Clone o repositório:
git clone https://github.com/aleksanderpalamar/freelas.git
cd freelas
- Instale as dependências:
npm install
# ou
yarn install
- Configure as variáveis de ambiente:
cp .env.example .env
- Configure suas variáveis no arquivo
.env
:
#Database
DATABASE_URL=postgresql://seu-usuario:senha@localhost:5432/freelas_db
#NextAuth
NEXTAUTH_SECRET=sua-chave-secreta
NEXTAUTH_URL=http://localhost:3000
#Google Provider
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
- Execute as migrações do banco de dados:
npx prisma migrate dev
- Inicie o servidor de desenvolvimento:
npm run dev
# ou
yarn dev
npm run dev
: Inicia o servidor de desenvolvimentonpm run build
: Gera a build de produçãonpm run start
: Inicia o servidor de produçãonpm run lint
: Executa a verificação de lintingnpm run prisma:studio
: Abre o Prisma Studio para gerenciamento do banco de dados
O projeto utiliza Prisma como ORM com PostgreSQL. Os principais modelos incluem:
- User (Usuários)
- Profile (Perfis)
- Project (Projetos)
- Proposal (Propostas)
- Review (Avaliações)
- Faça um Fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/NewFeature
) - Commit suas mudanças (
git commit -m 'Add some NewFeature'
) - Push para a branch (
git push origin feature/NewFeature
) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE.md para detalhes.