Skip to content

Uma plataforma tecnológica projetada para facilitar o compartilhamento detalhado de projetos desenvolvidos por seus usuários.

Notifications You must be signed in to change notification settings

Denis-moreira98/orange-portfolio-squad20

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

🍊 Squad 20 | Orange Portfólio 🍊

Esta é uma solução para o desafio da edição do Programa de Formação da FCamara.

Sobre o projeto

A Orange Portfólio é uma plataforma interativa projetada para facilitar o compartilhamento detalhado de projetos desenvolvidos por seus usuários. Essa abordagem única permite que membros da comunidade compartilhem suas experiências, habilidades e conquistas, proporcionando aos demais usuários a oportunidade de explorar e descobrir uma ampla variedade de projetos registrados na plataforma.

Video Pitch

Projeto

Funcionalidades da Aplicação Web:

Página Home:

  • Interface intuitiva e agradável visualmente.
  • Informações necessárias para o usuário acessar a plataforma.
  • Botões "Começar Agora" e "Cadastrar" para navegar para a página de cadastro.

Página de Cadastro:

  • Formulário de cadastro com validação de campos.
  • Formulário de login com validação de campos.
  • Garantia de preenchimento correto dos campos através de validação.

Rotas Privadas:

  • Acesso restrito a rotas privadas para usuários logados.

Dashboard (Meus Projetos):

  • Cadastro de projetos com preenchimento obrigatório de todos os campos.
  • Validar e exibir mensagem de erro se campos não estiverem preenchidos corretamente.
  • Campo de tags seguindo regras específicas (separar tags apenas com espaço).
  • Edição e exclusão de projetos.

Barra de Pesquisa:

  • Pesquisa de projetos por tags na barra de pesquisa.

Página Descobrir:

  • Visualização de todos os projetos cadastrados na plataforma.
  • Modal com informações detalhadas do projeto ao clicar em um projeto específico.
  • Exibição de título, nome do cadastrador, tags, imagem, descrição e link de acesso no modal.
  • Pesquisa por tags na barra de pesquisa.

Confira o Deploy 🚀

🛠️ Tecnologias

Frontend:

  • React com TypeScript: Aproveitar os benefícios do sistema de tipos estáticos do TypeScript ao desenvolver componentes React, fornecendo uma camada adicional de segurança e facilitando a manutenção do código.
  • CSS3: linguagem de estilo para estilizar a interface do usuário.
  • Axios: Axios é um cliente HTTP baseado em Promises para fazer requisições. Pode ser utilizado tanto no navegador quanto no Node. js ou qualquer serviço de API.
  • Vite: Ferramenta de construção de aplicações web rápida e eficiente, especialmente otimizada para o desenvolvimento moderno.
  • Vercel: Ferramenta utilizada para fazer o deploy da aplicação web.

Backend:

  • Java Spring: Java com o Spring Boot oferece desenvolvimento eficiente, simplificando a configuração, facilitando a criação de aplicativos robustos e escaláveis, além de integração perfeita com o ecossistema Spring e qualque outro Framework frontend, no caso deste projeto, o React.
  • PostgreSQL: Sistema gerenciador de banco de dados relacional de software livre e multiplataforma, usado em variados tipos de aplicações.
  • AWS S3: O Amazon Simple Storage Service é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e perfomance.
  • Docker: Projeto de software livre para automatizar a implantação de aplicativos como contêineres autossuficientes portáteis que podem ser executado na nuvem ou localmente.

O Backend segue o padrão MVC (Model-View-Controller), onde os controladores gerenciam as requisições, os serviços manipulam a lógica de negócios, e os modelos representam os dados. Além disso, estamos implementando o padrão DAO para acesso a dados.

Você pode visualizar a documentação da API deste projeto através deste link 👉🏻 Swagger

Para Rodar localmente o frontend sua máquina:

É necessário ter o Nodejs instalado na maquina.

Para começar, clone o repositório para o seu ambiente local:

git clone https://github.com/Denis-moreira98/orange-portfolio-squad20

Instalando dependencias

Acesse o diretório do projeto e instale as dependências utilizando o npm:

  cd frontend
  npm install

Inciando servidor

Adicione arquivo .env na pasta raiz do frontend, passando a url da api:

  VITE_API_URL="http://localhost:3000/exemplo"

Inicie o servidor:

  npm run dev

Demostração da Aplicação

Antes de começar, você precisará ter instalado em sua máquina as seguintes ferramentas:

Ferramenta Versão
Java JDK 8+
Java 17
Eclipse IDE 2023-12
Postman 10.22.10
PostgreSQL 16.1
Git 2.**

Para Rodar localmente o backend sua máquina:

Caso tenha dificuldade de instalar alguma ferramenta em sua maquina, deixamos aqui os videos necessários para isto:

👉🏽 Criando sua conta AWS

👉🏽 Criando seu S3

👉🏽 Gerando as credenciais

👉🏽 Baixando Java + Eclipse

👉🏽 Baixando PostgreSQL + Eclipse

Lembrando que os videos do AWS são necessários, uma vez que o banco de imagens está sendo utilizados lá.

Crie as variáveis de ambiente locais com as credenciais recém criadas da AWS:

Nomes de Variaveis:
**AWS_KEY
**AWS_SECRET

  1. Na barra de pesquisar do Windows digite: variaveis de ambiente > Clique em 'Editar Variáveis de Ambiente';
  2. Na aba avançado, localize o botão 'Variáveis de Ambiente...';
  3. Na guia variáveis do sistema, clique em 'Novo' > No popup aberto, em 'Nome de variável' digite o nome e em 'Valor da variável' o que você copiou na AWS;
  4. Lembrando que são duas variáveis com dois valores direntes: uma chamada AWS_KEY e outra chamada AWS_SECRET;
  5. Reinicie sua maquina para que as variáveis de ambiente sejam lidas pelo sistema;

Clone o repositório para o seu ambiente local:

git clone https://github.com/Denis-moreira98/orange-portfolio-squad20

No Eclipse, importe o projeto: Vá em File > Import > Paste General > "Existing projects Maven".

No arquivo application.properties

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url= jdbc:postgresql://localhost:5432/seu_bancoDeDados
spring.datasource.username=seu_username
spring.datasource.password=sua_senha

spring.jpa.hibernate.ddl-auto=update

server.error.include-stacktrace=never
server.error.include-message=never

spring.servlet.multipart.max-file-size=3MB
spring.servlet.multipart.max-request-size=3MB

aws.access.key.id=${AWS_KEY}
aws.access.key.secret=${AWS_SECRET}
aws.region=sa-east-1
aws.s3.bucket=orangeportfolio-bucket

Inciando servidor

Basta clicar na classe principal OrangePortifolioApplication > Botão Direito > Run as Java Application;

Lembretes:

🚨 Todos videos, em especial os do AWS são necessários, uma vez que o banco de imagens está sendo utilizados lá. 🚨 Se for utilizar o postman, assim que for criado o usuário, e for realizar o login dele pela primeira vez, guarde o token. Ele deverá ser utilizado no cabeçaljo da Authorization nas demais requisições;

👨🏻‍💻 Colaboradores 👩🏻‍💻

About

Uma plataforma tecnológica projetada para facilitar o compartilhamento detalhado de projetos desenvolvidos por seus usuários.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published