Files
adopt-a-street/backend/server.js
2025-10-29 13:12:30 -07:00

69 lines
1.9 KiB
JavaScript

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}`);
});