"Não importa a aparência do carro, sem um bom motor ele só serve para impressionar quem vê sua garagem"
O QuickMart Website é um dos dois sistemas para o projeto interdisciplinar da Feira Tecnológica da Etec da Zona Leste (2024), que tem como objetivo criar um sistema multiplataforma para uma empresa fictícia.
Meu objetivo principal foi desenvolver um sistema de forma profissional, visando utilizar as técnicas e tecnologias necessárias para tal, além de um código limpo, escalável e legível. Tenho como meta um sistema seguro, escalável, profissional e de fácil manutenção.
Link para o outro sistema do projeto interdisciplinar: Projeto Minimercado
- Guia de instalação
- Tecnologias Utilizadas
- Documentação
- Diferenciais
- To-do list
- Desenvolvedores
- Licença
Este guia de instalação é para usuários de Windows.
Nota 1: O projeto foi feito majoritariamente em Linux, para ver o guia de instalação para Linux, clique aqui.
Pré-requisitos:
- XAMPP/WAMPP instalado.
- NodeJS e NPM instalados.
- Conhecimento básico com Shell/CLI (CMD do Windows).
- Conhecimento básico com phpMyAdmin.
- Ter a pasta do projeto em sua máquina, seja baixando o
.zip
ou usando o comandogit clone https://github.com/neoRandom/quickmart-website.git
. Veja aNota 2
dessa seção.
Passo a Passo:
- Iniciar o Apache e o MySQL por meio do Painel de Controle do XAMPP.
- Carregar o Banco de Dados no phpMyAdmin.
- Primeiro o Schema (estrutura) do arquivo (
./database/schema.sql
). - Em seguida, os registros (dados) do arquivo (
./database/data.sql
). (opcional)
- Primeiro o Schema (estrutura) do arquivo (
- Configurar um arquivo
.env
(variáveis de ambiente) na pastaconfig/
, se baseando no arquivo de exemplo.env.example
. - Instalar os módulos do Node usando o comando
npm install
. - Executar o comando principal de execução (Windows)
npm run dev:w
. - Abrir em um navegador a URL
http://localhost/quickmart/public/admin
link.
Nota 2: Não é necessário baixar o projeto na pasta
htdocs
, pois o comando principal de execução já adiciona todos os arquivos necessários para o website na pastahtdocs/quickmart
.
- Figma: Design das páginas.
- Bash: Scripts para automação.
- Postman: Teste dos endpoints e requisições.
- XAMPP (não incluído na lista visual): Server Tech Stack utilizado no desenvolvimento.
Os diagramas relacionados ao Banco de Dados podem ser encontrados aqui. (Link incompleto)
Grande parte do funcionamento do sistema já é descrito no próprio código (com Self-Documenting Code, Docstrings, entre outros), mas uma visão completa pode ser encontrada na pasta docs, clique para saber mais.
Entre os elementos da documentação, estão incluidos:
- Descrição do projeto (features e diferenciais)
- Guia de instalação
- Estrutura de pastas (baseado em Laravel)
- Arquitetura geral
- Utilização das tecnologias
- To-do list completa
- Fluxo do código
- Lista de endpoints
- Protocolos de segurança
- Referências de estudo
Para ver a lista completa, clique aqui.
Nota: Essa lista é principalmente em relação a outros trabalhos da mesma Feira Tecnológica, não refletindo práticas comuns no mercado (autenticação com hash e salt, por exemplo).
- Scripts (tanto para Windows quanto Linux) para desenvolvimento mais dinâmico.
- Renderizador de HTML baseado em TypeScript (mini-micro-framework pessoal).
- Sistema de requisições baseado em endpoints.
- Uso de environment variables (.env) para segurança de dados do servidor.
- Uso de hash (SHA256) e salt (random unsigned 32-bits number) para as credenciais.
- Uso de JSON Web Tokens (JWT) para manter a sessão do usuário.
- Para fins de aprendizado, o código de todos os componentes foram manualmente feitos do zero.
Para ver a lista completa, clique aqui.
-
Banco de Dados
- Criação da estrutura (schema)
- Criação dos dados (data)
-
Back-end
- Autoloader
- Controllers
- Database (classe de Conexão)
- Model (classes de modelagem)
- Utilities (classes para lidar com)
-
Front-end
- Assets
- TypeScript
- TailwindCSS/CSS
- Dashboard
- Login
-
Public
- Definir os endpoints
- Configurar os endpoints
-
Testes
Esse repositório atualmente não possui licenças externas.