A website to list Recipes and Chefs for the end-user with an Admin interface with login certification for all the people responsible to update and maintain the website.
(All the graphic layout and design was provided by
Rocketseat)
Create a .env
file with the variables below :
SESSION_SECRET = // enter a randon set of characters
MAILER_USER = // enter your mailer username
MAILER_PASS = // enter your mailer password
DB_USER = //enter your Postgrees database username
DB_PASS = // enter your Postgress database password
DB_HOST = // enter the address for your Postgres Database host
DB_PORT = // enter your database port
After that you can run:
npm install
Now you need to start your database with the code provided in the database.sql
file.
Finally if you want to populate all SQL tables with test data you can run
node seed.js
*The base password for the seed users is 1234
express
express-session
method-override
nunjuks
request
multer
bcrypt
pg
pg-simple
node mailer
intl
faker
- Recipes Page
- Detailed Recipe Pages
- Search Page for Recipes with pagination
- Hide and Show buttons to switch parts of the recipe
- Chefs Page
- Detailed Chef Pages with their respective recipes
- About Page
- Login for user authentication
- User restricted pages and actions depending on user status
- Welcome e-mail and password recovery e-mail with token validation
- Image upload system
- Create, Edit and Delete functions for users, chefs and recipes
- Validations to prevent users to change data they are not sopose to change
- Validations to prevent users from entering invalid arguments inside the front-end forms
- Hashed password storage
- Automated data insertion with seed function for testing
- Floating animated messages
- Color coded boxes showing inputs that are not complient with the system rules
Extra features that I implemented beyond the original requirements
- Custom error pages
- Regex validation to improve password security preventing users to choose weak passwords
- Account validation process before the user is alowed to use the system
- Html email builder module, to create custom emails with better style.
- Dinamic image creator using Placehold API
Um website para listar receitas e Chefes de cozinha para o usuário final mais uma interface Admin com acesso certificado por Login para todos os responsáveis pela atualização e manutenção do Site.
(Todo desenvolvimento da parte gráfica foi realizado pela
Rocketseat)
Crie um arquivo .env
com as variáveis listadas abaixo :
SESSION_SECRET = // entre uma série de caracteres randômicos
MAILER_USER = // entre o username do seu servidor de email
MAILER_PASS = // entre a senha do seu servidor de email
DB_USER = // Entre com seu usuário do seu banco de dados Postgrees
DB_PASS = // Entre com sua senha do seu banco de dados Postgrees
DB_HOST = // Entre com o endereço de Host da sua Postgres Database
DB_PORT = // Entre a porta de comunicação do seu banco de dados
Depois disso você poderá rodar
npm install
Agora você deverá iniciar seu banco de dados SQL com o código encontrado no arquivo database.sql
Finalmente, caso queira popular suas planilhas do banco de dados com dados fictícios para teste rode o comando abaixo:
node seed.js
*obs: A senha padrão para os usuários do seed é 1234
express
express-session
method-override
nunjuks
request
multer
bcrypt
pg
pg-simple
node mailer
intl
faker
- Página de receitas
- Página detalhada das receitas
- Página de busca de receitas com paginação
- Botões para esconder e mostrar partes da receita
- Página de Chefs
- Página com as informações do Chef e suas respectivas receiras
- Página Sobre
- Login para autenticação de usuário
- Restições de navegação e edição baseadas nas permições de cada usuário
- Email automático de boas vindas e recuperação de senha com geração de Token
- Sistema de Upload de imagens
- Funções de criar, editar e deletar para usuários, chefs e receitas
- Validações para prevenir que o usuário altere informações que ele não deveria
- Validações para prevenir que o usuário entre dados inválidos nos formulário do site
- Armazenamento de senhas de forma criptografada
- Função de inserção automatizada de dados para testes.
- Mensagens flutuantes e animadas para comunicação com o usuário
- Caixas de entradas de dados com indicadores coloridos para alertar o usuário sobre a inserção de dados inválidos
Funcionalidades extras que adicionei ao prejeto além de seu escopo original
- Páginas de erro customizadas
- Validação de senhas por Regex para prevenir que o usuário insira senhas muito fracas
- Requisição de validação de conta antes que o usuário possa ter acesso às áreas administrativas do site
- Módulo de criação de emails Html para criação de emails customizados com maior facilidade
- Gerador dinâmico de imangens utilizando a API do Placehold
This project is under the MIT license. See the LICENSE for details.
Made with ♥ by Victor Alvarenga 👋 Get in touch!