- Descrição
- Tecnologias Utilizadas
- Requisitos
- MER - Modelo Entidade Relacionamento
- Instruções de Configuração Backend - com Docker
- Instruções de Configuração Backend - com Docker apenas no banco de dados
- Instruções de Configuração Backend - sem Docker
- Instruções de Configuração Frontend
Este projeto é uma aplicação de controle de vendas para um e-commerce, onde é possível cadastrar categorias e produtos, realizar vendas e acompanhar o histórico de vendas através de um dashboard.
- Fluxo de Usuário Comum: Após o login, o usuário será levado para a tela inicial onde serão listados os produtos disponíveis para compra.
- Fluxo de Administrador: Após o login, o administrador será levado ao dashboard em
/admin
, que mostrará o histórico de vendas, vendas por categorias, produtos mais vendidos, cadastro de categorias e produtos, além da listagem dos mesmos.
- Angular
- FastAPI
- SqlAlchemy
- PrimeNG
- Alembic
- PrimeFlex
- Docker
- Docker, Docker Compose, Python 3.10, Node.js, npm
O arquivo XML para importação no draw.io (app.diagrams.net): MER.xml
-
Clone o repositório:
git clone https://github.com/brenogonzaga/desafio-ibbi
-
Rode o comando para iniciar os serviços:
docker-compose up --build
-
A aplicação ficará disponível em
http://localhost:4200
.Aguarde alguns segundos para que o backend esteja disponível, pois o Docker realiza verificações de saúde (health check).
-
Clone o repositório:
git clone https://github.com/brenogonzaga/desafio-ibbi
-
Rode o comando para iniciar os serviços:
docker-compose -f docker-compose.db.yml up --build
-
Navegue até o diretório
backend
:cd backend
-
Crie um ambiente virtual e ative-o:
python -m venv venv .\venv\Scripts\activate
python3 -m venv venv source venv/bin/activate
-
Instale as dependências:
pip install -r requirements.txt
-
Crie um arquivo
.env
na raiz do diretóriobackend
com as seguintes variáveis de ambiente:# DATABASE SQLALCHEMY_DATABASE_URL = "postgresql://ibbi_user:ibbi_password@localhost:5445/ibbi_db" # TOKEN AND BCRYPT SECRET_KEY = "FYd2jfflM9uc95k8l6Y1JfhWbcxGALJmLA30qiBDvSqS" ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES = 30
-
Execute as migrações do banco de dados:
alembic upgrade head
Ao executar o comando acima, será criado um usuário admin com as seguintes credenciais:
- Usuário: ibbi_admin
- Senha: ibbi_password
Será também criado um usuário com as seguintes credenciais:
- Usuário: user1
- Senha: user1_password
Também serão criadas algumas seeds para testes.
Obs.: Caso não queira criar as seeds, apague os dados de seeds em
backend/alembic/versions/7d8f176b73f7_initial.py
e execute o comandoalembic upgrade head
novamente. -
Inicie a aplicação:
uvicorn app.main:app --reload
-
Navegue até o diretório
backend
:cd backend
-
Crie um ambiente virtual e ative-o:
python -m venv venv .\venv\Scripts\activate
python3 -m venv venv source venv/bin/activate
-
Instale as dependências:
pip install -r requirements.txt
-
Crie um arquivo
.env
na raiz do diretóriobackend
com as seguintes variáveis de ambiente:# DATABASE SQLALCHEMY_DATABASE_URL = "postgresql://seu_user:seu_password@localhost:seu_host/seu_Db" # TOKEN AND BCRYPT SECRET_KEY = "sua_chave_secreta" ALGORITHM = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES = 30
Lembre-se, você deve criar um banco de dados no PostgreSQL e substituir as variáveis de ambiente acima.
-
Execute as migrações do banco de dados:
alembic upgrade head
Ao executar o comando acima, será criado um usuário admin com as seguintes credenciais:
- Usuário: ibbi_admin
- Senha: ibbi_password
Será também criado um usuário com as seguintes credenciais:
- Usuário: user1
- Senha: user1_password
Também serão criadas algumas seeds para testes.
Obs.: Caso não queira criar as seeds, apague os dados de seeds em
backend/alembic/versions/7d8f176b73f7_initial.py
e execute o comandoalembic upgrade head
novamente. -
Inicie a aplicação:
uvicorn app.main:app --reload
-
Navegue até o diretório
frontend
:cd frontend
-
Instale as dependências:
npm install
-
Inicie a aplicação:
ng serve
A aplicação ficará disponível em
http://localhost:4200
.