From 9cd3fd57e4da2f0ed983fec3cff025105f0259f1 Mon Sep 17 00:00:00 2001 From: BalrajSinghGidda Date: Thu, 12 Feb 2026 13:06:54 +0530 Subject: [PATCH] Third Iteration --- .classpath | 57 ++++++++++ .project | 34 ++++++ .settings/org.eclipse.core.resources.prefs | 4 + .settings/org.eclipse.jdt.apt.core.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 9 ++ .settings/org.eclipse.m2e.core.prefs | 4 + college.db | Bin 53248 -> 53248 bytes .../college/management/AdminDashboard.java | 103 +++++++++++++++--- .../college/management/FacultyDashboard.java | 85 +++++++++++---- .../college/management/StudentDashboard.java | 16 +-- .../college/management/AdminDashboard$1.class | Bin 0 -> 1214 bytes .../AdminDashboard$TableValue.class | Bin 541 -> 541 bytes .../college/management/AdminDashboard.class | Bin 22105 -> 26214 bytes .../FacultyDashboard$TimetableEntry.class | Bin 1070 -> 1070 bytes .../college/management/FacultyDashboard.class | Bin 18424 -> 21039 bytes .../StudentDashboard$MarkRecord.class | Bin 758 -> 758 bytes .../college/management/StudentDashboard.class | Bin 15411 -> 14127 bytes .../compile/default-compile/createdFiles.lst | 1 + 18 files changed, 265 insertions(+), 50 deletions(-) create mode 100644 .classpath create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 target/classes/com/college/management/AdminDashboard$1.class diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..4e7f670 --- /dev/null +++ b/.classpath @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..1ec79ca --- /dev/null +++ b/.project @@ -0,0 +1,34 @@ + + + management-system + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1770804693954 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..e96c048 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/college.db b/college.db index 29d0dc7fdceec126cd49f12fa32e2b941bc9da19..a88525e6e6157a96ea1904444384e846b40c85db 100644 GIT binary patch delta 446 zcmZXQKTiTd5XE=dgK$JM5;Vjhx~Pd2dK_XRl}6&9XkqlMb>&v?BHWSN#a2E6kxxCFXC9J= zsZ2`ln9M116_Yrw3hs%C&WfTb7;aH_L~B7~H*DV3%NBItM1|#6 zOD1KN3TGZYaXotMN{bqt6)oS6GRLI*vTAZiig{hrm(rS^&gh+rLL&s~2;Sfx>VBUZ zOj8m>@mQ9bW!tez?jKFHrF?ENuj|eGJHwZ?5cJ>?TE46f1xi9l#p7A!=M_}{CtK8L zU_g*Qk@-htbIsnP>XolN2&8cWO-R`<4N*8N#tUj0dC3+XZGdQrts On?O5T8=FS|u4&)b>v@0x delta 205 zcmZozz}&Ead4e>f(nJ|&Mx~7j3-ty0Z!)m*uVLW-%Kwc2Apd#(HJb$mX7Pszvoh;) z78GTcC6=Vd=cX1HC#I(s^Dr~ZGQv1a94yS@oVkfb*~JVD47{8$ab6~7Mb5;MlGMDE z#JuEGPDW;N#?s={qGEwf4lD+XSsD};vp5KFF!66-;J?bhVY8sZ68^~>)`ze$@;_kU sf3R85;Tr$s2m4ik{I?AJZ-M;B{KA4PtPJAP3_hOj9wEwZKww}10HT&WF8}}l diff --git a/src/main/java/com/college/management/AdminDashboard.java b/src/main/java/com/college/management/AdminDashboard.java index e894116..29197dd 100644 --- a/src/main/java/com/college/management/AdminDashboard.java +++ b/src/main/java/com/college/management/AdminDashboard.java @@ -118,29 +118,63 @@ public class AdminDashboard { root.setCenter(content); } + public static void loadEventsIntoList(ListView listView) { + try (Connection conn = DatabaseManager.getConnection(); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT title, description, event_date FROM events ORDER BY event_date ASC")) { + while (rs.next()) { + listView.getItems().add(rs.getString("event_date") + " - " + rs.getString("title") + "\n" + rs.getString("description")); + } + } catch (SQLException e) { e.printStackTrace(); } + } + private void showEventManagement(BorderPane root) { VBox content = new VBox(15); content.setPadding(new Insets(20)); - Label title = new Label("Manage Events"); + Label title = new Label("College Events"); title.setStyle("-fx-font-size: 24px; -fx-font-weight: bold;"); - TextField txtTitle = new TextField(); txtTitle.setPromptText("Event Title"); - DatePicker datePicker = new DatePicker(); - TextArea txtDesc = new TextArea(); txtDesc.setPromptText("Event Description"); - Button btnAdd = new Button("Add Event"); + ListView listView = new ListView<>(); + loadEventsIntoList(listView); - btnAdd.setOnAction(e -> { - try (Connection conn = DatabaseManager.getConnection(); - PreparedStatement pstmt = conn.prepareStatement("INSERT INTO events (title, description, event_date) VALUES (?, ?, ?)")) { - pstmt.setString(1, txtTitle.getText()); - pstmt.setString(2, txtDesc.getText()); - pstmt.setString(3, datePicker.getValue().toString()); - pstmt.executeUpdate(); - new Alert(Alert.AlertType.INFORMATION, "Event added!").show(); - } catch (SQLException ex) { ex.printStackTrace(); } + Button btnShowForm = new Button("Create New Event"); + btnShowForm.setStyle("-fx-background-color: #128c7e; -fx-text-fill: white; -fx-font-weight: bold;"); + + btnShowForm.setOnAction(e -> { + // Creation Form + VBox form = new VBox(10); + form.setPadding(new Insets(10)); + form.setStyle("-fx-border-color: #dcdcdc; -fx-border-radius: 5; -fx-padding: 15;"); + + TextField txtTitle = new TextField(); txtTitle.setPromptText("Event Title"); + DatePicker datePicker = new DatePicker(); + TextArea txtDesc = new TextArea(); txtDesc.setPromptText("Event Description"); + + HBox actions = new HBox(10); + Button btnSave = new Button("Post Event"); + Button btnCancel = new Button("Cancel"); + actions.getChildren().addAll(btnSave, btnCancel); + + btnSave.setOnAction(ev -> { + if (txtTitle.getText().isEmpty() || datePicker.getValue() == null) return; + try (Connection conn = DatabaseManager.getConnection(); + PreparedStatement pstmt = conn.prepareStatement("INSERT INTO events (title, description, event_date) VALUES (?, ?, ?)")) { + pstmt.setString(1, txtTitle.getText()); + pstmt.setString(2, txtDesc.getText()); + pstmt.setString(3, datePicker.getValue().toString()); + pstmt.executeUpdate(); + new Alert(Alert.AlertType.INFORMATION, "Event added!").show(); + showEventManagement(root); // Refresh view + } catch (SQLException ex) { ex.printStackTrace(); } + }); + + btnCancel.setOnAction(ev -> content.getChildren().remove(form)); + + form.getChildren().addAll(new Label("New Event Details"), txtTitle, datePicker, txtDesc, actions); + content.getChildren().add(form); }); - content.getChildren().addAll(title, txtTitle, datePicker, txtDesc, btnAdd); + content.getChildren().addAll(title, listView, btnShowForm); root.setCenter(content); } @@ -226,6 +260,42 @@ public class AdminDashboard { root.setCenter(content); } + public static void loadNoticesIntoList(ListView listView) { + try (Connection conn = DatabaseManager.getConnection(); + Statement stmt = conn.createStatement(); + ResultSet rs = stmt.executeQuery( + "SELECT n.title, n.content, n.date, u.role " + + "FROM notices n " + + "LEFT JOIN users u ON n.posted_by = u.id " + + "ORDER BY n.id DESC")) { + while (rs.next()) { + String role = rs.getString("role"); + String prefix = "ADMIN".equals(role) ? "[PRIORITY] " : ""; + String notice = prefix + rs.getString("date") + " - " + rs.getString("title") + "\n" + rs.getString("content"); + listView.getItems().add(notice); + } + } catch (SQLException e) { e.printStackTrace(); } + + // Custom cell factory for highlighting + listView.setCellFactory(lv -> new ListCell() { + @Override + protected void updateItem(String item, boolean empty) { + super.updateItem(item, empty); + if (empty || item == null) { + setText(null); + setStyle(""); + } else { + setText(item); + if (item.startsWith("[PRIORITY]")) { + setStyle("-fx-font-weight: bold; -fx-text-fill: #d32f2f;"); // Red bold for priority + } else { + setStyle(""); + } + } + } + }); + } + private void showNoticeManagement(BorderPane root) { VBox content = new VBox(15); content.setPadding(new Insets(20)); @@ -242,10 +312,11 @@ public class AdminDashboard { btnPost.setOnAction(e -> { if (txtTitle.getText().isEmpty() || txtContent.getText().isEmpty()) return; try (Connection conn = DatabaseManager.getConnection(); - PreparedStatement pstmt = conn.prepareStatement("INSERT INTO notices (title, content, date) VALUES (?, ?, ?)")) { + PreparedStatement pstmt = conn.prepareStatement("INSERT INTO notices (title, content, date, posted_by) VALUES (?, ?, ?, ?)")) { pstmt.setString(1, txtTitle.getText()); pstmt.setString(2, txtContent.getText()); pstmt.setString(3, java.time.LocalDate.now().toString()); + pstmt.setInt(4, userId); pstmt.executeUpdate(); txtTitle.clear(); txtContent.clear(); diff --git a/src/main/java/com/college/management/FacultyDashboard.java b/src/main/java/com/college/management/FacultyDashboard.java index 6f8bc6e..da5cb0a 100644 --- a/src/main/java/com/college/management/FacultyDashboard.java +++ b/src/main/java/com/college/management/FacultyDashboard.java @@ -37,12 +37,13 @@ public class FacultyDashboard { Button btnMarks = createSidebarButton("Marks Entry"); Button btnTimetable = createSidebarButton("My Timetable"); Button btnEvents = createSidebarButton("Events"); + Button btnNotices = createSidebarButton("Notices"); Button btnChat = createSidebarButton("Global Chat"); Button btnPrivateChat = createSidebarButton("Private Chat"); Button btnSettings = createSidebarButton("Settings"); Button btnLogout = createSidebarButton("Logout"); - sidebar.getChildren().addAll(brand, new Separator(), btnAttendance, btnMarks, btnTimetable, btnEvents, btnChat, btnPrivateChat, btnSettings, btnLogout); + sidebar.getChildren().addAll(brand, new Separator(), btnAttendance, btnMarks, btnTimetable, btnEvents, btnNotices, btnChat, btnPrivateChat, btnSettings, btnLogout); root.setLeft(sidebar); applyTheme(root); @@ -52,6 +53,7 @@ public class FacultyDashboard { btnMarks.setOnAction(e -> showMarksEntry(root)); btnTimetable.setOnAction(e -> showTimetable(root)); btnEvents.setOnAction(e -> showEvents(root)); + btnNotices.setOnAction(e -> showNotices(root)); btnChat.setOnAction(e -> AdminDashboard.showChat(root, username, userId)); btnPrivateChat.setOnAction(e -> root.setCenter(new PrivateChatUI(userId).getView())); btnSettings.setOnAction(e -> root.setCenter(new SettingsUI(userId, () -> applyTheme(root)).getView())); @@ -62,6 +64,68 @@ public class FacultyDashboard { stage.setScene(scene); } + private void showEvents(BorderPane root) { + VBox content = new VBox(15); + content.setPadding(new Insets(20)); + Label title = new Label("College Events"); + title.setStyle("-fx-font-size: 24px; -fx-font-weight: bold;"); + + ListView listView = new ListView<>(); + AdminDashboard.loadEventsIntoList(listView); + + Button btnShowForm = new Button("Create New Event"); + btnShowForm.setStyle("-fx-background-color: #128c7e; -fx-text-fill: white; -fx-font-weight: bold;"); + + btnShowForm.setOnAction(e -> { + VBox form = new VBox(10); + form.setPadding(new Insets(15)); + form.setStyle("-fx-border-color: #dcdcdc; -fx-border-radius: 5;"); + + TextField txtTitle = new TextField(); txtTitle.setPromptText("Event Title"); + DatePicker datePicker = new DatePicker(); + TextArea txtDesc = new TextArea(); txtDesc.setPromptText("Event Description"); + + HBox actions = new HBox(10); + Button btnSave = new Button("Post Event"); + Button btnCancel = new Button("Cancel"); + actions.getChildren().addAll(btnSave, btnCancel); + + btnSave.setOnAction(ev -> { + if (txtTitle.getText().isEmpty() || datePicker.getValue() == null) return; + try (Connection conn = DatabaseManager.getConnection(); + PreparedStatement pstmt = conn.prepareStatement("INSERT INTO events (title, description, event_date) VALUES (?, ?, ?)")) { + pstmt.setString(1, txtTitle.getText()); + pstmt.setString(2, txtDesc.getText()); + pstmt.setString(3, datePicker.getValue().toString()); + pstmt.executeUpdate(); + new Alert(Alert.AlertType.INFORMATION, "Event added!").show(); + showEvents(root); + } catch (SQLException ex) { ex.printStackTrace(); } + }); + + btnCancel.setOnAction(ev -> content.getChildren().remove(form)); + + form.getChildren().addAll(new Label("New Event Details"), txtTitle, datePicker, txtDesc, actions); + content.getChildren().add(form); + }); + + content.getChildren().addAll(title, listView, btnShowForm); + root.setCenter(content); + } + + private void showNotices(BorderPane root) { + VBox content = new VBox(15); + content.setPadding(new Insets(20)); + Label title = new Label("College Notices"); + title.setStyle("-fx-font-size: 22px; -fx-font-weight: bold;"); + + ListView listView = new ListView<>(); + AdminDashboard.loadNoticesIntoList(listView); + + content.getChildren().addAll(title, listView); + root.setCenter(content); + } + private void applyTheme(BorderPane root) { root.getStylesheets().clear(); root.getStylesheets().add(getClass().getResource("/com/college/management/css/chat.css").toExternalForm()); @@ -86,25 +150,6 @@ public class FacultyDashboard { root.setCenter(content); } - private void showEvents(BorderPane root) { - VBox content = new VBox(15); - content.setPadding(new Insets(20)); - Label title = new Label("Upcoming Events"); - title.setStyle("-fx-font-size: 22px; -fx-font-weight: bold;"); - - ListView listView = new ListView<>(); - try (Connection conn = DatabaseManager.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT title, description, event_date FROM events ORDER BY event_date ASC")) { - while (rs.next()) { - listView.getItems().add(rs.getString("event_date") + " - " + rs.getString("title") + "\n" + rs.getString("description")); - } - } catch (SQLException e) { e.printStackTrace(); } - - content.getChildren().addAll(title, listView); - root.setCenter(content); - } - private void setupTimetableTable(TableView table) { TableColumn colDay = new TableColumn<>("Day"); colDay.setCellValueFactory(new PropertyValueFactory<>("day")); diff --git a/src/main/java/com/college/management/StudentDashboard.java b/src/main/java/com/college/management/StudentDashboard.java index 320c1d9..5f1b50e 100644 --- a/src/main/java/com/college/management/StudentDashboard.java +++ b/src/main/java/com/college/management/StudentDashboard.java @@ -120,13 +120,7 @@ public class StudentDashboard { title.setStyle("-fx-font-size: 22px; -fx-font-weight: bold;"); ListView listView = new ListView<>(); - try (Connection conn = DatabaseManager.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT title, description, event_date FROM events ORDER BY event_date ASC")) { - while (rs.next()) { - listView.getItems().add(rs.getString("event_date") + " - " + rs.getString("title") + "\n" + rs.getString("description")); - } - } catch (SQLException e) { e.printStackTrace(); } + AdminDashboard.loadEventsIntoList(listView); content.getChildren().addAll(title, listView); root.setCenter(content); @@ -199,13 +193,7 @@ public class StudentDashboard { title.setStyle("-fx-font-size: 22px; -fx-font-weight: bold;"); ListView listView = new ListView<>(); - try (Connection conn = DatabaseManager.getConnection(); - Statement stmt = conn.createStatement(); - ResultSet rs = stmt.executeQuery("SELECT title, content, date FROM notices ORDER BY id DESC")) { - while (rs.next()) { - listView.getItems().add(rs.getString("date") + " - " + rs.getString("title") + "\n" + rs.getString("content")); - } - } catch (SQLException e) { e.printStackTrace(); } + AdminDashboard.loadNoticesIntoList(listView); content.getChildren().addAll(title, listView); root.setCenter(content); diff --git a/target/classes/com/college/management/AdminDashboard$1.class b/target/classes/com/college/management/AdminDashboard$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1814ac3b031d3a34277b913cbf387671a5931f90 GIT binary patch literal 1214 zcma)5TTc@~7(LSqEp>rX1VIXxJ8Uf#iWgc!LO^4aatS3EF+NOpr|sf)m+TG#KSiHS zeDKR+u#nbiH2}wcEfB~&KCFU6_f1GL$(JR;@1csfufxg_Lqj5}T=7 zww+H+nYrcaam(*tc27M+JhN1U1HYGjQ5A+V@zgPF*QYYK1w^pI zFmt1LH9W#&!nIv)?zqx2gkN-|t9qGXvfW4jRD5WOGioYoq8;JO=dL=h6&*)-n>P1- z;Uh)04AA=lf;8yifMJSeS+dlK2BLYI!|$N!iSd@ZyS=X%gDu8c!UY?p z7o9{e8^Zt_N0Oy5!6u-yN#xixR@q!jQL4?_QAGTh$3jbG9y-z#!+pZ-La4WAC>-BX z&z*cq@k&Q=OizEsNV194|6-1H7&3ITo3a-tOCyX$ngl3!4_bB!%Va~y;US*1JUOhA LjgcgcEPX!#0+J5F literal 0 HcmV?d00001 diff --git a/target/classes/com/college/management/AdminDashboard$TableValue.class b/target/classes/com/college/management/AdminDashboard$TableValue.class index d3cfec1ee95bf987454704491a637163882c1732..273f28e306124aaefb1c691c57bf4abeafb08fd7 100644 GIT binary patch delta 13 VcmbQsGM8n;14hPqlOHnL001PN1tb6f delta 13 UcmbQsGM8n;14hR1$qyNA03$jC-2eap diff --git a/target/classes/com/college/management/AdminDashboard.class b/target/classes/com/college/management/AdminDashboard.class index b494cec35e2976b73e352a1994e77eb7fffe2954..3ab231b98c5ad26e7f4b54d929a85a090daa7e09 100644 GIT binary patch literal 26214 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 T@*u?jeW)joSRfXPMP&R3<;pN} delta 5223 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