Git Product home page Git Product logo

easy-byte-recipes-blog's Introduction

Final project – A personal blogging system – Starter project

This repository contains a starting point for your team's final project. Your team should update this README to include the information required, as presented in the project handout available on Canvas.

Team Name:
Easy Byte Recipes

What it does:
Easy Byte Recipes is a recipe-sharing blogging website where users from around the world can create, find, and comment on recipes. Recipes, at the moment, are categorised into either Starters, Mains and Desserts where it can be sorted by the title, username, and date. When users are logged in, they will be transported to their own personal user homepage which will show a personal greeting alongside the user's favourite recipes. Users that are logged in can then find other recipes that they like and favourite them for future use as they will be displayed at the top of the user's homepage.

For a new user that wishes to sign up, they will have to click on the 'Create New Account' button on the Login page. There, users will need to add their name, date-of-birth, username, password and an avatar. Users have to ensure that their passwords are exactly the same when confirming it. There are additional functionalities with the 'New Account' page such as showing an error message if the username has already been taken, showing an error message if the passwords are not the same and making the submit button inaccessible if users have not filled out the entire form. When the form has been submitted, it will INSERT the new user into our database where the password will be hashed and salted for additional security.

If there are homemade recipes that users would like to publish and share, they can simply sign in and click on the 'add recipe' tab where they can add the name, content (i.e. the ingredients and method) and an optional picture of the final product! By submitting the new recipe, it will INSERT the new recipe into the database where it then can be viewed by anyone that visits the website. Users can also delete their own recipes they've previously added, if they wish to do so.

On the home page, logged in users can access the comments page where they can comment on a particular recipe. They can also upvote or dwonvote certain comments and can delete their own comments.

Users that wish to update or edit their profile, they can simply click on the 'Edit Profile'. Submitting the new information will UPDATE the database with the user's new information.

Are there any special setup instructions:

  • added uuid package to auth-routes.js to enable authentication of user when loggin in and registering (npm install uuid)
  • added a custom handlebar to convert HTML back to text when we display the recipe information via handlebars :
    const Handlebars = require("handlebars");
    Handlebars.registerHelper('encodeMyString',function(inputData){
    return new Handlebars.SafeString(inputData);
    });
  • Handlebars.registerHelper( "if_eq",function(operand_1, operator, operand_2, options) {
    let operators = {
    'eq': function(l,r) { return l == r; }
    }
    , result = operators[ operator (operand_1,operand_2);
    if (result) return options.fn(this);
    else return options.inverse(this);
    });
  • added bcrypt package for hashing and salting functionality (npm install bcrypt)
  • added quill package for text editing (npm install [email protected])
  • added multer and fs (npm install multer & npm install fs)
  • added the sqlite packages (copy folders sqlite and sqlite3 into node_modules)

Existing Username / Password for demo purposes:

Username: test
Password: test


Olga, Yiwei, Abram, Colton

easy-byte-recipes-blog's People

Contributors

banananeko avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.