require("dotenv").config(); const express = require("express"); const mongoose = require("mongoose"); const cors = require("cors"); const http = require("http"); const socketio = require("socket.io"); const app = express(); const server = http.createServer(app); const io = socketio(server); const port = process.env.PORT || 5000; app.use(cors()); app.use(express.json()); // MongoDB Connection mongoose .connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => console.log("MongoDB connected")) .catch((err) => console.log("MongoDB connection error:", err)); // Socket.IO Setup io.on("connection", (socket) => { console.log("New client connected"); socket.on("joinEvent", (eventId) => { socket.join(eventId); }); socket.on("eventUpdate", (data) => { io.to(data.eventId).emit("update", data.message); }); socket.on("disconnect", () => { console.log("Client disconnected"); }); }); // Routes const authRoutes = require("./routes/auth"); const streetRoutes = require("./routes/streets"); const taskRoutes = require("./routes/tasks"); const postRoutes = require("./routes/posts"); const eventRoutes = require("./routes/events"); const rewardRoutes = require("./routes/rewards"); const reportRoutes = require("./routes/reports"); const aiRoutes = require("./routes/ai"); const paymentRoutes = require("./routes/payments"); const userRoutes = require("./routes/users"); app.use("/api/auth", authRoutes); app.use("/api/streets", streetRoutes); app.use("/api/tasks", taskRoutes); app.use("/api/posts", postRoutes); app.use("/api/events", eventRoutes); app.use("/api/rewards", rewardRoutes); app.use("/api/reports", reportRoutes); app.use("/api/ai", aiRoutes); app.use("/api/payments", paymentRoutes); app.use("/api/users", userRoutes); app.get("/", (req, res) => { res.send("Street Adoption App Backend"); }); server.listen(port, () => { console.log(`Server running on port ${port}`); });