Teton Wilderness Supply
Teton Wilderness Suppy is an eccommerce React-Redux SPA, with a Node.js and MongoDB server adding complex backend functionality. It was commissioned by a real company based out of Idaho Falls, ID, though they are not yet ready for full production. It is packed full of complex features and technologies, such as fully implemented stripe payments. Styled using Styled-Components, the entire website is extremely dynamic. It has complex database models for the products, as well as complex sorting and filtering. The product data models have full CRUD implementation, with REST based endpoints.
Main Technologies Used
Built with modern react design, using functional Components built around hooks. Combined with Styled-Components for styling, the entire app is built from scratch to be sleek, performant, and dynamic.
React is partnered with Redux to allow for a "single source of truth" design, and make state management across the entire App seemless. Some import features implemented with redux include managing the user state, along with the checkout cart. Many redux action are implemented to make calls, or fetch data from the backend server.
The server is implemented with Node, and many other of the smaller packages in the node ecosystem, such as express, mongoose, sharp, ect. There is a secure JWT auth flow implemented partially with Passport, and the server has many CRUD endpoints for multiple of the mongoose implemented data models.
MongoDB along with Mongoose (for server communication) make up the Database for the app. The mongoose Models were implemented from a full data model I created before starting the project. There are many endpoints on the server for advanced data sorting and filtering of the customer products.
Payments are built into the SPA using the Stripe react API. The backend communicates securely with Stripe endpoints and with the Cart data to keep track of complex orders (such as multiple products in multiple different colors). The product flow is then hooked up to email the shipping staff of the company with accurate shipping info, and a record is stored in the DB of past orders.