Skip to content

Sourav4554/AquaCart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 

Repository files navigation

#🐠 AquaCart - Ornamental Fish E-commerce Website

##📌 Overview

AquaCart is a full-fledged e-commerce platform for buying and selling ornamental fish. It provides a seamless shopping experience with features like JWT & OTP authentication, product management, secure payments, shopping cart, wishlist, promo codes, and an AI chatbot for fish-related queries.

🚀 Features

  • 🛒 Product Listings: Browse a variety of ornamental fish.
  • 🔍 Search & Filtering: Find fish based on species, price, and size.
  • 🗮 Admin Registration: Secure admin access for managing the platform.
  • 🏢 User Registration with JWT & OTP Verification: Secure signup process with OTP authentication.
  • 🔒 Google Authentication: Signup/Login using Oath 2.0
  • 🛕 Shopping Cart & Checkout: Add items to the cart and checkout.
  • 💳 Payment Integration: cahn on delivery and Secure online payments via Stripe / Razorpay.
  • 🤖 AI Chatbot: Get real-time fish care tips and product recommendations.
  • 🏰 Promocode System: Apply discount codes at checkout.
  • 🌐 Order Management: Users can track their orders.
  • 📊 Data Visualization in Admin Panel: View sales, user activity, and product analytics.
  • 📄 Download User Data (PDF) in Admin Panel: Export user data in PDF format.
  • 📝 Add Reviews & Ratings: Users can leave reviews and ratings for products.
  • 📱 Responsive Design: Works on mobile and desktop devices.

Frontend

  • React.js (Vite)
  • CSS
  • Axios (API requests)
  • Framer Motion (Animations)
  • React Router DOM (Navigation)
  • React Icons
  • React Toastify (Notifications)
  • React Slick / Swiper (Carousels)
  • React Awesome Reveal / Animate.css (Animations)
  • React Custom Rating Component

Admin Panel

  • React.js
  • Material UI (MUI)
  • React Router DOM (Navigation)
  • Axios (API requests)
  • Chart.js / React Chart.js (data visualization)
  • jsPDF & jsPDF AutoTable (PDF Generation)
  • React Toastify (Notifications)

Backend (Node.js & Express.js)

  • Express.js (Server)
  • MongoDB (Database)
  • Mongoose (ODM)
  • Cloudinary (Image Uploads)
  • JSON Web Token (JWT) Authentication
  • Stripe / Razorpay (Payments)
  • Multer (File Uploads)
  • Nodemailer (Email Service)
  • Bcrypt (Password Hashing)
  • CORS (Cross-Origin Resource Sharing)
  • Crypto (Random number generation for otp)
  • Dotenv (Environment Variables)
  • Sharp (Image Processing)
  • googleapis (Google Authentication (Login with Google))

🛠 Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/Sourav4554/AquaCart.git
cd your-project-name

2️⃣ Backend Setup

cd Backend
npm install
npm start
  • Create a .env file in the Backend folder and configure:
    MONGODB_URL=your_mongodb_connection_string
    SMTP_USER=your_smtp_user
    SENDER_EMAIL=your_sender_email
    SMTP_PASSWORD=your_smtp_password
    JWT_SECRET=your_jwt_secret
    CLOUD_NAME=your_cloud_name
    CLOUDINARY_API_KEY=your_cloudinary_api_key
    CLOUDINARY_API_SECRET=your_cloudinary_api_secret
    ADMIN_MAIL=your_admin_email
    ADMIN_PASSWORD=your_admin_password
    STRIPE_SECRET_KEY=your_stripe_secret_key
    RAZORPAY_KEY_ID=your_razorpay_key_id
    RAZORPAY_KEY_SECRET=your_razorpay_key_secret
    GEMINI_API=your_gemini_api_key
    GOOGLE_CLIENT_ID=google_clientId
    GOOGLE_CLIENT_SECRET=google_Client_secret

3️⃣ Frontend Setup

cd Frontend
npm install
npm run dev

⚙️ API Endpoints

Method Endpoint Description
POST /admin/login Admin login
POST /admin/users Fetch all users
POST /aquaAI/answer Generate AI response
POST /cart/addcart Add item to cart
POST /cart/removecart Remove item from cart
DELETE /cart/deletecart Delete entire cart
GET /cart/cartdata Fetch cart data
POST /fish/upload Upload fish (Admin)
GET /fish/list-fish List all fish
DELETE /fish/remove-fish Remove a fish (Admin)
PUT /fish/update-fish Update fish details (Admin)
POST /order/cod Cash on Delivery order
GET /order/userorder Fetch user orders
GET /order/adminorder Fetch admin orders
POST /order/status Update order status (Admin)
POST /order/stripe Stripe payment processing
POST /order/verify Verify Stripe order
POST /order/razorpay Razorpay payment processing
POST /order/verify-razorpay Verify Razorpay order
POST /promocode/add Add a promo code (Admin)
GET /promocode/list List all promo codes
DELETE /promocode/delete Delete a promo code (Admin)
POST /promocode/fetch Fetch a promo code
POST /promocode/apply Apply a promo code
POST /review/add Add a review
POST /review/list List all reviews
POST /user/register Register a new user
POST /user/verify-email Verify user email
POST /user/login User login
POST /user/forgot-password Request password reset OTP
POST /user/verify-otp Verify OTP for password reset
POST /user/reset-password Reset user password
POST /user/resend-otp Resend OTP
POST /user/userdata Fetch user data
POST /wishlist/add Add item to wishlist
DELETE /wishlist/remove Remove item from wishlist
GET /wishlist/fetch Fetch wishlist items
GET /user/google Google authentication

** Total=37

Documentation

For more details, check the documentation:
1)JWT AUTHENTICATION

*--https://dev.to/jaypmedia/jwt-explained-in-4-minutes-with-visuals-g3n

2)Image uploading multer with cloudinary

*--https://medium.com/@joeeasy_/uploading-images-to-cloudinary-using-multer-and-expressjs-f0b9a4e14c54

3)Razorpay payment

*--https://dev.to/alimalim77/integrating-payment-gateways-in-mern-applications-482k

4)Stripe Payment

*--https://dev.to/arshan_nawaz/setting-up-stripe-checkout-with-nodejs-and-mongodb-1hk1

5)Google Authentication

*--https://medium.com/@dugar_rishab/how-to-use-google-oauth-with-mern-stack-a988947e64f4

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors