Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

WEB APPLICATION | Built with MongoDB, Express, React and Node.js

NotificationsYou must be signed in to change notification settings

BeatrisIlieva/mern-gems-v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

                    Project Logo


Project Logo

Welcome to our Online Jewelry Store! This web application serves as a platform for showcasing and selling a stunning collection of exquisite jewelry.



Demo Video

Watch the video

Built With

  • Frontend: React

  • Backend: Node.js, Express.js, MongoDB, MongoDB Atlas, Mongoose

Back To Top

Responsive Design

Our website is fully optimized for all device sizes, starting from a minimum screen width of 340px, ensuring a seamless experience across smartphones, tablets, and desktops.

Image 3Image 4Image 8Image 5Image 6Image 1Image 7

Back To Top

Optimization

The application is manually optimized for performance by utilizing React's useMemo, useCallback, and memo functions, to help minimize unnecessary re-renders and improve efficiency.

Back To Top

Error Handling

1. Input Validation

  • All user inputs are validated using regular expressions (regex)
  • The validation rules are centralized in a set of constants and utility functions
  • DynamicForm component and a useForm hook are used to handle user inputs
  • Real-time feedback that ensures all data entered meets the required criteria before submission

2. User Authentication

  • Register Error Handling:
    • When a user tries to register, the application verifies the email against the database
    • If the email is already registered, an error message is displayed to notify the user
  • Login Error Handling:
    • When a user tries to log in, the application verifies the email and password against the database
    • If the password is invalid or there is no user with the provided email, an error message is displayed to notify the user

3. Size Selection

  • If a user clicks the "Add To Bag" button without selecting a size, an error message is displayed to inform them of the requirement

4. Model Validations Using Regular Expressions:

  • Ensures that data fields such as email addresses follow a standard format, passwords meet complexity requirements, payment details are in correct format etc.

5. Functions for Additional Validations:

  • Includes checks for email uniqueness during registration, verifies the correctness of the old password during password updates, checks if a card is not expired, etc.

Back To Top

Testing

  • Jest

  • Frontend:
    Coverage Status

  • Backend:
    Coverage Status

Back To Top

Features

1. Custom Forms

  • Floating labels

  • Validation Messages

  • After submitting any of the forms, the backend also performs validation to ensure that all inputs, including menus and fields, offer only valid options

  • Errors related to invalid inputs returned by the backend are displayed to the user

2. Languages

Our website offers a user experience across three languages:

British flagEnglish

Chinese flagChinese

Bulgarian flagBulgarian

3. Product filtration

4. Shopping Bag Count

5. Wishlist Count

6. Toggle Like

7. Create/Update Card Details Form

8. Create/Update Shipping Details Form

9. Update Password Form

10. Update Email Form

11. Order History

12. Logout Button

13. Mini Navigation at the checkout stage

14. Order Summary at every step of the Checkout process

15. Order Confirmation Page

16. Route Guard

17.ScrollToTop component that ensures the window scrolls to the top of the page whenever the user navigates to a new route

18. User Models:

  • Implemented three distinct user models storing data about:

    • Logging credentials
    • Shipping details
    • Card details
  • Each user model is linked by a common user ID:

    • The ID is derived from the logging credentials model
    • The IDs for the shipping and card details models are set at the time of user registration
  • Update Email functionality

  • Update Password functionality

  • Create and Update Shipping details functionality

  • Create and Update Card details functionality

  • Logout functionality

19. Database aggregations for Product Filtering and Real-time Availability Tracking

20. Obligatory Size Selection

21. Users can increase or decrease the quantity of items in their shopping bag, with validations in place to ensure that they cannot add more than the available quantity in the database or reduce the quantity below zero

22. Wishlist

23. Orders History, ordered by the creation time

24. Email Notifications upon Registration and Order Completion

Back To Top

Installation

Prerequisites

Make sure you have the following installed on your system:


1. Clone the Repository

git clone https://github.com/beatrisilieva/mern-gems-ultimate.gitcd mern-gems

2. Setup Backend

Navigate to the backend directory and install dependencies:

cd servernpm install

Run the backend server:

npm start

The backend should now be running onhttp://localhost:4000.


3. Setup Frontend

Open a new terminal, navigate to the frontend directory, and install dependencies:

cd clientnpm install

Start the frontend development server:

npm start

The frontend should now be running onhttp://localhost:3000.

Back To Top

About

WEB APPLICATION | Built with MongoDB, Express, React and Node.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp