/product_store

Product Store API that manages user and thier store of defferent products

Primary LanguageJavaScript

product_store

Setup

npm install && npm start

Database Connection

  1. Import connect.js
  2. Invoke in start()
  3. Setup .env in the root
  4. Add MONGO_URI with correct value

Routers

  • auth.js
  • products.js

User Model

Email Validation Regex

/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

Register User

  • Validate - name, email, password - with Mongoose
  • Hash Password (with bcryptjs)
  • Save User
  • Generate Token
  • Send Response with Token

Login User

  • Validate - email, password - in controller
  • If email or password is missing, throw BadRequestError
  • Find User
  • Compare Passwords
  • If no user or password does not match, throw UnauthenticatedError
  • If correct, generate Token
  • Send Response with Token

Mongoose Errors

  • Validation Errors
  • Duplicate (Email)
  • Cast Error

Security

  • helmet
  • cors
  • xss-clean
  • express-rate-limit

Swagger UI

📗 Table of Contents

📖 Product Store

Product Store API that manages user and thier store of defferent products

🛠 Built With

Tech Stack

Client

🚀 Live Demo

(back to top)

💻 Getting Started

To get a local copy up and running, follow these steps.

Prerequisites

In order to run this project you need:

Setup

Clone this repository to your desired folder:

  cd my-folder
  git clone git@github.com

Install

Install this project with:

  cd to file
  yarn install

Usage

To run the project, execute the following command:

  npm run dev

Deployment

You can deploy this project using:

  git push main

(back to top)

👥 Author

Authors

👤 Said laasri

🔭 Future Features

  • I will add a feature for a new project.

(back to top)

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

(back to top)

⭐️ Show your support

If you like this project consider giving it a star ⭐️.

(back to top)

🙏 Acknowledgments

I would like to thank Microverse for giving me the opportunity to work on this project.

  • LazyCoders
  • Coding Partners

(back to top)

📝 License

This project is MIT licensed.

(back to top)