Skip to content

AgendaCom trata-se de uma agenda de contatos digital que gerencia, armazena e salva seus contatos. Ela conta um sistema de autenticação e segurança de senhas seguindo o padrão MVC.

Notifications You must be signed in to change notification settings

luanrramos/agenda-digital

Repository files navigation

Desafio - Aplicação AgendaCom

Texto Alternativoㅤㅤㅤㅤㅤㅤ Texto Alternativoㅤㅤㅤㅤㅤㅤ Texto Alternativoㅤㅤㅤㅤㅤㅤ Texto Alternativo

Tecnologias

Organização de pastas do Projeto

[AGENDA-MASTER]
├── frontend/
│   ├── assets/             # Arquivos estáticos para o frontend.
│   ├── main.js             # Arquivo JavaScript principal para o frontend.
│   └── node_modules/       # Diretório contendo dependências do projeto.
│
├── public/                 # Arquivos públicos acessíveis pelo cliente.
│
├── src/
│   ├── controllers/       
│   │   ├── contactController.js  # Controlador para lógica relacionada a contatos.
│   │   ├── homeController.js     # Controlador para lógica relacionada à página inicial.
│   │   └── loginController.js    # Controlador para lógica de login.
│   │
│   ├── middlewares/        
│   │   └── middleware.js   # Lógica de middleware.
│   │
│   ├── models/             # Diretório contendo os modelos de dados.
│   │   ├── ContactModel.js # Modelo de dados para contatos.
│   │   ├── HomeModel.js    # Modelo de dados para a página inicial.
│   │   └── LoginModel.js   # Modelo de dados para login.
│   │
│   └── views/              
│       ├── includes/       # Diretório contendo os templates das views.
│       │   ├── footer.ejs  # Template do rodapé.
│       │   ├── head.ejs    # Template do cabeçalho.
│       │   ├── messages.ejs# Template das mensagens.
│       │   └── nav.ejs     # Template da navegação.
│       │
│       ├── 404.ejs         # View da página de erro 404.
│       ├── contact.ejs     # View da página de contato.
│       ├── index.ejs       # View da página inicial.
│       ├── signIn.ejs      # View da página de login.
│       └── signUp.ejs      # View da página de cadastro.
│
├── .env                    # Arquivo de configuração de variáveis de ambiente.
├── .gitignore              # Arquivo de configuração do Git para ignorar arquivos e diretórios.
├── package-lock.json       # Arquivo de bloqueio de pacotes do NPM.
├── package.json            # Arquivo de configuração do NPM.
├── README.md               # Arquivo README do projeto (este arquivo).
├── routes.js               # Arquivo que define as rotas da aplicação.
├── server.js               # Ponto de entrada da aplicação, inicializa o servidor.
└── webpack.config.js       # Arquivo de configuração do Webpack.

Como rodar

instale as dependencias com npm install
crie um .env:

CONNECTIONSTRING=
# ex: CONNECTIONSTRING="mongodb://localhost:27017/meubancodedados"

Por fim, rode npm start para rodar o servidor na porta 3000.


Q.A

  1. Porque eu decidi utilizar essas tecnologias como parte da solução
  • Baseado nas orientações, utilizei Node e Express para o desenvolvimento de um back-end robusto. Para o banco de dados, optei pelo MongoDB, pois já possuo afinidade com ele e webpack para realizar o bundle dos arquivos. Essa abordagem me permitiu aplicar conhecimentos existentes enquanto aprendia novas tecnologias.
  1. Qual foi a funcionalidade diferencial do seu projeto
  • Além do que foi pedido no desafio, implementei um simples sistema de autenticação com cadastro e login de usuários, além de uma proteção de senhas com um sistema de criptografia de senhas utilizando o algoritmo hash, da biblioteca Bcryptjs.
  1. O que eu faria a mais se tivesse mais tempo?
  • Focaria nas boas práticas de programação do back-end, incluindo Clean Architecture, Design Patterns e S.O.L.I.D.

About

AgendaCom trata-se de uma agenda de contatos digital que gerencia, armazena e salva seus contatos. Ela conta um sistema de autenticação e segurança de senhas seguindo o padrão MVC.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published