MCuello17 / express-practice

This is an express practice exercise.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Express exercise (v8.5.0)

This is an express practice exercise.

To run the server simply write the following in your terminal:

npm start

Now head into http://localhost:3000 from a browser. You will see an empty list of products. You should be able to signup from the navbar. Once you do, log in and you will se an option to Create a new product on the homepage of the app
On the new-product page you should be able to Create a product just by submitting on the form. This should redirect you back to the product list page with your new product in it!
You can also Add products to your cart, order, and delete them.

Versions:

  • (1.0.0) Created the project.
  • (1.1.0) Added body parser dependency. [1.2.0]
  • (1.2.0) Removed body parser dependency since it was deprecated (docs).
  • (1.3.0) Added (POST)/new-user url for simulating user creation.
  • (1.3.1) Added comment card for examples on routing methods.
  • (1.3.2) Made the example middleware as a comment card.
  • (2.0.0) Changed project from a user database to a shop website.
  • (2.1.0) Refactor routes.
  • (2.2.0) Routes changes: Added filter to /admin routes and created 404 page for unlisted routes.
  • (2.2.1) Comments updates.
  • (2.3.0) Serving HTML files on pages instead of sending the HTML as a string.
  • (2.3.1) Added styling and static files middleware.
  • (2.4.0) Added temporary dynamic data storage.
  • (2.5.0) Dynamic data and templating engine (ejs - docs).
  • (2.6.0) Added partials for layout elements.
  • (3.0.0) Restructured the app in a MVC pattern.
  • (4.0.0) Refactor of view files.
  • (4.1.0) Added new product fields.
  • (4.2.0) Added product details page.
  • (4.3.0) Added cart model and functionality.
  • (4.3.1) Added cart list and styling.
  • (4.3.2) Added cart "delete" product functionality.
  • (5.0.0) Added mysql2 dependency for database functionality.
  • (5.1.0) Added sequelize dependency (docs).
  • (5.2.0) Retrieving products with Sequelize.
  • (5.2.1) Added product editing functionality.
  • (5.2.2) Product deletion.
  • (5.3.0) Added User model and functionality.
  • (5.4.0) Added cart model and functionality.
  • (5.5.0) Added order model and functionality.
  • (6.0.0) Added express-session dependency.
  • (6.1.0) Added connect-session-sequelize dependency (for storing session on the db: docs) and user cookie logic.
  • (7.0.0) Authentication functionality (user signup and login).
  • (7.0.1) Added bcryptjs dependency for password encription.
  • (7.1.0 ) Authentication middleware.
  • (7.2.0) Added csurf dependency for CSRF protection.
  • (7.2.1) Implemented locals.
  • (7.2.2) Fixed user creation.
  • (7.2.3) Added connect-flash dependency for storing flash messages in session.
  • (7.3.0) Added nodemailer dependency for email management (docs).
  • (7.3.1) Setup mailtrap and mailing config.
  • (7.4.0) Password resetting.
  • (7.4.1) Authorization updates.
  • (8.0.0) Added express-validator dependency for user input validation (docs).
  • (8.0.1) Improved user experience with validation.
  • (8.1.0) Improved error handling.
  • (8.2.0) Added multer dependency for file uploading.
  • (8.3.0) Added invoice download on checkout.
  • (8.4.0) Added pdfkit dependency for invoice creation on checkout (docs).
  • (8.4.1) Minor fixes.
  • (8.5.0) Pagination.

Dependencies:

Dev Dependencies:

Debug dependencies:

Database setup:

On /utils/database.js you can find all the database configuration. By default I'm using a MySQL Schema called "express-practice".

About

This is an express practice exercise.


Languages

Language:JavaScript 54.5%Language:EJS 34.1%Language:CSS 11.4%