Skip to content

Implement meeting management features: add routes and controllers for… - #4

Merged
Ashutoshmore24 merged 1 commit into
mainfrom
Meeting-Management
Aug 9, 2026
Merged

Implement meeting management features: add routes and controllers for…#4
Ashutoshmore24 merged 1 commit into
mainfrom
Meeting-Management

Conversation

@Ashutoshmore24

Copy link
Copy Markdown
Owner

… creating, joining, scheduling, and managing meetings; include personal room functionality and meeting code generation.

… creating, joining, scheduling, and managing meetings; include personal room functionality and meeting code generation.
Copilot AI lite review requested due to automatic review settings August 9, 2026 08:11
@Ashutoshmore24
Ashutoshmore24 merged commit 3be2b95 into main Aug 9, 2026
1 check passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces backend support for meeting management by adding a Meeting model plus protected API endpoints for creating, joining, scheduling, ending meetings, and supporting “personal room” meetings with generated meeting codes.

Changes:

  • Added /api/meetings routes wired into the server.
  • Implemented meeting controllers for instant/scheduled meetings, history/upcoming queries, ending meetings, and personal room flows.
  • Added Meeting Mongoose model and a meeting-code generator utility.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
backend/src/server.js Registers the new meetings router under /api/meetings.
backend/src/routes/meeting.routes.js Defines the meeting API endpoints and middleware usage.
backend/src/models/Meeting.js Introduces the Meeting schema (meetingCode, host, type, status, participants, timestamps).
backend/src/lib/generateMeetingCode.js Adds meeting code generation helper used by meeting creation/join flows.
backend/src/controllers/meeting.controller.js Implements core meeting business logic for create/join/schedule/history/end/personal room.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +1 to +9
const generateMeetingCode = () => {
const part1 = Math.floor(100 + Math.random() * 900);
const part2 = Math.floor(100 + Math.random() * 900);
const part3 = Math.floor(100 + Math.random() * 900);

return `${part1}-${part2}-${part3}`; //code like this 452-819-671
};

export default generateMeetingCode; No newline at end of file
Comment on lines +1 to +18
import express from "express";
import { createInstantMeeting , joinMeeting, scheduleMeeting, getUpcommingMeetings, getHistoryMeetings, endMeeting, getPersonalRoom, joinPersonalRoom} from "../controllers/meeting.controller.js";
import { protectRoute } from "../middleware/auth.middleware.js";

const router = express.Router();

router.post("/create", protectRoute, createInstantMeeting);
router.post("/join", protectRoute, joinMeeting);
router.post("/schedule", protectRoute, scheduleMeeting);
router.get("/upcoming", protectRoute, getUpcommingMeetings);
router.get("/history", protectRoute, getHistoryMeetings);
router.patch("/:meetingId/end", protectRoute, endMeeting);

router.get("/personal-room", protectRoute, getPersonalRoom);
router.post("/personal-room/join", protectRoute, joinPersonalRoom);


export default router; No newline at end of file
@@ -0,0 +1,18 @@
import express from "express";
import { createInstantMeeting , joinMeeting, scheduleMeeting, getUpcommingMeetings, getHistoryMeetings, endMeeting, getPersonalRoom, joinPersonalRoom} from "../controllers/meeting.controller.js";
Comment on lines +45 to +51
const { meetingCode } = req.body;
if (!meetingCode) {
return res.status(400).json({
success: false,
message: "Meeting code is required",
});
}
Comment on lines +61 to +66
if (meeting.status === "ended") {
return res.status(400).json({
success: false,
message: "Meeting has ended",
});
}
Comment on lines +316 to +320
const { personalRoomId } = req.body;

const owner = await User.findOne({
personalRoomId,
});
Comment on lines +335 to +345
if (!meeting) {
meeting = await Meeting.create({
title: `${owner.fullName}'s Personal Room`,
meetingCode: generateMeetingCode(),
host: owner._id,
meetingType: "personal",
status: "active",
participants: [owner._id],
startedAt: new Date(),
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants