Skip to content

Final exercise for the Rocketseat Bootcamp: Launchstore

Notifications You must be signed in to change notification settings

thadeucity/Foodfy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Foodfy Logo

Final exercise for the Rocketseat Bootcamp: Launchbase

Made by Victor Alvarenga License

English   |    Português

Foodfy Logo

📘 English

Description

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)


Instalation

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


Modules / Frameworks

  • express
  • express-session
  • method-override
  • nunjuks
  • request
  • multer
  • bcrypt
  • pg
  • pg-simple
  • node mailer
  • intl
  • faker

Project Requirements

- Public Area

  • 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

- Admin Area

  • 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

Project Extras

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







📘 Português

Descrição

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)


Instalação

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


Módulos / Frameworks

  • express
  • express-session
  • method-override
  • nunjuks
  • request
  • multer
  • bcrypt
  • pg
  • pg-simple
  • node mailer
  • intl
  • faker

Requisitos do Projeto

- Área Pública

  • 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

- Área Administrativa

  • 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

Extras de Projeto

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

📝 License

This project is under the MIT license. See the LICENSE for details.


Made with ♥ by Victor Alvarenga 👋 Get in touch!

About

Final exercise for the Rocketseat Bootcamp: Launchstore

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published