ApoloCRUD é uma aplicação web que implementa as operações básicas de CRUD (Create, Read, Update, Delete) utilizando o padrão de arquitetura MVC. A aplicação é construída com Node.js e utiliza o Prisma como ORM para a interação com o banco de dados.
- Visão Geral
- Tecnologias Utilizadas
- Instalação
- Uso
- Estrutura do Projeto
- Funcionalidades
- Contribuição
- Licença
- Contato
- Referências
Este projeto foi desenvolvido para gerenciar os produtos de uma loja fictícia de roupas, chamada Apolo, de maneira eficiente. Ele utiliza o padrão MVC para separar as responsabilidades e facilitar a manutenção e escalabilidade do código.
- Moldel: Gerencia a lógica de dados e define como os dados são armazenados.
- View: Exibe os dados para o usuário e envia comandos para o controlador.
- Controller: Interpreta as entradas do usuário e mapeia para chamadas no modelo.
- Node.js & Express: Base da aplicação e gerenciamento de rotas e middlewares.
- Prisma: ORM para gerenciamento e interação com o banco de dados.
- EJS: Motor de templates para renderização de views do lado do servidor.
- Tailwind CSS: Framework de CSS utilitário para estilização.
- Webpack: Empacotador de módulos para o JavaScript e CSS.
- Babel: Transpilador para escrever código moderno compatível com versões antigas do JavaScript.
- Nodemon: Ferramente de desenvolvimento para reiniciar automaticamente o servidor.
- bcrptjs: Biblioteca para hashing de senhas.
- helmet: Middleware para segurança HTTP.
- dayjs: Biblioteca para manipulação de datas.
Para a instalação do projeto é necessário alguns pré-requisitos:
- Possuir o Git instalado em sua máquina, se não, acesse: https://www.git-scm.com/downloads
- Possuir o Node.js instalado em sua máquina, se não, acesse: https://nodejs.org/en/download/package-manager
- Possuir NPM instalado.
- Alguma IDE ou editor de código de sua preferência (VS Code, IntelliJ, etc).
- Clone o repositório do projeto:
git clone "https://github.com/jonassantoss/apoloCRUD"- Navegue até o diretório do projeto:
cd apoloCRUD- Instale as dependências:
npm installO uso do projeto é bem simples, basta apenas seguir os passos abaixo
npx prisma migrate deploy # cria o arquivo do banco de dados products.db
npx prisma db seed # preenche o banco de dados do projeto com informações de produtos ficticíos e o login de acesso
npm run start # inicia o projetoNOTA: Apenas a página inicial está liberada, para usufruir das outras funcionalidades é necessário realizar o login com as informações a seguir:
- email: admin@gmail.com
- senha: senha@123
└── 📁apoloCRUD
└── 📁frontend
└── 📁assets
└── 📁css
└── style.css
└── output.css
└── main.js
└── utils.js
└── 📁prisma
└── 📁migrations
└── 📁20240524224252_migration_1
└── migration.sql
└── 📁20240817202123_change_product_model_name
└── migration.sql
└── migration_lock.toml
└── dev.db
└── products.db
└── schema.prisma
└── seed.js
└── 📁public
└── 📁assets
└── 📁js
└── bundle.js
└── bundle.js.map
└── 📁src
└── 📁controllers
└── homeController.js
└── loginController.js
└── productController.js
└── 📁middlewares
└── middlewares.js
└── 📁models
└── Product.js
└── 📁routes
└── homeRoute.js
└── loginRoute.js
└── productRoute.js
└── 📁utils
└── seed.js
└── 📁views
└── 📁assets
└── chevronLeft.ejs
└── chevronRight.ejs
└── doubleChevronLeft.ejs
└── doubleChevronRight.ejs
└── searchIcon.ejs
└── 📁components
└── 📁table
└── headerCell.ejs
└── index.ejs
└── tableCell.ejs
└── header.ejs
└── messages.ejs
└── 📁partials
└── footer.ejs
└── head.ejs
└── 404.ejs
└── index.ejs
└── login.ejs
└── product.ejs
└── server.js
└── .gitignore
└── LICENSE
└── package-lock.json
└── package.json
└── README.md
└── tailwind.config.js
└── webpack.config.js
- frontend/assets: Contém os arquivos estáticos como CSS e JavaScript.
- prisma: Contém o banco de dados SQLite e as migrações.
- public/assets/js: Contém os arquivos JavaScript gerados pelo Webpack.
- src/controllers: Contém os controladores que processam as requisições e retornam as respostas.
- src/middlewares: Contém os middlewares utilizados na aplicação.
- src/models: Contém os modelos de dados.
- src/routes: Contém as definições de rotas.
- src/utils: Contém utilitários e scripts, como seeds de banco de dados.
- src/views: Contém as views EJS que são renderizadas como HTML.
- Criar: Permite a criação de novos produtos.
- Ler: Permite a visualização de produtos existentes.
- Atualizar: Permite a atualização das informações de produtos.
- Deletar: Permite a exclusão de produtos.
/: Página inicial, retorna todos os produtos./produtos/novo: Página para a criação de produtos./produtos/novo: Criação de um produto./produtos/editar/:id: Página para a atualização dos dados de um produto./produtos/editar/:id: Atualização de um produto./produtos/deletar/:id: Exclusão de um produto.
- Faça um fork do projeto.
- Crie uma branch para sua feature (
git chechout -b feature/nova-feature). - Commit suas mudanças (
git commit -m 'Adiciona nova feature'). - Faça push para a branch (
git push origin feature/nova-feature). - Abra um Pull Request.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.
Se você tiver alguma dúvida ou sugestão, entre em contato:
- Acesse minhas redes socias e mande uma mensagem
- Ou mande um e-mail para jonassoares.live@gmail.com