Here's the homepage of Freshbey ✨
I am a huge enthusiast of open source. Contributing to open source is a fantastic way to learn and grow. Making open source contributions will require you to have been exposed to a few important concepts, practices, and transferable skills:
- Version control
- Working with tickets & issues
- Working with other developers
- Creating pull requests
- Experiencing a code review process
- Setting up a local development environment
- Contributing code to a pre-existing codebase
Freshbey is an e-commerce platform where users can order grocery items. I built this project originally for a client but they did not pay the agreed amount. After that, I made this project open source.
As of now, Freshbey is built using MERN stack. Additionally, React Bootstrap along with Bootswatch Zephyr theme is used for styling and React Redux is used for state management.
Fork the repository at - roopeshsn/freshbey to your GitHub account.
Then clone the forked repository, by typing the following line in your local terminal/powershell. Remember to replace <your-username>
with your actual GitHub username.
git clone https://github.com/<your-username>/freshbey.git
Navigate to the cloned repository on your local system
cd freshbey
Add remotes to the parent repository. This will help you fetch the code from the parent repo to avoid any merge conflicts later.
git remote add upstream https://github.com/roopeshsn/freshbey.git
To verify, use the command git remote -v
to check if you have two remotes - origin and upstream set up.
Finally, fetch the upstream's latest code from the main branch.
git fetch upstream master
Create a .env file in then root and add the following
NODE_ENV = development
PORT = 5000
MONGODB_URI =
JWT_SECRET =
EMAIL_USERNAME =
EMAIL_PASSWORD =
EMAIL_HOST =
EMAIL_PORT =
For getting URI go to MongoDB Site and make a account there and you will get a uri like this
mongodb+srv://admin=(ADMIN_INFO_TO_BE_INSERTED).mongodb.net/myFirstDatabase?retryWrites=true&w=majoritymyFirstDatabase?retryWrites=true&w=majority
Add any string like YOUR_NAME_ANY_SIGN (eg-chrismathew@123) is used to create a private key which will authenticate
To get this crendentails go to Mailtrap and there sign up for free and you will get all this crendentails there and choose nodemailer in dropdown section there like below
var transport = nodemailer.createTransport({
host: "smtp.mailtrap.io",
port: 2525,
auth: {
user: "99195eec06f5",
pass: "d26fe4c7d762"
}
});
npm install
cd frontend
npm install
# Run frontend (:3000) & backend (:5000)
npm run dev
# Run backend only
npm run server
Server should be running on PORT
specified in env file (or 5000
by default)
To test, type localhost:PORT/
in your browser and following output should appear.
{
message: 'Welcome to Freshbey Backend',
version: process.env.VERSION,
license: 'MIT',
}
Mailtrap (A Email Sandbox Service) is used as an email inbox to reset passwords.
The Images for product, slide, category are manually hosted in ImgBB
The project is deployed on Heroku
git push heroku master
The above command is used to deploy the project on Heroku
You can use the following commands to seed the database with some sample users and products as well as destroy all data:
# Import data
npm run data:import
# Destroy data
npm run data:destroy
Please check out CONTRIBUTING.md for more information regarding how to contribute.
MIT, see LICENSE