69 lines
1.9 KiB
JavaScript
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}`);
|
|
});
|