Initial commit: Club DynaSQY
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
require('dotenv').config();
|
||||
|
||||
const db = require('./config/db');
|
||||
|
||||
const authRoutes = require('./routes/auth');
|
||||
const memberRoutes = require('./routes/members');
|
||||
const guestRoutes = require('./routes/guests');
|
||||
const recommendationRoutes = require('./routes/recommendations');
|
||||
const honorRoutes = require('./routes/honors');
|
||||
const eventRoutes = require('./routes/events');
|
||||
const statsRoutes = require('./routes/stats');
|
||||
const adminRoutes = require('./routes/admin');
|
||||
const invitationRoutes = require('./routes/invitation');
|
||||
const absenceRoutes = require('./routes/absences');
|
||||
const galleryRoutes = require('./routes/gallery');
|
||||
const pushRoutes = require('./routes/push');
|
||||
const notificationRoutes = require('./routes/notifications');
|
||||
const presentationRoutes = require('./routes/presentation');
|
||||
const memberSlidesRoutes = require('./routes/memberSlides');
|
||||
const exportRoutes = require('./routes/export');
|
||||
const activityLogRoutes = require('./routes/activityLog');
|
||||
const presentationEditorRoutes = require('./routes/presentationEditor');
|
||||
const { startPushCron } = require('./services/pushNotifications');
|
||||
|
||||
const app = express();
|
||||
|
||||
const uploadsDir = path.join(__dirname, 'uploads');
|
||||
if (!fs.existsSync(uploadsDir)) fs.mkdirSync(uploadsDir, { recursive: true });
|
||||
|
||||
const galleryDir = path.join(__dirname, 'gallery');
|
||||
if (!fs.existsSync(galleryDir)) fs.mkdirSync(galleryDir, { recursive: true });
|
||||
|
||||
app.use(cors());
|
||||
app.use(express.json({ limit: '100mb' }));
|
||||
app.use('/uploads', express.static(uploadsDir));
|
||||
app.use('/gallery', express.static(galleryDir));
|
||||
|
||||
app.use('/api/auth', authRoutes);
|
||||
app.use('/api/members', memberRoutes);
|
||||
app.use('/api/guests', guestRoutes);
|
||||
app.use('/api/recommendations', recommendationRoutes);
|
||||
app.use('/api/honors', honorRoutes);
|
||||
app.use('/api/events', eventRoutes);
|
||||
app.use('/api/stats', statsRoutes);
|
||||
app.use('/api/admin', adminRoutes);
|
||||
app.use('/api/admin/presentation-editor', presentationEditorRoutes);
|
||||
app.use('/api/public/invitation', invitationRoutes);
|
||||
app.use('/invitation', invitationRoutes);
|
||||
app.use('/api/absences', absenceRoutes);
|
||||
app.use('/api/gallery', galleryRoutes);
|
||||
app.use('/api/push', pushRoutes);
|
||||
app.use('/api/notifications', notificationRoutes);
|
||||
app.use('/api/presentation', presentationRoutes);
|
||||
app.use('/api/member-slides', memberSlidesRoutes);
|
||||
app.use('/api/export', exportRoutes);
|
||||
app.use('/api/activity-logs', activityLogRoutes);
|
||||
app.use('/member-slides', express.static(path.join(__dirname, 'member_slides')));
|
||||
|
||||
app.get('/api/health', (req, res) => res.json({ status: 'ok' }));
|
||||
|
||||
startPushCron();
|
||||
|
||||
const PORT = process.env.PORT || 3000;
|
||||
app.listen(PORT, () => console.log(`Backend running on port ${PORT}`));
|
||||
Reference in New Issue
Block a user