import 'dotenv/config'; import express from 'express'; import cors from 'cors'; import path from 'path'; import { connectDB } from './db'; import { errorHandler } from './middleware/errorHandler'; import authRoutes from './routes/auth'; import boardRoutes from './routes/board'; import eventRoutes from './routes/events'; import galleryRoutes from './routes/gallery'; import sponsorRoutes from './routes/sponsors'; import minuteRoutes from './routes/minutes'; import memberRoutes from './routes/members'; import emailRoutes from './routes/email'; const app = express(); const port = process.env.PORT ?? 801; app.use(cors()); app.use(express.json()); // Serve uploaded files app.use('/uploads', express.static(path.join(__dirname, '../../uploads'))); // API routes app.use('/api/auth', authRoutes); app.use('/api/board', boardRoutes); app.use('/api/events', eventRoutes); app.use('/api/gallery', galleryRoutes); app.use('/api/sponsors', sponsorRoutes); app.use('/api/minutes', minuteRoutes); app.use('/api/members', memberRoutes); app.use('/api', emailRoutes); // Serve built React app const clientBuild = path.join(__dirname, '../../client/build'); app.use(express.static(clientBuild)); app.use((_req, res) => { res.sendFile(path.join(clientBuild, 'index.html')); }); app.use(errorHandler); connectDB() .then(() => { app.listen(port, () => console.log(`Server running on port ${port}`)); }) .catch((err) => { console.error('Failed to connect to MongoDB:', err); process.exit(1); });