Due to the server running on a free tier of Heroku, please allow roughly 30 seconds for the website to display properly.
View Demo
·
Report Bug
·
Request Feature
This fullstack application features a functional store environment that allows you to create an account and place an order through PayPal Sandbox (you will need a PayPal Sandbox account as well or the transaction will not go through). After completing the transaction, the website will take you to an order confirmed page then redirect you back to the home page with an empty cart.
Users can add items to cart, adjust the cart as needed (which automatically updates the subtotal), go through the mock PayPal process, and upon completion of the order they will be directed to an order confirmed page that will automatically redirect the user back to the home page.
The user system is in place to see if I could make all prices discounted upon logging in to mimic a membership-oriented store. All prices get set to 10% lower (plus 1 cent to make it nicer to look at) upon registration or logging in.
Trying to figure out how to connect Redux and Paypal Sandbox together was the most challenging part since I knew nothing about them going in. To be honest, I'd need a refresher if I were to use Redux again, but I've got the gist of it so it'll be much easier to figure out next time. Another issue I faced was figuring out how to make the front end talk to the back end from Netlify to Heroku, which involved purchasing a domain name and routing both through Cloudflare.
To get a local copy up and running follow these simple steps.
-
Clone the repo
git clone https://github.com/PhilipBDev/Forget-Me-Not-Apothecary---Server.git
-
Install NPM packages
npm install
-
Create an ENV file with the following attributes using your own keys from MongoDB Atlas, PayPal Sandbox, and your own JWT Secret string:
PORT=5000 MDB_CONNECT_STRING= JWT_SECRET= PAYPAL=
See the open issues for a list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE
for more information.
Your Name - @PhilipBDev - PhilipBDev@gmail.com
Project Link: https://github.com/PhilipBDev/Forget-Me-Not-Apothecary---Server