Skip to content

Commit 29b04e3

Browse files
committed
added avatar support
1 parent c5574df commit 29b04e3

File tree

9 files changed

+2045
-122
lines changed

9 files changed

+2045
-122
lines changed

backend/package-lock.json

Lines changed: 141 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@
1919
"express": "^5.1.0",
2020
"jsonwebtoken": "^9.0.2",
2121
"mongodb": "^6.20.0",
22-
"mongoose": "^8.19.2",
22+
"mongoose": "^8.19.4",
23+
"multer": "^2.0.2",
2324
"node-cron": "^4.2.1",
2425
"passport": "^0.7.0",
2526
"passport-github2": "^0.1.12",
@@ -31,8 +32,10 @@
3132
"devDependencies": {
3233
"@types/bcryptjs": "^2.4.6",
3334
"@types/cookie-parser": "^1.4.10",
34-
"@types/express": "^5.0.3",
35+
"@types/cors": "^2.8.19",
36+
"@types/express": "^5.0.5",
3537
"@types/jsonwebtoken": "^9.0.10",
38+
"@types/multer": "^2.0.0",
3639
"@types/node": "^24.9.1",
3740
"@types/passport": "^1.0.17",
3841
"@types/passport-github2": "^1.2.9",

backend/src/app.ts

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,57 @@ import { errorHandler, notFoundHandler } from "./middleware/errorHandler.js";
66
import { requestLogger } from "./middleware/requestLogger.js";
77
import roomRoutes from "./routes/roomRoutes.js";
88
import passport from "passport";
9-
import "./utils/passport.js"
10-
import cookieParser from 'cookie-parser';
9+
import "./utils/passport.js";
10+
import cookieParser from "cookie-parser";
1111
import cors from "cors";
12+
import path from "path";
13+
1214
dotenv.config();
1315
const app = express();
1416

17+
// Required for __dirname in ES modules / TS
18+
// (TS compiles to CJS so this works fine)
19+
const __dirnameLocal = path.resolve();
20+
1521
app.use(requestLogger);
1622
app.use(express.json());
17-
app.use(cookieParser()); // <-- Add this middleware HERE
23+
app.use(cookieParser());
24+
25+
// CORS
1826
app.use(
1927
cors({
2028
origin: process.env.FRONTEND_URL || "http://localhost:5174",
2129
credentials: true,
2230
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
2331
})
2432
);
25-
//initialize passport
33+
34+
// Passport
2635
app.use(passport.initialize());
27-
// Routes
36+
37+
// Uploaded avatars: stored in /uploads/avatars
38+
app.use(
39+
"/avatars",
40+
express.static(path.join(__dirnameLocal, "uploads", "avatars"))
41+
);
42+
43+
// Default avatars: stored in /public/default-avatars
44+
app.use(
45+
"/default-avatars",
46+
express.static(path.join(__dirnameLocal, "public", "default-avatars"))
47+
);
48+
49+
// -------------------------
50+
// API Routes
51+
// -------------------------
2852
app.use("/api/auth", authRoutes);
2953
app.use("/api/health", healthRoutes);
3054
app.use("/api/rooms", roomRoutes);
3155

3256
// 404 handler
3357
app.use(notFoundHandler);
34-
// Error Handler
58+
59+
// Error handler
3560
app.use(errorHandler);
3661

3762
export default app;

0 commit comments

Comments
 (0)