Projeto acadêmico Full-Stack desenvolvido para as disciplinas de Usabilidade e Desenvolvimento Web e Sistemas Distribuídos, durante o 2º semestre de 2024.
O Dev's Den é uma plataforma fictícia de recrutamento voltada ao mercado de Tecnologia da Informação.
O sistema foi desenvolvido com o objetivo de simular um ambiente moderno de divulgação e busca de oportunidades profissionais para desenvolvedores, analistas, engenheiros de software e demais profissionais da área de tecnologia.
A aplicação foi construída utilizando uma arquitetura cliente-servidor, separando as responsabilidades entre um front-end desenvolvido em Next.js e uma API REST desenvolvida em NestJS.
Além de aplicar conceitos de desenvolvimento Full-Stack, o projeto explora fundamentos de sistemas distribuídos, integração entre serviços, validação de dados, autenticação de usuários e experiência do usuário.
O projeto foi desenvolvido em uma arquitetura desacoplada, com front-end e back-end mantidos em repositórios independentes.
| Projeto | Descrição | Repositório |
|---|---|---|
| 🌐 Front-end | Interface da aplicação desenvolvida com Next.js, React e TypeScript | devs-den-webapp |
| ⚙️ Back-end | API REST desenvolvida com NestJS, TypeORM e MySQL | devs-den-api |
O projeto foi desenvolvido para aplicar conceitos relacionados a:
- Desenvolvimento Full-Stack
- Sistemas Distribuídos
- Arquitetura Cliente-Servidor
- APIs REST
- Integração Front-end e Back-end
- Modelagem e Persistência de Dados
- Validação de Dados
- Experiência do Usuário (UX)
- Usabilidade
- Boas Práticas de Desenvolvimento
┌─────────────────────┐
│ Next.js │
│ Front-end │
└──────────┬──────────┘
│ HTTP / REST
▼
┌─────────────────────┐
│ NestJS API │
│ Back-end │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ MySQL │
│ Database │
└─────────────────────┘
- Cadastro de usuários
- Login e autenticação
- Gerenciamento de sessão utilizando JWT
- Validação de dados de entrada
- Consulta de vagas de tecnologia
- Visualização de oportunidades profissionais
- Integração completa entre front-end e API
- Comunicação baseada em endpoints REST
- Documentação automática da API via Swagger
- Testes unitários em camadas da aplicação
- Estrutura modular baseada em NestJS
- Ambiente containerizado com Docker
- Next.js
- React
- TypeScript
- SCSS
- Bootstrap
- Axios
- React Hook Form
- React Input Mask
- Zod
- NestJS
- TypeScript
- TypeORM
- MySQL
- JWT
- Swagger
- Zod
- BCrypt
- Jest
- Docker
- Docker Compose
- ESLint
- Prettier
devs-den/
│
├── devs-den-api/
│ ├── src/
│ ├── test/
│ └── docker/
│
├── devs-den-webapp/
│ ├── src/
│ ├── public/
│ └── styles/
│
└── README.md
git clone https://github.com/odavibatista/devs-den-webapp.gitgit clone https://github.com/odavibatista/devs-den-api.gitEntre no diretório da API:
cd devs-den-apiInstale as dependências:
npm installConfigure o arquivo .env com as credenciais do banco de dados.
Crie o banco e execute os seeds:
npm run db:create
npm run db:seedInicie a aplicação:
npm run start:devA API estará disponível em:
http://localhost:5000
Entre no diretório da aplicação:
cd devs-den-webappInstale as dependências:
npm installExecute o projeto:
npm run devA aplicação estará disponível em:
http://localhost:3000
A API possui documentação automática gerada através do Swagger.
Após iniciar o back-end, acesse:
http://localhost:5000/swagger
A interface permitirá visualizar todos os endpoints disponíveis, seus parâmetros, payloads e respostas.
O projeto utiliza Jest para execução de testes automatizados.
Executar todos os testes:
npm run testExecutar em modo observação:
npm run test:watchGerar relatório de cobertura:
npm run test:covTanto o front-end quanto o back-end possuem suporte para execução utilizando Docker e Docker Compose.
npm run docker:upnpm run docker:restartnpm run docker:logsnpm run docker:downDurante o desenvolvimento foram aplicados conceitos de:
- Arquitetura em Camadas
- Arquitetura Cliente-Servidor
- APIs RESTful
- Sistemas Distribuídos
- Componentização de Interfaces
- Validação de Dados
- Autenticação e Autorização
- Persistência com ORM
- Boas Práticas de UX
- Responsividade
- Containerização
- Documentação de APIs
| Integrante | RA |
|---|---|
| Davi Batista | 823212382 |
| Rafael Bolsarini Favaretto | 823210205 |
| Yago | 823115101 |
| Gabriel | 822135326 |
Projeto desenvolvido como atividade avaliativa (A3) para as disciplinas:
- Sistemas Distribuídos
- Usabilidade e Desenvolvimento Web
Durante o 2º semestre de 2024.
O objetivo da atividade foi aplicar conhecimentos de desenvolvimento Full-Stack, integração entre serviços, usabilidade, experiência do usuário e arquitetura distribuída em uma aplicação web completa.
Projeto desenvolvido exclusivamente para fins acadêmicos e educacionais.