Live Demo: Explore the live website.π₯
A comprehensive feature-rich e-commerce website developed as a server-client React application, powered by the:
My server-client React application leverages a comprehensive stack of JavaScript, HTML, and CSS technologies
to deliver a seamless user experience. Following established React application structures, including routing, state management, and component-based architecture, ensures scalability and maintainability. Emphasizing responsive design, the application guarantees optimal display across diverse devices.
With Firebase powering our secure user authentication mechanism, data confidentiality is maintained through HTTP/S protocols. Moreover, our robust backend comprises a blend of Firebase databaseπ and MongoDB , ensuring efficient data storage and management. Integration with the API facilitates secure transactions, providing users with a seamless shopping experience.
- MongoDB for efficient data storage.
- Express.js for robust server-side development.
- React.js for interactive and dynamic user interfaces.
- Node.js for scalable and efficient server-side execution.
- Utilized for secure user authentication and real-time database functionalities.
- Axios
- AJAX
- Fetch API
- Integrated for secure and reliable payment processing.
- Fundamentals of frontend development, ensuring a polished user experience.
- Implemented to ensure seamless viewing experiences across various devices.
Frontend (React) and backend (Node.js) integration in a MERN stack application involves the frontend making HTTP requests to specific API endpoints defined in the backend routes. These endpoints are implemented in the backend to handle incoming requests, interact with the database, and return appropriate responses to the frontend. This allows for seamless communication between the frontend and backend components, enabling the development of dynamic and interactive web applications.
This project demonstrates proficiency in full-stack development, including frontend UI/UX design, backend API development, database management, and integration with external services. It showcases the ability to work with a diverse set of technologies and libraries to build a scalable and robust web application.
-
Home Page:
- Lists products to browse and explore.
-
Detailed Product View:
- Provides in-depth information about a selected product.
-
Product Categories:
- Categorizes products for easy navigation.
-
Shopping Cart:
- Allows users to add and manage items in their cart.
-
Order Processing with PayPal:
- Securely handles payment processing using the PayPal API for demo purposes.
-
Secure User Registration and Login:
- Ensures a safe and secure user authentication system.
-
Admin Functionalities:
- Manages 'Products' and 'Orders' lists
- Features a dashboard displaying real-time metrics: registered users, order count, and financial performance through total money orders.
- Enables the creation, editing, and deletion of products.
-
User Functionalities:
- Accesses order history.
- Edits user profile.
-
About The Team Page:
- Provides information about the development team.
THe architecture focuses on structured state management, components, and effective handling of side effects and navigation in a React app.
-
πState Management:
- Uses
useReducer
for organized state management.
- Uses
-
πGlobal State:
- Manages global state for properties like
cart
,userInfo
,loading
, anderror
.
- Manages global state for properties like
-
πSide Effects:
- Handles side effects, such as data fetching, with
useEffect
.
- Handles side effects, such as data fetching, with
-
πComponent Structure:
- Organizes the app into modular components, promoting a component-based architecture.
-
πReact Router:
- Implements React Router for navigation.
-
πConditional Rendering:
- Conditionally displays UI elements based on the application's state.
-
πAuthentication Handling:
- Manages user authentication through global state.
-
πMiddleware (
logger
):- Uses a middleware function (
logger
) for state change logging.
- Uses a middleware function (
-
πRESTful API Calls:
- Utilizes Axios for making API calls to a backend server.
π Demo :
React.demo.mp4
Admin dashboard displaying real-time metrics: registered users, order count, and financial performance through total money orders
- Clone the repository:
git clone [repository_url]
- Set up the MongoDB database and Firebase authentication.
- Configure environment variables.
- Run Backend-
$ cd our-website
$ cd backend
$ npm i
$ npm start
- Run Frontend-
open new terminal
$ cd our-website
$ cd frontend
$ npm i
$ npm start
Seed Users and Products (backend)- Run this on browser: http://localhost:5000/api/seed (Will returns admin email, password and sample products).
Admin Login- Run http://localhost:3000/signin
Copyright Β© Shani Bider, 2023
This project is licensed under the MIT License.