Patrick Frank, Instructor
MoonShineExpress is a jewelry e-commerce web application built with a focus on modern web development practices. The application demonstrates a complete shopping experience with product browsing, cart management, checkout, and order tracking functionality.
- Backend: Node.js with Express.js provides RESTful API endpoints for products and orders
- Frontend: Vanilla JavaScript for DOM manipulation and client-side rendering
- Data Storage: JSON file-based persistence for products and orders
- State Management: Client-side state management using sessionStorage for cart data
- Responsive Design: Mobile-friendly interface with dark/light mode toggle
- Product catalog with images and descriptions
- Shopping cart with quantity controls
- Tax calculation and order summary
- Checkout process with customer information collection
- Order confirmation and tracking system
- Dark mode toggle with localStorage persistence
- Server: Node.js, Express.js
- Frontend: HTML5, CSS3, Vanilla JavaScript (no frameworks)
- Data Storage: JSON files for product and order data
- Deployment: Hosted on Render.com
- Development Environment: Visual Studio Code
The application demonstrates RESTful API design principles and full-stack JavaScript development practices in a project focused on e-commerce functionality.
-
Setup Environment
- Install Node.js and npm if not already installed
- Clone this repository to your local machine
- Run
npm installto install required dependencies
-
Understand the Codebase
- Review the server.js file to understand the existing API endpoints
- Examine the main.js file to understand frontend functionality
- Explore the data structure in the products.json and orders.json files
-
Run the Application
- Start the server with
npm startornode server.js - Open the application in your browser at http://localhost:3000
- Start the server with
-
Opportunities for Improvement
- Implement product search functionality with real-time filtering
- Add search categories with buttons
- Create an admin dashboard for order management
- Add user authentication functionality
- Upgrade dark mode functionality to be user-specific
-
Testing
- Test all user workflows (browsing, adding to cart, checkout)
- Ensure proper error handling and validation
- Verify responsive design works on different screen sizes
- Test dark mode functionality
-
Documentation and Submission
- Document any changes or additions you've made
- Create a detailed explanation of your implementation
- Deploy your completed application to Render.com
- Submit your work through the specified channels for grading
