eCommerce
/ecommerce-backend
│
├── /config # Configuration files
│ ├── db.js # Sequelize database connection setup
│ ├── dotenv.js # Environment variables (using dotenv)
│ └── paypal.js # PayPal integration configuration
│
├── /controllers # Logic for handling incoming requests and responses
│ ├── authController.js # Authentication (register, login, logout)
│ ├── productController.js # Product CRUD operations
│ ├── blogController.js # Blog post CRUD operations
│ ├── orderController.js # Order management (create, view orders)
│ └── adminController.js # Admin dashboard (manage products, blog posts, view orders)
│
├── /middlewares # Middlewares for authorization, validation, and file upload
│ ├── authMiddleware.js # Protects routes that need authentication
│ ├── adminMiddleware.js # Protects routes for admin users only
│ ├── validationMiddleware.js # Input validation using express-validator
│ └── fileUploadMiddleware.js # File upload logic using Multer
│
├── /models # Sequelize models (defines database schema)
│ ├── user.js # User model (user info, password, role)
│ ├── product.js # Product model (title, description, price, category, image)
│ ├── blogPost.js # Blog post model (title, content, image)
│ └── order.js # Order model (user, products, totalAmount, status)
│
├── /routes # Routes for handling API endpoints
│ ├── authRoutes.js # Authentication routes (register, login, logout)
│ ├── productRoutes.js # Product routes (GET, POST, PUT, DELETE)
│ ├── blogRoutes.js # Blog post routes (GET, POST, PUT, DELETE)
│ ├── orderRoutes.js # Order routes (POST for user, GET for user/admin)
│ └── adminRoutes.js # Admin routes for managing products, blogs, and orders
│
├── /uploads # Folder for uploaded files (e.g., images)
│ ├── product-images/ # Folder for storing product images
│ └── blog-images/ # Folder for storing blog post images
│
├── /validators # Validation logic using express-validator
│ ├── productValidator.js # Validates product input data
│ ├── userValidator.js # Validates user input data (register, login)
│ └── orderValidator.js # Validates order data
│
├── /utils # Utility files (e.g., response handler)
│ └── responseHandler.js # Helper for structuring API responses
│
├── /node_modules # Node.js modules (auto-generated)
│
├── /public # Static files (e.g., images, styles, JS for front-end)
│
├── server.js # Main entry point of the Express app
├── .env # Environment variables (e.g., database credentials, session secret)
├── .gitignore # Ignore node_modules, uploads, .env, etc.
├── package.json # Project dependencies and scripts
├── vercel.json # Vercel deployment config
└── README.md # Project overview and setup instructions
Comments
Post a Comment