Este é o CardFácil, um projeto desenvolvido para praticar e aplicar conceitos de desenvolvimento web. A aplicação simula uma plataforma para criação e visualização de cardápios digitais.
O desenvolvimento deste projeto foca na aplicação prática dos seguintes tópicos:
- Backend: Criação de APIs RESTful com Node.js e Express.js, incluindo roteamento, middlewares e lógica de servidor.
- Frontend: Renderização de páginas no servidor com Handlebars.js, manipulação do DOM com JavaScript e estilização com CSS.
- Banco de Dados: Operações CRUD e interação com um banco de dados SQLite usando
better-sqlite3. - Autenticação: Implementação de cadastro, login e gerenciamento de sessões.
- Upload de Arquivos: Tratamento de uploads de imagens.
- Validação de Dados: Validações no cliente e no servidor.
Como exercício prático, algumas funcionalidades foram desenvolvidas, por exemplo:
- Sistema de cadastro e login para administradores de cardápios.
- Gerenciamento de sessão de usuário.
- Formulário para adição de novos pratos, incluindo upload de imagem.
- Renderização condicional de elementos no frontend (Handlebars) com base no status de login.
- Notificações (toasts) para feedback de ações.
- Backend: Node.js, Express.js
- Frontend: HTML, CSS (com Variáveis CSS), JavaScript (Vanilla)
- Template Engine: Handlebars.js (com
express-handlebars) - Sessões:
express-session(utilizandoconnect-better-sqlite3para persistência em SQLite) - Uploads:
multiparty - Banco de Dados: SQLite (através da biblioteca
better-sqlite3) - Ícones: Font Awesome
Para configurar e executar o projeto em um ambiente de desenvolvimento local:
- Node.js (versão LTS recomendada)
- npm (geralmente incluído com o Node.js)
-
Clone o repositório:
git clone https://github.com/Adiells/cardEasy cd cardFacil -
Instale as dependências:
npm install
-
Configuração do Banco de Dados (SQLite - arquivo
.db):- O projeto utiliza
better-sqlite3para interagir com um arquivo de banco de dados SQLite (com extensão.db). - No código de conexão com o banco (geralmente onde você instancia
new Database('caminho/do/arquivo.db')), o arquivo.dbserá criado automaticamente se não existir, na primeira vez que a aplicação tentar acessá-lo. - Estrutura das Tabelas: [Se você tiver um script SQL (ex:
schema.sql) para definir a estrutura das tabelas, mencione aqui como executá-lo. Por exemplo: "Para criar as tabelas, você pode usar um cliente SQLite para executar os comandos emschema.sqlno arquivo.dbgerado, ou se houver um script de inicialização comonode scripts/init-db.js, execute-o."]
- O projeto utiliza
-
Variáveis de Ambiente (se aplicável):
- Se um arquivo
.env.exampleexistir, copie-o para.enve preencha as variáveis necessárias, comoSESSION_SECRETe o caminho para o seu arquivo de banco de dados.
PORT=3000 SESSION_SECRET='seu_segredo_aqui_bem_seguro' DB_PATH='./nome_do_seu_banco.db' # Exemplo de caminho para o arquivo .db
- Se um arquivo
-
Inicie o servidor:
node index.js
(Se você tiver um script
startconfigurado no seupackage.jsonpara rodarnode index.js, você também poderá usarnpm start.)A aplicação estará acessível em:
http://localhost:3000(ou na porta configurada).
Este projeto está em desenvolvimento como parte de um contínuo aprendizado.
- Implementado: [Ex: Autenticação de usuários, funcionalidade básica de adição de pratos com
better-sqlite3]. - Planejado para estudo futuro: [Ex: Funcionalidades de edição/exclusão usando
better-sqlite3, melhorias na API, implementação de testes, deploy].
O código-fonte está disponível para exploração e como referência para estudos em desenvolvimento web.