Skip to content

emilymarc/feira-republica-xp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo República Hippie

Feira da República

Projeto de Conclusão do Curso Gama Experience Turma 41 - XP41

Prévia

preview

E-commerce Feira Republica | API documentation

Para mais detalhes do projeto, visite nossa pagina no Notion

Objetivo 💡

A praça da República é um cartão postal da cidade de São Paulo - SP, Brasil, e no centro da praça se encontra uma feira de artesanatos conhecida como Feira de República.

Apesar da popularidade da feira e da existência de uma associação dos artesãos que nela expõe seus produtos, não existe uma plataforma de e-commerce destinada à venda on-line dos artesanatos ali comercializados.

Assim, com o intuito de possibilitar vendas on-line, o cliente (Associação de Artesãos) solicitou a criação de um e-commerce no qual sejam expostos os produtos vendidos na feira e indicados os respectivos artesãos/expositores.

Uma vez que a maioria dos expositores não possui muita habilidade com uso de aplicativos, a Associação de Artesãos entendeu desnecessário, a princípio, o cadastramento dos artesãos/expositores como usuários do sistema, deixando somente a Associação como administradora da plataforma.

Na ideia de negócio projetada pela nossa cliente (Associação de Artesãos), ela cadastra de forma centralizada os produtos e organiza as entregas.

O cliente, por sua vez, se cadastra na plataforma e, logado, pode comprar produtos.


🏄 Como utilizar

1️⃣ Pré-requisitos

A documentação da API pode ser conferida neste link

🤔 Para utilizar o projeto :

Faça um fork deste repositório pela interface do GitHub.


# clone o repositório e entre na pasta do backend para acessar o servidor
git clone https://github.com/emilymarc/feira-republica-xp.git

# Crie uma branch com sua feature ou correção de bugs
$ git checkout -b minha-branch

# Faça o commit das suas alterações
$ git commit -m 'feature/bugfix: minhas alterações'

# Faça o push para a sua branch
$ git push origin minha-branch

⚡ Executando

Criar um arquivo .env conforme arquivo de exemplo.env-example

As credenciais devem do banco de dados devem estar preenchidas de acordo com o banco criado no seu mysql local. Assim como as credenciais do Cloudinary

Para INICIAR O BACK-END, acessar a pasta backend, abrir o terminal e executar as dependencias:

# instalando dependencias
cd backend
npm install

# iniciando o sequelize-cli
npx sequelize-cli init

A execução do projeto também depende da criação de um banco de dados como abaixo e para isso se faz necessário, na linha de comando do terminal digitar:

Modelo DER do banco de dados em mysql

# dentro da pasta backend
npx sequelize-cli db:create
npx sequelize-cli db:migrate

# Por fim, para ativar o seed e assim popular o banco de dados, execute o comando abaixo :
npx sequelize-cli db:seed:all

Para INICIAR O FRONT-END, após abrir a pasta frontend, ingressar no diretório republica-hippie e, após, na pasta src, executar na linha de comando:


# Para iniciar o Frontend
cd frontend/republica-hippie
npm start
npm install -g

# da pasta raiz: para ligar o servidor do backend
cd backend
npm run dev 

⚠️ Mas atenção: Não esqueça do comando npm run dev para manter o servidor ativo.

Agora já sabe como navegar por essa maravilha 🚢

☁️ Deploy na nuvem (opcional)

Crie uma conta no Heroku e no Netlify

Recomendamos criar uma branch em seu repositório contendo apenas a pasta backend e outra apenas a pasta frontend para que nos proximos passos apenas uma branch do repositorio possa ser associada ao deploy em cada ambiente na nuvem.

Netlify

Crie um projeto no modo free com o nome desejado.

Importe seu projeto do github onde está o fork deste projeto e associe a branch que contem a pasta frontend.

Redirecione a aplicação para consumir o backend do Heroku

Heroku

Crie um projeto no modo free com o nome desejado.

Recomendamos criar uma branch em seu repositório contendo apenas a pasta backend para que neste passo a branch seja associada na sessão "Manual Deploy" e "Automatic deploys".

É necessário criar um projeto com um banco de dados mysql associado, neste projeto, utilizamos o ClearDB MySQL. Guarde as informações referente ao banco como nome, senha, host, etc para adicionar no seu arquivo .env

No menu "Deploy" do Heroku, como "deploy method", associe a conta do Github onde está seu repositório com o fork deste projeto.

Adicione todas as variaveis de ambiente do seu arquivo .env no menu Settings > Config Vars > Reveal Config Vars.

A url do seu ambiente backend na nuvem é gerada pelo Heroku no menu Settings > App Information. Adicione esta url ao codigo no arquivo backend/src/app.js

💻O código

O Projeto foi desenvolvido com as seguintes tecnologias:

  • JavaScript
  • CSS
  • React
  • Styled Components
  • Yup
  • Formik
  • Redux
  • Node JS
  • Sequelize
  • Jest
  • MySQL

O time de Front-ends utilizou JavaScript, CSS, React, Styled Components e Redux. A linguagem de marcação de texto escolhida foi HTML.

O time de Back-ends utilizou Node.js, o framework Express, o ORM Sequelize.

Para criptografia de senhas, o bcriptjs e para token, o padrão de autenticação JWT.

O banco de dados utilizado foi o MySql e para sua criação e população, Migrations, conforme padrão da documentação.

Os testes foram efetuados com Jest.

Foram criados diferentes ambientes para desenvolvimento, teste e produção.

Todo o código foi baseado na arquitetura Model-View-Controller (MVC) e modelagem Domain Driven Design (DDD).

O Deploy back-end foi efetuado por meio do aplicativo Heroku.

Equipe 👑

O projeto foi desenvolvido por

Front-ends:
Back-ends:
Product Designers
  • Ariane Hart
  • Bruna Silva
  • Priscila Alves de Araujo

💜 Projeto realizado no decorrer de três semanas de empenho do grupo 7 - Desafio Chefão (Gama Academy) 👽

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages