Skip to content

QuickMart é um projeto multiplataforma para um minimercado fictício. Esse website é a parte principal do projeto da Feira Tecnológica da Etec da Zona Leste de 2024.

Notifications You must be signed in to change notification settings

neoRandom/quickmart-website

Repository files navigation

QuickMart Website - Projeto Multiplataforma

"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

Sumário

Guia de instalação

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 comando git clone https://github.com/neoRandom/quickmart-website.git. Veja a Nota 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)
  • Configurar um arquivo .env (variáveis de ambiente) na pasta config/, 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 pasta htdocs/quickmart.

Tecnologias Utilizadas

  • 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.

Documentação

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

Diferenciais

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.

Lista de funcionalidades (To-do list)

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

Licença

Esse repositório atualmente não possui licenças externas.

About

QuickMart é um projeto multiplataforma para um minimercado fictício. Esse website é a parte principal do projeto da Feira Tecnológica da Etec da Zona Leste de 2024.

Topics

Resources

Stars

Watchers

Forks