Este projeto é uma aplicação de loja online que utiliza TypeScript, Node.js, React, MySQL com Sequelize, Stripe para pagamentos e Docker para containerização. A aplicação é composta por um backend que gerencia a lógica de negócios e a comunicação com o banco de dados, e um frontend que oferece uma interface de usuário interativa.
-
TypeScript: Usado tanto no frontend quanto no backend para proporcionar um desenvolvimento mais seguro e eficiente.
-
Node.js: Plataforma para construir o backend da aplicação.
-
Express.js: Framework para Node.js utilizado para criar a API RESTful.
-
React: Biblioteca JavaScript para construir a interface do usuário no frontend.
-
MySQL: Banco de dados relacional usado para armazenar os dados da aplicação.
-
Sequelize: ORM (Object-Relational Mapping) para interagir com o banco de dados MySQL de maneira mais fácil.
-
Stripe: Plataforma de pagamento online integrada para gerenciar transações.
-
Docker: Ferramenta de containerização para garantir que a aplicação seja executada de forma consistente em diferentes ambientes.
Antes de começar, você precisará ter os seguintes requisitos:
-
Docker
-
Node.js
-
MySQL
-
Uma conta na plataforma de pagamentos Stripe
- Crie um banco de dados MySQL para a aplicação.
- Configure as variáveis de ambiente para conectar ao banco de dados no arquivo .env no diretório backend.
Exemplo do arquivo .env:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=yourpassword
DB_NAME=onlinestore
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
- Navegue até o diretório raiz do backend.
- Execute o comando abaixo para construir e iniciar os contêineres Docker:
docker compose up -d --build
- Frontend:
- Navegue até o diretório frontend.
- Instale as dependências:
npm install
- Inicie o servidor de desenvolvimento:
npm start
Se preferir executar localmente sem Docker, siga os passos abaixo:
-
Navegue até o diretório backend.
-
Instale as dependências:
npm install
- Inicie o servidor:
npm start
O servidor backend estará disponível em http://localhost:3001.
- Navegue até o diretório frontend.
- Instale as dependências:
npm install
- Inicie o servidor de desenvolvimento:
npm start
- Autenticação: Rotas para login, registro, recuperação de senha.
- Gerenciamento de Usuários: CRUD completo para usuários.
- Produtos: CRUD completo para produtos.
- Pedidos: Criação e visualização de pedidos.
- Pagamentos: Integração com Stripe para gerenciar pagamentos.
- Home Page: Listagem de produtos disponíveis.
- Página de Produto: Visualização detalhada de cada produto.
- Carrinho de Compras: Adicionar, remover e atualizar itens no carrinho.
- Checkout: Processo de pagamento utilizando Stripe.
- Perfil do Usuário: Visualização e atualização de informações do usuário e histórico de pedidos.
- Pagamento concluído
4242 4242 4242 4242
- Pagamento precisa de autenticação
4000 0025 0000 3155
- Pagamento recusado
4000 0000 0000 9995