To run this project locally, you need to have Node.js and MongoDB installed on your machine.
- Node.js
- MongoDB
- NPM or Yarn
- Clone this repo to your local machine using
git clone https://github.com/<your-username>/beautify.git
. - Go to the project directory using
cd Beautify
. - Install the dependencies using
npm install
oryarn install
. - Create a
.env
file in the root folder and add the following environment variables:
NODE_ENV=development PORT=3000 DATABASE=<your-mongodb-connection-string> DATABASE_PASSWORD=<your-mongodb-password> JWT_SECRET=<your-jwt-secret> JWT_EXPIRES_IN=90d JWT_COOKIE_EXPIRES_IN=90 EMAIL_USERNAME=<your-email-username> EMAIL_PASSWORD=<your-email-password> EMAIL_HOST=<your-email-host> EMAIL_PORT=<your-email-port> EMAIL_FROM=<your-email-address> STRIPE_SECRET_KEY=<your-stripe-secret-key>
Run the app using npm start or yarn start.
Open your browser and go to http://localhost:3000.
-
User Authentication: Ensure secure access to protected routes and data by implementing user authentication using JSON Web Tokens (JWT). Users can securely register, log in, and access their account details.
-
Product Management: Effortlessly handle all aspects of cosmetics product management, including creation, retrieval, updating, and deletion. Each product can be defined with its name, description, price, image, category, rating, reviews, and more.
-
Order Management: Seamlessly manage customer orders, allowing for order creation, tracking, and status updates. The application supports orders with multiple products, quantities, shipping addresses, payment methods, and total prices.
-
Ratings and Reviews: Allow users to rate and review products, providing valuable feedback and insights. Display average ratings and reviews for products to help customers make informed purchasing decisions.
-
Validation and Error Handling: Implement robust validation and error handling mechanisms to ensure data integrity and provide meaningful error messages to clients. Validate user input and handle common errors gracefully.
-
Email Notifications: Enhance user experience by sending email notifications for critical events such as account creation, order confirmations, and other important updates. Utilize the SendGrid email service to reliably send notifications to users.
-
Database Integration: Seamlessly integrate with MongoDB, a powerful NoSQL database, to provide a flexible and scalable solution for data storage. Store and retrieve product information, order details, user data, ratings, and reviews efficiently.
Node.js
Express
MongoDB
Mongoose
Stripe
Sendgrid
Helmet
Morgan
Bcrypt
Validator
JWT
Multer
express-rate-limit
express-mongo-sanitize
xss-clean
This project is actively being developed and maintained, continuously adding new features and improving existing functionality. As such, there is always work to be done.