O Toughts é uma aplicação web desenvolvida para permitir que utilizadores registados partilhem os seus pensamentos e visualizem publicações de outros membros. O sistema conta com autenticação completa, gestão de sessões e operações CRUD (Criar, Ler, Atualizar e Eliminar) de pensamentos.
-
Autenticação de Utilizadores: Registo e login com encriptação de palavras-passe via
bcryptjs. -
Gestão de Pensamentos:
-
Criar novos pensamentos.
-
Editar e remover pensamentos próprios através de um Dashboard exclusivo.
-
Visualização pública de todos os pensamentos na página inicial.
-
Filtros e Ordenação:
-
Procura de pensamentos por palavras-chave.
-
Ordenação de resultados por data (mais recentes ou mais antigos).
-
Sessões Persistentes: Utilização de
session-file-storepara manter o utilizador ligado mesmo após reiniciar o servidor.
- Backend: Node.js com Express.
- Base de Dados: MySQL gerido pelo ORM Sequelize.
- Template Engine: Handlebars para renderização dinâmica das páginas.
- Segurança:
bcryptjspara hashing de passwords eexpress-sessionpara controlo de acesso. - Estilização: CSS puro e Bootstrap Icons.
O projeto segue o padrão MVC (Model-View-Controller):
/controllers: Lógica de negócio (Autenticação e Pensamentos)./models: Definição das tabelasUsereToughte as suas relações./routes: Definição dos caminhos e permissões da aplicação./views: Interface do utilizador construída em Handlebars./public: Ficheiros estáticos (CSS, imagens).
- Clonar o repositório:
git clone <url-do-repositorio>
- Instalar as dependências:
npm install
- Configurar Variáveis de Ambiente:
Crie um ficheiro
.envna raiz do projeto com as seguintes chaves:
DB_NAME=toughts
DB_USER=seu_utilizador
DB_PASSWORD=sua_senha
DB_HOST=localhost
AUTH_TOKEN=seu_segredo_de_sessao
- Executar a aplicação:
npm start
O servidor será iniciado na porta 3000.