Initial commit

This commit is contained in:
2026-09-16 17:36:46 +05:30
commit c9f429d123
117 changed files with 14145 additions and 0 deletions

77
server/app.js Normal file
View File

@@ -0,0 +1,77 @@
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
const path = require('path');
const errorHandler = require('./middleware/errorHandler');
// Route Imports
const authRoutes = require('./routes/authRoutes');
const productRoutes = require('./routes/productRoutes');
const categoryRoutes = require('./routes/categoryRoutes');
const brandRoutes = require('./routes/brandRoutes');
const cartRoutes = require('./routes/cartRoutes');
const wishlistRoutes = require('./routes/wishlistRoutes');
const orderRoutes = require('./routes/orderRoutes');
const inventoryRoutes = require('./routes/inventoryRoutes');
const reviewRoutes = require('./routes/reviewRoutes');
const couponRoutes = require('./routes/couponRoutes');
const bannerRoutes = require('./routes/bannerRoutes');
const settingsRoutes = require('./routes/settingsRoutes');
const socialMediaRoutes = require('./routes/socialMediaRoutes');
const emailTemplateRoutes = require('./routes/emailTemplateRoutes');
const contactRoutes = require('./routes/contactRoutes');
const uploadRoutes = require('./routes/uploadRoutes');
const app = express();
// Security Middlewares
app.use(helmet({ crossOriginResourcePolicy: { policy: "cross-origin" } }));
app.use(cors({
origin: process.env.CLIENT_URL || '*',
credentials: true
}));
// Rate Limiter
const limiter = rateLimit({
windowMs: 15 * 60 * 1000,
max: 300,
message: { success: false, message: 'Too many requests from this IP, please try again later.' }
});
app.use('/api', limiter);
// Body Parsing
app.use(express.json({ limit: '10mb' }));
app.use(express.urlencoded({ extended: true, limit: '10mb' }));
// Static Uploads Folder
app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
// Root test route
app.get('/api/health', (req, res) => {
res.json({ success: true, message: 'Antigravity Guitars API is healthy', timestamp: new Date() });
});
// API Routes
app.use('/api/auth', authRoutes);
app.use('/api/products', productRoutes);
app.use('/api/categories', categoryRoutes);
app.use('/api/brands', brandRoutes);
app.use('/api/cart', cartRoutes);
app.use('/api/wishlist', wishlistRoutes);
app.use('/api/orders', orderRoutes);
app.use('/api/inventory', inventoryRoutes);
app.use('/api/reviews', reviewRoutes);
app.use('/api/coupons', couponRoutes);
app.use('/api/banners', bannerRoutes);
app.use('/api/settings', settingsRoutes);
app.use('/api/social-media', socialMediaRoutes);
app.use('/api/email-templates', emailTemplateRoutes);
app.use('/api/contact', contactRoutes);
app.use('/api/upload', uploadRoutes);
// Centralized Error Handling Middleware
app.use(errorHandler);
module.exports = app;