Blog onde é possível realizar posts de imgens ou textos. O design é bem simples e prático, o usuário pode adicionar e excluir posts.
Álbum de Fotos com MongoDB
É um sistema onde o usuário pode criar um álbum de fotos, colocar uma capa específica em cada álbum e adicionar imagens.
Sistema de Controle de Estacionamento com MongoDB
É um sistema onde o usuário pode criar, editar e excluir uma reserva de uma vaga de estacionamento. Há também um gerênciamento de usuários.
Sistema Super Mercado Simples com MongoDB
É um sistema onde o usuário pode gerenciar os produtos em estoque, usuários, clientes, fornecedores e relatórios de vendas em um certo período.
Soft Skills
Trabalho em Grupo;
Boa Comunicação;
Resolução de Problemas;
Sempre em Busca de Aprender;
Foco no Melhor Resultado;
Dedicação até o Fim;
Hard Skills
NodeJS (básico);
JavaScript puro (básico);
MongoDB, MySQL, PostgreSQL (básico);
Versionamento Git (básico);
Algoritmos e Estruturas de Dados (básico);
HTML, CSS (Intermediário);
Inglês (Intermediário);
📝 Sistema de Blog com Upload de Imagens
🛠️ Stack Tecnológico
JavaScript VanillaNode.js + ExpressMongoDB + MongooseMulterCORSFetch API
📋 Descrição do Sistema
Sistema full-stack CRUD para criação e gerenciamento de posts com upload de imagens, desenvolvido com arquitetura cliente-servidor e banco de dados NoSQL.
🏗️ Arquitetura Back-end
Express.js: Framework para criação da API RESTful
Mongoose: ODM para modelagem de dados no MongoDB
Multer: Middleware para upload e redirecionamento de arquivos
CORS: Configuração de políticas de acesso entre origens
Path: Manipulação de caminhos de arquivos no servidor
✨ Funcionalidades Implementadas
📤 Upload Inteligente
Middleware Multer gerencia uploads, redirecionando imagens para diretório dedicado (/uploads)
🗃️ Armazenamento Estruturado
Mongoose define schemas para persistência eficiente no MongoDB
🔗 API RESTful
Endpoints completos: GET, POST, DELETE com validações
🛡️ Segurança
CORS configurado para controle de acesso e proteção de recursos
💡 Destaques do Código
const Post = require('./models/Post');
//Confira o armazenamento de arquivos no disco utilizando o "multer".
//O objeto "multer.diskStorage" permite configurar onde e como os arquivos devem ser armazenados no servidor.
const storage = multer.diskStorage({
//Determina o diretório onde os arquivos devem ser salvos.
destination: function (req, file, cb) {
//"callback" é usado para especificar o destino dos arquivos.
//O primeiro parâmetro é um possível erro (null se não houver erro), e o segundo é o caminho do diretório
cb(null, "uploads");
},
//Determina o nome do arquivo dentro do diretório de destino.
//Também é chamada sempre que um arquivo é recebido.
filename: function (req, file, cb) {
//Gera um sufixo único no arquifo para evitar asobreposição de nomes.
// Data atual - numero aleatório entre 0 e 1bi
//1e9 é conotação para 1 x 10^9 = 1bi
//Math.round => arredonda para o inteiro mais próximo.
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9)
//Primeiro parâmetro define um possível erro, o segundo o m=nome do arquivo.
cb(null, uniqueSuffix + "-" + file.originalname)
}
});
//Instâcia com a configuração especificada acima. Será usada em rotas que recebem arquivos
const upload = multer({ storage });
⚡ Desafios e Soluções
Sincronização BD/FS: Coordenação entre registros no MongoDB e arquivos no sistema
Validação de FormData: Implementação de verificações no cliente e servidor
Gestão de CORS: Configuração para permitir comunicação segura entre domínios
Tratamento de Erros: Sistema robusto de fallback e feedback ao usuário
Node.jsExpressMongoDBMongooseJavaScript VanillaMulterREST API
Visão Geral do Projeto
Sistema completo de gerenciamento de álbuns de fotos com frontend web e backend API. A aplicação permite criar álbuns, adicionar fotos, visualizá-las em uma galeria interativa e baixar imagens individualmente.
Arquitetura do Sistema
Frontend: HTML/JavaScript puro (sem frameworks)
Backend: Node.js com Express
Banco de Dados: MongoDB com Mongoose ODM
Armazenamento: Sistema de arquivos local com Multer
Sistema de Gerenciamento de Estacionamento Inteligente
📋 Visão Geral
Um sistema backend completo para gestão de estacionamentos, desenvolvido com Node.js, Express e MongoDB. A aplicação permite controle de usuários, cadastro de veículos e gerenciamento de reservas de vagas com lógica de conflitos de horário.
🎯 Funcionalidades Principais
👥 Módulo de Usuários
Cadastro e autenticação de usuários com verificação de e-mail duplicado
CRUD completo (Criar, Ler, Atualizar, Deletar)
Tipos de usuário com diferentes níveis de acesso
Sistema de login com validação de credenciais
🚗 Módulo de Veículos
Cadastro de veículos com placa, modelo, cor e proprietário
Validação de placa para evitar duplicidades
Busca inteligente por placa (case-insensitive)
Gestão completa dos veículos cadastrados
📅 Módulo de Reservas
Reserva de vagas com data, hora e vaga específica
Prevenção de conflitos - sistema detecta automaticamente reservas sobrepostas
Finalização de reservas com cálculo automático de valor (R$5/hora)
Relatórios flexíveis com filtros por data, placa e proprietário
Busca por dia específico para visualização de ocupação
🛠️ Tecnologias Utilizadas
Backend: Node.js + Express
Banco de Dados: MongoDB com Mongoose ODM
Middleware: CORS, Body-parser
Arquitetura: REST API com endpoints organizados
🚀 Destaques Técnicos
Lógica de Negócio Avançada
Sistema anti-conflito de reservas que prevê sobreposições de horários em uma mesma vaga.
Cálculo Automático de Valores
Cálculo preciso do tempo de estacionamento com arredondamento para cima e tarifa de R$5 por hora.
Sistema de Relatórios
Filtros por intervalo de datas
Busca por placa ou proprietário
Fallback para últimos 7 dias quando datas não informadas
Expressões regulares para busca parcial (case-insensitive)
🔧 API Endpoints
Usuários
POST /api/usuarios/cadastrar - Cadastro
POST /api/usuarios/logar - Login
GET /api/usuarios - Listar todos
GET /api/usuarios/:id - Buscar por ID
PUT /api/usuarios/:id - Atualizar
DELETE /api/usuarios/:id - Excluir
Veículos
POST /api/veiculos/cadastrar - Cadastro
GET /api/veiculos - Listar (com filtro opcional por placa)
GET /api/veiculos/:id - Buscar por ID
PUT /api/veiculos/:id - Atualizar
DELETE /api/veiculos/:id - Excluir
Reservas
POST /api/reservas - Criar reserva
GET /api/reservas - Listar por data específica
GET /api/reservas/relatorio - Gerar relatório com filtros
GET /api/reservas/:id - Buscar reserva
PUT /api/reservas/finalizar/:id - Finalizar reserva (cálculo de valor)
DELETE /api/reservas/:id - Cancelar reserva
⚙️ Configuração e Execução
# Instalação
npm install express cors mongoose body-parser
# Execução
node server.js
# Servidor rodando na porta 3000
🛡️ Tratamento de Erros
Status codes apropriados (200, 201, 400, 404, 500)
Mensagens amigáveis para o cliente
Logs detalhados no console para debugging
Validações em múltiplas camadas
📈 Impacto e Benefícios
Redução de conflitos em reservas de vagas
Automatização completa do cálculo de valores
Relatórios estratégicos para gestão do estacionamento
Interface RESTful para integração com frontend ou apps mobile
Este é um sistema completo de gestão empresarial desenvolvido com Node.js + Express e MongoDB, projetado para gerenciar múltiplos aspectos de uma empresa, incluindo controle de estoque, vendas, clientes, fornecedores e usuários. O sistema possui uma interface web integrada que se comunica com a API através do mesmo servidor.
🏗️ Arquitetura Técnica
Backend: Node.js + Express.js
Banco de Dados: MongoDB (com Mongoose ODM)
Frontend: HTML, CSS e JavaScript puro (vanilla)
Comunicação: API RESTful com JSON
Porta: 3000
CORS: Habilitado para todas as origens
📊 Módulos Principais
1. Módulo de Autenticação e Usuários
Login: Sistema de autenticação simples (email/senha)
Gestão de Usuários: CRUD completo com validação de email único
2. Módulo de Fornecedores
Gestão completa de fornecedores
Cadastro com nome, telefone e email
Validação de nomes duplicados
3. Módulo de Clientes
Gestão de clientes com CPF, nome, telefone e endereço
Validação de CPF único
Formatação automática de CPF (XXX.XXX.XXX-XX)
4. Módulo de Produtos
Controle de estoque avançado
Cadastro com código, nome, descrição, preço e quantidade
Validação de código e nome únicos
Associação com fornecedores
5. Módulo de Vendas
Processo completo de vendas
Carrinho de compras em tempo real
Cálculo automático de totais e subtotais
Redução automática do estoque
6. Módulo de Relatórios
Sistema avançado de relatórios de vendas
Filtro por período de datas (padrão: últimos 7 dias)
Filtro por fornecedor, produto e cliente
🔄 Funcionalidades Especiais
Processo de Venda
Busca de produtos por código
Adição ao carrinho com quantidade ajustável
Cálculo automático em tempo real
Verificação de estoque disponível
Finalização com redução automática do estoque
Interface Web Integrada
Páginas incluídas:
login.html - Autenticação de usuários
telaPrincipal.html - Dashboard principal
menu.html - Menu de configurações
listaUsuarios.html - Gestão de usuários
cadastroUsuario.html - Formulário de usuários
Páginas similares para fornecedores, produtos, clientes
🔗 Rotas Principais da API
POST /login - Autenticação
POST /usuarios - Criar usuário
GET /usuarios - Listar todos
POST /vendas - Registrar venda
GET /relatorio/vendas - Relatório filtrado
💡 Tecnologias e Práticas Utilizadas
MongoDB Relationships
Express Middleware
Mongoose Schemas
Vanilla JavaScript
Error Handling robusto
🎯 Casos de Uso
Varejista pequeno/médio: Controle completo de estoque e vendas
Restaurante: Gestão de fornecedores e produtos
Loja física: PDV (Ponto de Venda) integrado
Administrador: Relatórios de desempenho
⚡ Características de Desempenho
Single Page Application (SPA-like)
Atualizações em tempo real no carrinho
Buscas instantâneas com filtro
Interface responsiva e intuitiva
🔧 Requisitos para Execução
npm install express cors mongoose
node server.js
# Acessar: http://localhost:3000/login.html