Skip to content

joaocastro95/toughts

Repository files navigation

📰 Toughts - NODE

O Toughts é um projeto desenvolvido sobre orientação de Node.js e organização estrutual MVC em JavaScript durante o curso oferecido pela Hora de Codar. Ele permite que os usuários criem contas, gerencie suas contas e adicionem e removam pensamentos proporcionando uma interface interativa e dinâmica. O código implementa uma lógica para gerenciar as pensamentos, garantindo que a interface seja atualizada automaticamente conforme o usuário interage com a aplicação.


🌐 Interface Web

A página inicial apresenta uma interface escura e moderna, focada na exibição de pensamentos públicos criados por usuários da plataforma. A navegação é limpa, com elementos bem espaçados e destaque para o conteúdo textual.

Página Principal


🔍 Testando Localmente

Para testar o projeto localmente, siga estas etapas:

  1. Abra o terminal (ou prompt de comando) e execute o seguinte comando para clonar o repositório:

    git clone https://github.com/joaocastro95/toughts.git

  2. Após clonar o repositório, abra o terminal e vá até a pasta clonada.

    cd caminho/para/a/pasta/do/projeto

  3. Instale as dependências.

npm install

  1. Inicialize o projeto.

    npm start

  2. Abra a porta no navegador.

    http://localhost:3000/

Isso abrirá a interface web do projeto. Se o servidor estiver funcionando corretamente, você verá a página principal onde poderá utilizar o "Toughts".

📝 Observação

Se você encontrar algum problema ou a página não carregar, consulte a seção de Autores e entre em contato conosco.


🚀 Estrutura do Projeto

Mantivemos uma estrutura organizada para facilitar a manutenção e a compreensão do código:

⚙️Backend

  • controllers/

    • AuthController.js: Controlador responsável pelas ações de login, logout e registro de usuários.
    • ToughtController.js: Lógica de CRUD dos pensamentos (criar, listar, editar, deletar, dashboard, busca).
  • db/

    • conn.js: Configuração da conexão com o banco de dados utilizando Sequelize.
  • helpers/

    • auth.js: Middleware auxiliar para proteger rotas e verificar autenticação de usuários.
  • models/

    • Tought.js: Modelo Sequelize que representa os pensamentos.
    • User.js: Modelo Sequelize que representa os usuários.
  • routes/

    • authRoutes.js: Define as rotas para login e registro de usuários.
    • toughtsRoutes.js: Define as rotas para criação, edição, exclusão e exibição de pensamentos.
  • index.js
    Arquivo principal da aplicação. Inicializa o servidor Express, configura Handlebars, sessões, middlewares e sincroniza os modelos com o banco de dados.

🎨Frontend

  • views/

    • auth/

      • login.handlebars: Página de login.
      • register.handlebars: Página de registro.
    • layouts/

      • main.handlebars: Template base utilizado pelas demais views com cabeçalho, rodapé e estrutura HTML principal.
    • toughts/

      • home.handlebars: Página inicial com listagem de pensamentos públicos, busca e ordenação.
      • dashboard.handlebars: Painel do usuário logado com seus próprios pensamentos.
      • create.handlebars: Formulário para criar novos pensamentos.
      • edit.handlebars: Formulário para editar pensamentos existentes.
  • public/css/

    • styles.css: Arquivo principal de estilos da aplicação.
  • public/img/

    • Pasta reservada para imagens usadas na interface (ícones, logos, etc).

Sessões

  • sessions/
    • Diretório utilizado para armazenar sessões da aplicação (dependente da configuração de sessão).

Configurações

  • .gitignore: Arquivo que define o que deve ser ignorado pelo Git (ex: node_modules, arquivos sensíveis, etc).
  • package.json: Arquivo de configuração do projeto Node.js com lista de dependências e scripts.
  • package-lock.json: Arquivo que registra as versões exatas das dependências instaladas.
  • README.md: Arquivo de documentação do projeto.
  • instalacoes.txt: Arquivo de anotações ou instruções internas relacionadas à instalação/configuração do projeto.

🚀 Tecnologias Utilizadas

Ferramenta Descrição
Node.js Ambiente de execução JavaScript backend
Express Framework minimalista para construção do servidor web
Express-Handlebars Engine de templates utilizada para renderização HTML
Sequelize ORM para modelagem e comunicação com o MySQL
MySQL Banco de dados relacional utilizado
bcryptjs Biblioteca para hash de senhas de forma segura
express-session Gerenciamento de sessões de usuários no servidor Express
connect-flash Mensagens temporárias armazenadas na sessão (flash messages)
express-flash Flash messages integradas ao Express
cookie-parser Middleware para manipulação de cookies HTTP
cookie-session Sessão baseada em cookies como alternativa leve ao express-session
session-file-store Armazenamento de sessões em arquivos locais
Nodemon Monitoramento automático e reinício do servidor durante o desenvolvimento
HTML5/CSS3 Estrutura e estilização das páginas
VS Code Editor de código utilizado
Windows Sistema operacional de desenvolvimento

📝 Autores


João Castro

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published