Skip to content

ritish78/ByteBuy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ByteBuy

Yet another store, eh!

Hosted on Render: https://bytebuy.onrender.com/

ByteBuy Platform Highlights:

  1. Interactive Product Display: Engage users with dynamic product image looping on hover, enhancing the browsing experience.

  2. Efficient Sales Management: Admins set sales, defining discounts for items, boosting pricing strategies.

  3. User-Centric Requests: Non-signed users send 30 requests/60s, logged-in users send 100, optimizing engagement.

  4. Streamlined Image Handling: Admins effortlessly upload images to Cloudinary, optimized via 'webp' format and resized to 1200px width by 1000px height.

  5. Advanced Order Control: Admins filter orders by ID, payment, and delivery status, simplifying management.

  6. Swift Product Search: Users find items via name, brand, or description, promoting seamless navigation.

  7. Empowered Reviews: Users review, edit, or delete product feedback, fostering valuable interactions.

Experience ByteBuy: Where Functionality Meets User-Centric Design.

How to install:

  1. First clone the repo. To do so, open the terminal and enter:
git clone https://github.com/ritish78/ByteBuy.git
  1. You need to supply these environment variables:
EXPRESS_SERVER_PORT=5000
NODE_ENV=production
MONGODB_URL=
JWT_SECRET=
PAYPAL_CLIENT_ID=
CLOUDINARY_CLOUD_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
UPSTASH_REDIS_URL=
MAX_REQ_ALLOWED_OF_AUTH_USER_PER_MINUTE=100
MAX_REQ_ALLOWED_OF_NOT_SIGNEDIN_PER_MINUTE=30
WINDOW_SIZE_IN_SECONDS=60
  1. If you have docker installed, then you can run this command:
docker compose up --build

The server will have started on port 5000.

  1. If you don't have docker installed, then run the build command inside the ByteBuy root folder:
npm run build
  1. After the build command installs all the dependencies for frontend and backend, enter:
npm run server
  1. The server should run on port 5000. Go to http://localhost:5000 to view the website.

Tech Stack used

  • Backend: Node.js as Runtime, express for server, express-validator for validating user input.
  • Frontend: React Library which runs using Javascript. Redux is used for state management.
  • Database: MongoDB and Redis. Mongoose npm package is used to interact with MongoDB. Redis is hosted on Upstash.
  • Security: Bcrypt for hashing password, Http-cookie to store JWT which is then used for verifying user.
  • Image Manipulation: Sharp library is used to convert uploaded images to webp format.
  • Cloud Storage: Cloduinary for the uploaded pictures, AWS for MongoDB and Upstash for Redis.

Available API Endpoints:

For complete available API endpoints visit: API Endpoints

Docgen SS

About

Yet another store, eh! Please wait for atleast 60 seconds to load the website on the first request.

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages