├── .gitattributes ├── README.md ├── gitattributes └── studentManagementSystem ├── build.xml ├── build ├── built-jar.properties └── classes │ ├── image │ └── logo.jpg │ └── studentmanagementsystem │ ├── FXMLDocument.fxml │ ├── FXMLDocumentController.class │ ├── StudentManagementSystem.class │ ├── courseData.class │ ├── dashboard.fxml │ ├── dashboardController.class │ ├── dashboardDesign.css │ ├── database.class │ ├── getData.class │ ├── loginDesign.css │ └── studentData.class ├── dist ├── lib │ ├── fontawesomefx-8.2.jar │ ├── jfreechart-1.0.19.jar │ ├── mysql-connector-java-5.1.48.jar │ └── ojdbc14-10.2.0.2.0.jar ├── studentManagementSystem.html ├── studentManagementSystem.jar ├── studentManagementSystem.jnlp └── web-files │ ├── dtjava.js │ ├── error.png │ ├── get_java.png │ ├── get_javafx.png │ ├── javafx-chrome.png │ ├── javafx-loading-100x100.gif │ ├── javafx-loading-25x25.gif │ ├── upgrade_java.png │ └── upgrade_javafx.png ├── manifest.mf ├── nbproject ├── build-impl.xml ├── configs │ ├── Run_as_WebStart.properties │ └── Run_in_Browser.properties ├── genfiles.properties ├── jfx-impl.xml ├── private │ ├── configs │ │ ├── Run_as_WebStart.properties │ │ └── Run_in_Browser.properties │ ├── private.properties │ └── private.xml ├── project.properties └── project.xml └── src └── studentmanagementsystem ├── FXMLDocument.fxml ├── FXMLDocumentController.java ├── StudentManagementSystem.java ├── courseData.java ├── dashboard.fxml ├── dashboardController.java ├── dashboardDesign.css ├── database.java ├── getData.java ├── loginDesign.css └── studentData.java /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # StudentManagementSystem 2 | Student Management System Project in JavaFX 3 | -------------------------------------------------------------------------------- /gitattributes: -------------------------------------------------------------------------------- 1 | ## Unity ## 2 | 3 | *.cs diff=csharp text 4 | *.cginc text 5 | *.shader text 6 | 7 | *.mat merge=unityyamlmerge eol=lf 8 | *.anim merge=unityyamlmerge eol=lf 9 | *.unity merge=unityyamlmerge eol=lf 10 | *.prefab merge=unityyamlmerge eol=lf 11 | *.physicsMaterial2D merge=unityyamlmerge eol=lf 12 | *.physicMaterial merge=unityyamlmerge eol=lf 13 | *.asset merge=unityyamlmerge eol=lf 14 | *.meta merge=unityyamlmerge eol=lf 15 | *.controller merge=unityyamlmerge eol=lf 16 | 17 | 18 | ## git-lfs ## 19 | 20 | #Image 21 | *.jpg filter=lfs diff=lfs merge=lfs -text 22 | *.jpeg filter=lfs diff=lfs merge=lfs -text 23 | *.png filter=lfs diff=lfs merge=lfs -text 24 | *.gif filter=lfs diff=lfs merge=lfs -text 25 | *.psd filter=lfs diff=lfs merge=lfs -text 26 | *.ai filter=lfs diff=lfs merge=lfs -text 27 | *.tif filter=lfs diff=lfs merge=lfs -text 28 | 29 | #Audio 30 | *.mp3 filter=lfs diff=lfs merge=lfs -text 31 | *.wav filter=lfs diff=lfs merge=lfs -text 32 | *.ogg filter=lfs diff=lfs merge=lfs -text 33 | 34 | #Video 35 | *.mp4 filter=lfs diff=lfs merge=lfs -text 36 | *.mov filter=lfs diff=lfs merge=lfs -text 37 | 38 | #3D Object 39 | *.FBX filter=lfs diff=lfs merge=lfs -text 40 | *.fbx filter=lfs diff=lfs merge=lfs -text 41 | *.blend filter=lfs diff=lfs merge=lfs -text 42 | *.obj filter=lfs diff=lfs merge=lfs -text 43 | 44 | #ETC 45 | *.a filter=lfs diff=lfs merge=lfs -text 46 | *.exr filter=lfs diff=lfs merge=lfs -text 47 | *.tga filter=lfs diff=lfs merge=lfs -text 48 | *.pdf filter=lfs diff=lfs merge=lfs -text 49 | *.zip filter=lfs diff=lfs merge=lfs -text 50 | *.dll filter=lfs diff=lfs merge=lfs -text 51 | *.unitypackage filter=lfs diff=lfs merge=lfs -text 52 | *.aif filter=lfs diff=lfs merge=lfs -text 53 | *.ttf filter=lfs diff=lfs merge=lfs -text 54 | *.rns filter=lfs diff=lfs merge=lfs -text 55 | *.reason filter=lfs diff=lfs merge=lfs -text 56 | *.lxo filter=lfs diff=lfs merge=lfs -text 57 | *.bc filter=lfs diff=lfs merge=lfs -text -------------------------------------------------------------------------------- /studentManagementSystem/build.xml: -------------------------------------------------------------------------------- 1 | 2 | Builds, tests, and runs the project studentManagementSystem. 3 | 4 | 53 | 54 | -------------------------------------------------------------------------------- /studentManagementSystem/build/built-jar.properties: -------------------------------------------------------------------------------- 1 | #Sun, 25 Sep 2022 08:59:10 +0800 2 | 3 | 4 | C\:\\Users\\WINDOWS\ 10\\Documents\\NetBeansProjects\\studentManagementSystem= 5 | -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/image/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/image/logo.jpg -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/FXMLDocument.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 36 | 37 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/FXMLDocumentController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/FXMLDocumentController.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/StudentManagementSystem.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/StudentManagementSystem.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/courseData.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/courseData.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/dashboard.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 40 | 45 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 66 | 71 | 72 | 77 | 82 | 87 | 92 | 101 | 106 | 107 | 108 | 109 | 110 | 111 |
112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 136 | 141 | 142 | 143 | 144 | 145 | 146 | 151 | 156 | 157 | 158 | 159 | 160 | 161 | 166 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 262 | 263 | 268 | 269 | 274 | 275 | 280 | 281 | 286 | 287 | 292 | 293 | 298 | 299 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 |
439 |
440 |
441 |
442 |
443 |
444 | -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/dashboardController.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/dashboardController.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/dashboardDesign.css: -------------------------------------------------------------------------------- 1 | /* 2 | To change this license header, choose License Headers in Project Properties. 3 | To change this template file, choose Tools | Templates 4 | and open the template in the editor. 5 | */ 6 | /* 7 | Created on : 09 17, 22, 10:45:44 AM 8 | Author : WINDOWS 10 9 | */ 10 | 11 | .top-form{ 12 | -fx-background-color:#fff; 13 | -fx-border-color:#000; 14 | -fx-border-width:.4px .4px .2px .4px; 15 | } 16 | 17 | .semi-top-form{ 18 | -fx-background-color:#efefef; 19 | -fx-border-color:#000; 20 | -fx-border-width:.2px .4px .4px .4px; 21 | } 22 | 23 | .close{ 24 | -fx-background-color:transparent; 25 | -fx-cursor:hand; 26 | } 27 | .close:hover{ 28 | -fx-background-color:#fb3d63; 29 | } 30 | 31 | .minimize{ 32 | -fx-background-color:transparent; 33 | -fx-cursor:hand; 34 | } 35 | .minimize:hover{ 36 | -fx-background-color:#ddd; 37 | } 38 | 39 | .nav-form{ 40 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 41 | } 42 | 43 | .nav-btn{ 44 | -fx-background-color:transparent; 45 | -fx-cursor:hand; 46 | -fx-text-fill:#fff; 47 | -fx-font-size:15px; 48 | -fx-font-family:"Arial"; 49 | -fx-alignment:CENTER-LEFT; 50 | } 51 | 52 | .logout{ 53 | -fx-background-color:#2c84bf; 54 | -fx-background-radius:10px; 55 | -fx-cursor:hand; 56 | } 57 | .logout:hover{ 58 | -fx-background-color:#1593e7; 59 | } 60 | 61 | .shadow{ 62 | -fx-effect:dropshadow(three-pass-box, rgba(0,0,0,0.4), 6,0,0,0); 63 | } 64 | 65 | .white-bg{ 66 | -fx-background-color:#fff; 67 | -fx-background-radius:8px; 68 | } 69 | 70 | .card{ 71 | -fx-background-color:linear-gradient(to right, #344250, #3c6382); 72 | -fx-background-radius:4px; 73 | } 74 | 75 | .search{ 76 | -fx-background-color:transparent; 77 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 78 | -fx-border-width:.8px; 79 | -fx-border-radius:8px; 80 | -fx-font-family:"Tahoma"; 81 | -fx-font-size:14px; 82 | -fx-padding:0px 0px 0px 28px; 83 | } 84 | 85 | .search:focused{ 86 | -fx-border-width:1.8px; 87 | } 88 | 89 | .table-view{ 90 | -fx-background-color:transparent; 91 | -fx-padding:0px; 92 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 93 | -fx-border-width:2px; 94 | -fx-border-radius:8px; 95 | } 96 | .table-view .table-column{ 97 | -fx-alignment: CENTER; 98 | } 99 | .table-view .column-header-background{ 100 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 101 | -fx-background-radius:8px 8px 0px 0px; 102 | -fx-background-inset: 0 0 0 0; 103 | } 104 | .table-view .column-header, .filter{ 105 | -fx-background-color:transparent; 106 | -fx-size:40px; 107 | } 108 | .table-view .column-header .label{ 109 | -fx-text-fill:#fff; 110 | -fx-font-family:"Arial"; 111 | } 112 | 113 | .textfield{ 114 | -fx-background-color:linear-gradient(to bottom, #efefef, #eee); 115 | -fx-background-radius:4px; 116 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 117 | -fx-border-width:.8px; 118 | -fx-font-family:"Tahoma"; 119 | -fx-border-radius:4px; 120 | } 121 | .textfield:focused{ 122 | -fx-background-color:#fff; 123 | -fx-border-width:1px; 124 | } 125 | 126 | .insert-btn{ 127 | -fx-background-color:transparent; 128 | -fx-text-fill:red; 129 | -fx-font-size:14px; 130 | -fx-font-family:"Arial"; 131 | -fx-cursor:hand; 132 | } 133 | 134 | .add-btn{ 135 | -fx-background-color:#2d5278; 136 | -fx-background-radius:8px; 137 | -fx-cursor:hand; 138 | -fx-text-fill:#fff; 139 | -fx-font-size:14px; 140 | -fx-font-family:"Arial"; 141 | } 142 | .add-btn:hover{ 143 | -fx-background-color:#2268ae; 144 | } 145 | 146 | .update-btn{ 147 | -fx-background-color:#2d7755; 148 | -fx-background-radius:8px; 149 | -fx-cursor:hand; 150 | -fx-text-fill:#fff; 151 | -fx-font-size:14px; 152 | -fx-font-family:"Arial"; 153 | } 154 | .update-btn:hover{ 155 | -fx-background-color:#22ad72; 156 | } 157 | 158 | .delete-btn{ 159 | -fx-background-color:#90242f; 160 | -fx-background-radius:8px; 161 | -fx-cursor:hand; 162 | -fx-text-fill:#fff; 163 | -fx-font-size:14px; 164 | -fx-font-family:"Arial"; 165 | } 166 | .delete-btn:hover{ 167 | -fx-background-color:#c51f32; 168 | } 169 | 170 | .clear-btn{ 171 | -fx-background-color:#6e2275; 172 | -fx-background-radius:8px; 173 | -fx-cursor:hand; 174 | -fx-text-fill:#fff; 175 | -fx-font-size:14px; 176 | -fx-font-family:"Arial"; 177 | } 178 | .clear-btn:hover{ 179 | -fx-background-color:#ae21ac; 180 | } 181 | 182 | .label-info{ 183 | -fx-background-color:#fff; 184 | -fx-background-radius:4px; 185 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 186 | -fx-border-width:.8px; 187 | -fx-font-family:"Tahoma"; 188 | -fx-border-radius:4px; 189 | -fx-padding:0px 0px 0px 5px; 190 | } 191 | /* NOW FINALLY WE FINISHED THE COMPONENTS, NOW LETS NAME ALL OF THEM : )*/ -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/database.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/database.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/getData.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/getData.class -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/loginDesign.css: -------------------------------------------------------------------------------- 1 | /* 2 | To change this license header, choose License Headers in Project Properties. 3 | To change this template file, choose Tools | Templates 4 | and open the template in the editor. 5 | */ 6 | /* 7 | Created on : 09 17, 22, 10:12:46 AM 8 | Author : WINDOWS 10 9 | */ 10 | 11 | .left-form{ 12 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 13 | -fx-border-color:#000; 14 | -fx-border-width:.4px 0px .4px .4px; 15 | } 16 | 17 | .right-form{ 18 | -fx-background-color:#fff; 19 | -fx-border-color:#000; 20 | -fx-border-width:.4px .4px .4px 0px; 21 | } 22 | 23 | .close{ 24 | -fx-background-color:transparent; 25 | -fx-cursor:hand; 26 | } 27 | .close:hover{ 28 | -fx-background-color:#fb3d63; 29 | } 30 | 31 | .textfield{ 32 | -fx-background-color:linear-gradient(to bottom, #efefef, #eee); 33 | -fx-background-radius:5px; 34 | -fx-border-color:#000; 35 | -fx-border-width:.2px; 36 | -fx-border-radius:5px; 37 | -fx-font-size:13px; 38 | -fx-font-family:"Tahoma"; 39 | } 40 | .textfield:focused{ 41 | -fx-background-color:#fff; 42 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 43 | -fx-border-width:.8px; 44 | } 45 | 46 | .login-btn{ 47 | -fx-background-color:linear-gradient(to bottom, #2968a7, #14405d); 48 | -fx-background-radius:4px; 49 | -fx-cursor:hand; 50 | -fx-text-fill:#fff; 51 | -fx-font-size:14px; 52 | -fx-font-family:"Arial"; 53 | } 54 | .login-btn:hover{ 55 | -fx-background-color:linear-gradient(to bottom, #277bd0, #1b6fa4); 56 | } -------------------------------------------------------------------------------- /studentManagementSystem/build/classes/studentmanagementsystem/studentData.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/build/classes/studentmanagementsystem/studentData.class -------------------------------------------------------------------------------- /studentManagementSystem/dist/lib/fontawesomefx-8.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/lib/fontawesomefx-8.2.jar -------------------------------------------------------------------------------- /studentManagementSystem/dist/lib/jfreechart-1.0.19.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/lib/jfreechart-1.0.19.jar -------------------------------------------------------------------------------- /studentManagementSystem/dist/lib/mysql-connector-java-5.1.48.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/lib/mysql-connector-java-5.1.48.jar -------------------------------------------------------------------------------- /studentManagementSystem/dist/lib/ojdbc14-10.2.0.2.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/lib/ojdbc14-10.2.0.2.0.jar -------------------------------------------------------------------------------- /studentManagementSystem/dist/studentManagementSystem.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | 38 | 39 | 40 |

Test page for studentManagementSystem

41 | Webstart: click to launch this app as webstart


42 | 43 | 44 |
45 | 46 | -------------------------------------------------------------------------------- /studentManagementSystem/dist/studentManagementSystem.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/studentManagementSystem.jar -------------------------------------------------------------------------------- /studentManagementSystem/dist/studentManagementSystem.jnlp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | studentManagementSystem 5 | WINDOWS 10 6 | null 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/error.png -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/get_java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/get_java.png -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/get_javafx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/get_javafx.png -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/javafx-chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/javafx-chrome.png -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/javafx-loading-100x100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/javafx-loading-100x100.gif -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/javafx-loading-25x25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/javafx-loading-25x25.gif -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/upgrade_java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/upgrade_java.png -------------------------------------------------------------------------------- /studentManagementSystem/dist/web-files/upgrade_javafx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcoman2/StudentManagementSystem/5faefd174097704404068ef808e77b9b25676671/studentManagementSystem/dist/web-files/upgrade_javafx.png -------------------------------------------------------------------------------- /studentManagementSystem/manifest.mf: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | X-COMMENT: Main-Class will be added automatically by build 3 | 4 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/configs/Run_as_WebStart.properties: -------------------------------------------------------------------------------- 1 | # Do not modify this property in this configuration. It can be re-generated. 2 | $label=Run as WebStart 3 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/configs/Run_in_Browser.properties: -------------------------------------------------------------------------------- 1 | # Do not modify this property in this configuration. It can be re-generated. 2 | $label=Run in Browser 3 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/genfiles.properties: -------------------------------------------------------------------------------- 1 | build.xml.data.CRC32=0b1199f9 2 | build.xml.script.CRC32=446de782 3 | build.xml.stylesheet.CRC32=8064a381@1.80.1.48 4 | # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. 5 | # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. 6 | nbproject/build-impl.xml.data.CRC32=0b1199f9 7 | nbproject/build-impl.xml.script.CRC32=15999bd7 8 | nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 9 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/private/configs/Run_as_WebStart.properties: -------------------------------------------------------------------------------- 1 | # Do not modify this property in this configuration. It can be re-generated. 2 | javafx.run.as=webstart 3 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/private/configs/Run_in_Browser.properties: -------------------------------------------------------------------------------- 1 | # Do not modify this property in this configuration. It can be re-generated. 2 | javafx.run.as=embedded 3 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/private/private.properties: -------------------------------------------------------------------------------- 1 | auxiliary.org-netbeans-modules-projectapi.issue214819_5f_fx_5f_enabled=true 2 | # No need to modify this property unless customizing JavaFX Ant task infrastructure 3 | endorsed.javafx.ant.classpath=. 4 | javafx.run.inbrowser= 5 | javafx.run.inbrowser.path=C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE 6 | user.properties.file=C:\\Users\\WINDOWS 10\\AppData\\Roaming\\NetBeans\\8.2\\build.properties 7 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/private/private.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | file:/C:/Users/WINDOWS%2010/Documents/NetBeansProjects/studentManagementSystem/src/studentmanagementsystem/dashboardController.java 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/project.properties: -------------------------------------------------------------------------------- 1 | annotation.processing.enabled=true 2 | annotation.processing.enabled.in.editor=false 3 | annotation.processing.processor.options= 4 | annotation.processing.processors.list= 5 | annotation.processing.run.all.processors=true 6 | annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output 7 | application.title=studentManagementSystem 8 | application.vendor=WINDOWS 10 9 | build.classes.dir=${build.dir}/classes 10 | build.classes.excludes=**/*.java,**/*.form 11 | # This directory is removed when the project is cleaned: 12 | build.dir=build 13 | build.generated.dir=${build.dir}/generated 14 | build.generated.sources.dir=${build.dir}/generated-sources 15 | # Only compile against the classpath explicitly listed here: 16 | build.sysclasspath=ignore 17 | build.test.classes.dir=${build.dir}/test/classes 18 | build.test.results.dir=${build.dir}/test/results 19 | compile.on.save=true 20 | compile.on.save.unsupported.javafx=true 21 | # Uncomment to specify the preferred debugger connection transport: 22 | #debug.transport=dt_socket 23 | debug.classpath=\ 24 | ${run.classpath} 25 | debug.test.classpath=\ 26 | ${run.test.classpath} 27 | # This directory is removed when the project is cleaned: 28 | dist.dir=dist 29 | dist.jar=${dist.dir}/studentManagementSystem.jar 30 | dist.javadoc.dir=${dist.dir}/javadoc 31 | endorsed.classpath= 32 | excludes= 33 | file.reference.fontawesomefx-8.2.jar=D:\\Users\\WINDOWS 10\\Desktop\\jar files\\New folder\\fontawesomefx-8.2.jar 34 | file.reference.jfreechart-1.0.19.jar=D:\\Users\\WINDOWS 10\\Desktop\\jar files\\jfreechart-1.0.19.jar 35 | file.reference.mysql-connector-java-5.1.48.jar=D:\\Users\\WINDOWS 10\\Desktop\\jar files\\New folder\\mysql-connector-java-5.1.48.jar 36 | file.reference.ojdbc14-10.2.0.2.0.jar=D:\\Users\\WINDOWS 10\\Desktop\\jar files\\New folder\\ojdbc14-10.2.0.2.0.jar 37 | includes=** 38 | # Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects 39 | jar.archive.disabled=true 40 | jar.compress=false 41 | javac.classpath=\ 42 | ${javafx.classpath.extension}:\ 43 | ${file.reference.fontawesomefx-8.2.jar}:\ 44 | ${file.reference.mysql-connector-java-5.1.48.jar}:\ 45 | ${file.reference.ojdbc14-10.2.0.2.0.jar}:\ 46 | ${file.reference.jfreechart-1.0.19.jar} 47 | # Space-separated list of extra javac options 48 | javac.compilerargs= 49 | javac.deprecation=false 50 | javac.processorpath=\ 51 | ${javac.classpath} 52 | javac.source=1.8 53 | javac.target=1.8 54 | javac.test.classpath=\ 55 | ${javac.classpath}:\ 56 | ${build.classes.dir} 57 | javac.test.processorpath=\ 58 | ${javac.test.classpath} 59 | javadoc.additionalparam= 60 | javadoc.author=false 61 | javadoc.encoding=${source.encoding} 62 | javadoc.noindex=false 63 | javadoc.nonavbar=false 64 | javadoc.notree=false 65 | javadoc.private=false 66 | javadoc.splitindex=true 67 | javadoc.use=true 68 | javadoc.version=false 69 | javadoc.windowtitle= 70 | javafx.application.implementation.version=1.0 71 | javafx.binarycss=false 72 | javafx.classpath.extension=\ 73 | ${java.home}/lib/javaws.jar:\ 74 | ${java.home}/lib/deploy.jar:\ 75 | ${java.home}/lib/plugin.jar 76 | javafx.deploy.allowoffline=true 77 | # If true, application update mode is set to 'background', if false, update mode is set to 'eager' 78 | javafx.deploy.backgroundupdate=false 79 | javafx.deploy.embedJNLP=true 80 | javafx.deploy.includeDT=true 81 | # Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) 82 | javafx.disable.concurrent.runs=false 83 | # Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project 84 | javafx.enable.concurrent.external.runs=false 85 | # This is a JavaFX project 86 | javafx.enabled=true 87 | javafx.fallback.class=com.javafx.main.NoJavaFXFallback 88 | # Main class for JavaFX 89 | javafx.main.class=studentmanagementsystem.StudentManagementSystem 90 | javafx.preloader.class= 91 | # This project does not use Preloader 92 | javafx.preloader.enabled=false 93 | javafx.preloader.jar.filename= 94 | javafx.preloader.jar.path= 95 | javafx.preloader.project.path= 96 | javafx.preloader.type=none 97 | # Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. 98 | javafx.rebase.libs=false 99 | javafx.run.height=600 100 | javafx.run.width=800 101 | # Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects 102 | jnlp.enabled=false 103 | # Main class for Java launcher 104 | main.class=com.javafx.main.Main 105 | # For improved security specify narrower Codebase manifest attribute to prevent RIAs from being repurposed 106 | manifest.custom.codebase=* 107 | # Specify Permissions manifest attribute to override default (choices: sandbox, all-permissions) 108 | manifest.custom.permissions= 109 | manifest.file=manifest.mf 110 | meta.inf.dir=${src.dir}/META-INF 111 | platform.active=default_platform 112 | run.classpath=\ 113 | ${dist.jar}:\ 114 | ${javac.classpath}:\ 115 | ${build.classes.dir} 116 | run.test.classpath=\ 117 | ${javac.test.classpath}:\ 118 | ${build.test.classes.dir} 119 | source.encoding=UTF-8 120 | src.dir=src 121 | test.src.dir=test 122 | -------------------------------------------------------------------------------- /studentManagementSystem/nbproject/project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | org.netbeans.modules.java.j2seproject 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | studentManagementSystem 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/FXMLDocument.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 25 | 26 | 27 | 28 | 29 | 30 | 35 | 36 | 37 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/FXMLDocumentController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | import java.net.URL; 9 | import java.sql.Connection; 10 | import java.sql.PreparedStatement; 11 | import java.sql.ResultSet; 12 | import java.util.ResourceBundle; 13 | import javafx.event.ActionEvent; 14 | import javafx.fxml.FXML; 15 | import javafx.fxml.FXMLLoader; 16 | import javafx.fxml.Initializable; 17 | import javafx.scene.Parent; 18 | import javafx.scene.Scene; 19 | import javafx.scene.control.Alert; 20 | import javafx.scene.control.Alert.AlertType; 21 | import javafx.scene.control.Button; 22 | import javafx.scene.control.Label; 23 | import javafx.scene.control.PasswordField; 24 | import javafx.scene.control.TextField; 25 | import javafx.scene.input.MouseEvent; 26 | import javafx.scene.layout.AnchorPane; 27 | import javafx.stage.Stage; 28 | import javafx.stage.StageStyle; 29 | 30 | /** 31 | * 32 | * @author WINDOWS 10 33 | */ 34 | public class FXMLDocumentController implements Initializable { 35 | 36 | @FXML 37 | private AnchorPane main_form; 38 | 39 | @FXML 40 | private TextField username; 41 | 42 | @FXML 43 | private PasswordField password; 44 | 45 | @FXML 46 | private Button loginBtn; 47 | 48 | @FXML 49 | private Button close; 50 | 51 | // DATABASE TOOls 52 | private Connection connect; 53 | private PreparedStatement prepare; 54 | private ResultSet result; 55 | 56 | // NOW LETS CREATE OUR DATABASE : ) 57 | 58 | private double x= 0 ; 59 | private double y= 0; 60 | 61 | public void loginAdmin(){ 62 | 63 | String sql = "SELECT * FROM admin WHERE username = ? and password = ?"; 64 | 65 | connect = database.connectDb(); 66 | 67 | try{ // IT WORKS GOOD : ) NOW LETS DESIGN THE DASHBOARD FORM : ) 68 | Alert alert; 69 | 70 | prepare = connect.prepareStatement(sql); 71 | prepare.setString(1, username.getText()); 72 | prepare.setString(2, password.getText()); 73 | 74 | result = prepare.executeQuery(); 75 | // CHECK IF FIELDS ARE EMPTTY 76 | if(username.getText().isEmpty() || password.getText().isEmpty()){ 77 | alert = new Alert(AlertType.ERROR); 78 | alert.setTitle("Error Message"); 79 | alert.setHeaderText(null); 80 | alert.setContentText("Please fill all blank fields"); 81 | alert.showAndWait(); 82 | }else{ 83 | if(result.next()){ 84 | // THEN PROCEED TO DASHBOARD FORM 85 | 86 | getData.username = username.getText(); 87 | 88 | alert = new Alert(AlertType.INFORMATION); 89 | alert.setTitle("Information Message"); 90 | alert.setHeaderText(null); 91 | alert.setContentText("Successfully Login!"); 92 | alert.showAndWait(); 93 | 94 | // TO HIDE THE LOGIN FORM 95 | loginBtn.getScene().getWindow().hide(); 96 | //LINK YOUR DASHBOARD 97 | Parent root = FXMLLoader.load(getClass().getResource("dashboard.fxml")); 98 | 99 | Stage stage = new Stage(); 100 | Scene scene = new Scene(root); 101 | 102 | root.setOnMousePressed((MouseEvent event) ->{ 103 | x = event.getSceneX(); 104 | y = event.getSceneY(); 105 | }); 106 | 107 | root.setOnMouseDragged((MouseEvent event) ->{ 108 | stage.setX(event.getScreenX() - x); 109 | stage.setY(event.getScreenY() - y); 110 | }); 111 | 112 | stage.initStyle(StageStyle.TRANSPARENT); 113 | 114 | stage.setScene(scene); 115 | stage.show(); 116 | 117 | }else{ 118 | // THEN ERROR MESSAGE WILL APPEAR 119 | alert = new Alert(AlertType.ERROR); 120 | alert.setTitle("Error Message"); 121 | alert.setHeaderText(null); 122 | alert.setContentText("Wrong Username/Password"); 123 | alert.showAndWait(); 124 | } 125 | } 126 | }catch(Exception e){e.printStackTrace();} 127 | 128 | } 129 | 130 | public void close(){ 131 | System.exit(0); 132 | } 133 | 134 | //LETS NAME THE COMPONENTS ON LOGIN FORM : ) 135 | 136 | @Override 137 | public void initialize(URL url, ResourceBundle rb) { 138 | // TODO 139 | } 140 | 141 | } 142 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/StudentManagementSystem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | import javafx.application.Application; 9 | import javafx.fxml.FXMLLoader; 10 | import javafx.scene.Parent; 11 | import javafx.scene.Scene; 12 | import javafx.scene.input.MouseEvent; 13 | import javafx.stage.Stage; 14 | import javafx.stage.StageStyle; 15 | 16 | /** 17 | * 18 | * @author WINDOWS 10 19 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 20 | * THANKS FOR YOUR SUPPORT : ) 21 | */ 22 | public class StudentManagementSystem extends Application { 23 | 24 | private double x = 0 ; 25 | private double y = 0; 26 | 27 | @Override 28 | public void start(Stage stage) throws Exception { 29 | Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); 30 | 31 | Scene scene = new Scene(root); 32 | // LETS DESIGN IT USING CSS : ) 33 | 34 | root.setOnMousePressed((MouseEvent event) ->{ 35 | x = event.getSceneX(); 36 | y = event.getSceneY(); 37 | }); 38 | 39 | root.setOnMouseDragged((MouseEvent event) ->{ 40 | stage.setX(event.getScreenX() - x); 41 | stage.setY(event.getScreenY() - y); 42 | 43 | stage.setOpacity(.8); 44 | }); 45 | 46 | root.setOnMouseReleased((MouseEvent event) ->{ 47 | stage.setOpacity(1); 48 | }); 49 | 50 | stage.initStyle(StageStyle.TRANSPARENT); 51 | 52 | stage.setScene(scene); 53 | stage.show(); 54 | } 55 | //WE FORGOT TO IMPORT FONT AWESOME JAR FILE TO LIBRARIES : ) 56 | /** 57 | * @param args the command line arguments 58 | */ 59 | public static void main(String[] args) { 60 | launch(args); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/courseData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | /** 9 | * 10 | * @author WINDOWS 10 11 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 12 | * THANKS FOR YOUR SUPPORT : ) 13 | */ 14 | public class courseData { 15 | 16 | private String course; 17 | private String description; 18 | private String degree; 19 | 20 | public courseData(String course, String description, String degree){ 21 | this.course = course; 22 | this.description = description; 23 | this.degree = degree; 24 | } 25 | public String getCourse(){ 26 | return course; 27 | } 28 | public String getDescription(){ 29 | return description; 30 | } 31 | public String getDegree(){ 32 | return degree; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/dashboard.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 40 | 45 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 66 | 71 | 72 | 77 | 82 | 87 | 92 | 101 | 106 | 107 | 108 | 109 | 110 | 111 |
112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 136 | 141 | 142 | 143 | 144 | 145 | 146 | 151 | 156 | 157 | 158 | 159 | 160 | 161 | 166 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 262 | 263 | 268 | 269 | 274 | 275 | 280 | 281 | 286 | 287 | 292 | 293 | 298 | 299 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 |
439 |
440 |
441 |
442 |
443 |
444 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/dashboardController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | import java.io.File; 9 | import java.net.URL; 10 | import java.sql.Connection; 11 | import java.sql.PreparedStatement; 12 | import java.sql.ResultSet; 13 | import java.sql.Statement; 14 | import java.time.LocalDate; 15 | import java.util.ArrayList; 16 | import java.util.Date; 17 | import java.util.List; 18 | import java.util.Optional; 19 | import java.util.ResourceBundle; 20 | import javafx.collections.FXCollections; 21 | import javafx.collections.ObservableList; 22 | import javafx.collections.transformation.FilteredList; 23 | import javafx.collections.transformation.SortedList; 24 | import javafx.event.ActionEvent; 25 | import javafx.fxml.FXML; 26 | import javafx.fxml.FXMLLoader; 27 | import javafx.fxml.Initializable; 28 | import javafx.scene.Parent; 29 | import javafx.scene.Scene; 30 | import javafx.scene.chart.AreaChart; 31 | import javafx.scene.chart.BarChart; 32 | import javafx.scene.chart.LineChart; 33 | import javafx.scene.chart.XYChart; 34 | import javafx.scene.control.Alert; 35 | import javafx.scene.control.Alert.AlertType; 36 | import javafx.scene.control.Button; 37 | import javafx.scene.control.ButtonType; 38 | import javafx.scene.control.ComboBox; 39 | import javafx.scene.control.DatePicker; 40 | import javafx.scene.control.Label; 41 | import javafx.scene.control.TableColumn; 42 | import javafx.scene.control.TableView; 43 | import javafx.scene.control.TextField; 44 | import javafx.scene.control.cell.PropertyValueFactory; 45 | import javafx.scene.image.Image; 46 | import javafx.scene.image.ImageView; 47 | import javafx.scene.input.MouseEvent; 48 | import javafx.scene.layout.AnchorPane; 49 | import javafx.stage.FileChooser; 50 | import javafx.stage.FileChooser.ExtensionFilter; 51 | import javafx.stage.Stage; 52 | import javafx.stage.StageStyle; 53 | 54 | /** 55 | * 56 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 57 | * THANKS FOR YOUR SUPPORT : ) 58 | */ 59 | public class dashboardController implements Initializable { 60 | 61 | @FXML 62 | private AnchorPane main_form; 63 | 64 | @FXML 65 | private Button close; 66 | 67 | @FXML 68 | private Button minimize; 69 | 70 | @FXML 71 | private Label username; 72 | 73 | @FXML 74 | private Button home_btn; 75 | 76 | @FXML 77 | private Button addStudents_btn; 78 | 79 | @FXML 80 | private Button availableCourse_btn; 81 | 82 | @FXML 83 | private Button studentGrade_btn; 84 | 85 | @FXML 86 | private Button logout; 87 | 88 | @FXML 89 | private AnchorPane home_form; 90 | 91 | @FXML 92 | private Label home_totalEnrolled; 93 | 94 | @FXML 95 | private Label home_totalFemale; 96 | 97 | @FXML 98 | private Label home_totalMale; 99 | 100 | @FXML 101 | private BarChart home_totalEnrolledChart; 102 | 103 | @FXML 104 | private AreaChart home_totalFemaleChart; 105 | 106 | @FXML 107 | private LineChart home_totalMaleChart; 108 | 109 | @FXML 110 | private AnchorPane addStudents_form; 111 | 112 | @FXML 113 | private TextField addStudents_search; 114 | 115 | @FXML 116 | private TableView addStudents_tableView; 117 | 118 | @FXML 119 | private TableColumn addStudents_col_studentNum; 120 | 121 | @FXML 122 | private TableColumn addStudents_col_year; 123 | 124 | @FXML 125 | private TableColumn addStudents_col_course; 126 | 127 | @FXML 128 | private TableColumn addStudents_col_firstName; 129 | 130 | @FXML 131 | private TableColumn addStudents_col_lastName; 132 | 133 | @FXML 134 | private TableColumn addStudents_col_gender; 135 | 136 | @FXML 137 | private TableColumn addStudents_col_birth; 138 | 139 | @FXML 140 | private TableColumn addStudents_col_status; 141 | 142 | @FXML 143 | private TextField addStudents_studentNum; 144 | 145 | @FXML 146 | private ComboBox addStudents_year; 147 | 148 | @FXML 149 | private ComboBox addStudents_course; 150 | 151 | @FXML 152 | private TextField addStudents_firstName; 153 | 154 | @FXML 155 | private TextField addStudents_lastName; 156 | 157 | @FXML 158 | private DatePicker addStudents_birth; 159 | 160 | @FXML 161 | private ComboBox addStudents_status; 162 | 163 | @FXML 164 | private ComboBox addStudents_gender; 165 | 166 | @FXML 167 | private ImageView addStudents_imageView; 168 | 169 | @FXML 170 | private Button addStudents_insertBtn; 171 | 172 | @FXML 173 | private Button addStudents_addBtn; 174 | 175 | @FXML 176 | private Button addStudents_updateBtn; 177 | 178 | @FXML 179 | private Button addStudents_deleteBtn; 180 | 181 | @FXML 182 | private Button addStudents_clearBtn; 183 | 184 | @FXML 185 | private AnchorPane availableCourse_form; 186 | 187 | @FXML 188 | private TextField availableCourse_course; 189 | 190 | @FXML 191 | private TextField availableCourse_description; 192 | 193 | @FXML 194 | private TextField availableCourse_degree; 195 | 196 | @FXML 197 | private Button availableCourse_addBtn; 198 | 199 | @FXML 200 | private Button availableCourse_updateBtn; 201 | 202 | @FXML 203 | private Button availableCourse_clearBtn; 204 | 205 | @FXML 206 | private Button availableCourse_deleteBtn; 207 | 208 | @FXML 209 | private TableView availableCourse_tableView; 210 | 211 | @FXML 212 | private TableColumn availableCourse_col_course; 213 | 214 | @FXML 215 | private TableColumn availableCourse_col_description; 216 | 217 | @FXML 218 | private TableColumn availableCourse_col_degree; 219 | 220 | @FXML 221 | private AnchorPane studentGrade_form; 222 | 223 | @FXML 224 | private TextField studentGrade_studentNum; 225 | 226 | @FXML 227 | private Label studentGrade_year; 228 | 229 | @FXML 230 | private Label studentGrade_course; 231 | 232 | @FXML 233 | private TextField studentGrade_firstSem; 234 | 235 | @FXML 236 | private TextField studentGrade_secondSem; 237 | 238 | @FXML 239 | private Button studentGrade_updateBtn; 240 | 241 | @FXML 242 | private Button studentGrade_clearBtn; 243 | 244 | @FXML 245 | private TableView studentGrade_tableView; 246 | 247 | @FXML 248 | private TableColumn studentGrade_col_studentNum; 249 | 250 | @FXML 251 | private TableColumn studentGrade_col_year; 252 | 253 | @FXML 254 | private TableColumn studentGrade_col_course; 255 | 256 | @FXML 257 | private TableColumn studentGrade_col_firstSem; 258 | 259 | @FXML 260 | private TableColumn studentGrade_col_secondSem; 261 | 262 | @FXML 263 | private TableColumn studentGrade_col_final; 264 | 265 | @FXML 266 | private TextField studentGrade_search; 267 | 268 | private Connection connect; 269 | private PreparedStatement prepare; 270 | private Statement statement; 271 | private ResultSet result; 272 | 273 | private Image image; 274 | 275 | public void homeDisplayTotalEnrolledStudents() { 276 | 277 | String sql = "SELECT COUNT(id) FROM student"; 278 | 279 | connect = database.connectDb(); 280 | 281 | int countEnrolled = 0; 282 | 283 | try { 284 | prepare = connect.prepareStatement(sql); 285 | result = prepare.executeQuery(); 286 | 287 | if (result.next()) { 288 | countEnrolled = result.getInt("COUNT(id)"); 289 | } 290 | 291 | home_totalEnrolled.setText(String.valueOf(countEnrolled)); 292 | 293 | } catch (Exception e) { 294 | e.printStackTrace(); 295 | } 296 | 297 | } 298 | 299 | public void homeDisplayFemaleEnrolled() { 300 | 301 | String sql = "SELECT COUNT(id) FROM student WHERE gender = 'Female' and status = 'Enrolled'"; 302 | 303 | connect = database.connectDb(); 304 | 305 | try { 306 | int countFemale = 0; 307 | 308 | prepare = connect.prepareStatement(sql); 309 | result = prepare.executeQuery(); 310 | 311 | if (result.next()) { 312 | countFemale = result.getInt("COUNT(id)"); 313 | } 314 | 315 | home_totalFemale.setText(String.valueOf(countFemale)); 316 | 317 | } catch (Exception e) { 318 | e.printStackTrace(); 319 | } 320 | 321 | } 322 | 323 | public void homeDisplayMaleEnrolled() { 324 | 325 | String sql = "SELECT COUNT(id) FROM student WHERE gender = 'Male' and status = 'Enrolled'"; 326 | 327 | connect = database.connectDb(); 328 | 329 | try { 330 | int countMale = 0; 331 | 332 | prepare = connect.prepareStatement(sql); 333 | result = prepare.executeQuery(); 334 | 335 | if (result.next()) { 336 | countMale = result.getInt("COUNT(id)"); 337 | } 338 | home_totalMale.setText(String.valueOf(countMale)); 339 | 340 | } catch (Exception e) { 341 | e.printStackTrace(); 342 | } 343 | 344 | } 345 | 346 | public void homeDisplayTotalEnrolledChart() { 347 | 348 | home_totalEnrolledChart.getData().clear(); 349 | 350 | String sql = "SELECT date, COUNT(id) FROM student WHERE status = 'Enrolled' GROUP BY date ORDER BY TIMESTAMP(date) ASC LIMIT 5"; 351 | 352 | connect = database.connectDb(); 353 | 354 | try { 355 | XYChart.Series chart = new XYChart.Series(); 356 | 357 | prepare = connect.prepareStatement(sql); 358 | result = prepare.executeQuery(); 359 | 360 | while (result.next()) { 361 | chart.getData().add(new XYChart.Data(result.getString(1), result.getInt(2))); 362 | } 363 | 364 | home_totalEnrolledChart.getData().add(chart); 365 | 366 | } catch (Exception e) { 367 | e.printStackTrace(); 368 | } 369 | 370 | } 371 | 372 | public void homeDisplayFemaleEnrolledChart() { 373 | 374 | home_totalFemaleChart.getData().clear(); 375 | 376 | String sql = "SELECT date, COUNT(id) FROM student WHERE status = 'Enrolled' and gender = 'Female' GROUP BY date ORDER BY TIMESTAMP(date) ASC LIMIT 5"; 377 | 378 | connect = database.connectDb(); 379 | 380 | try { 381 | XYChart.Series chart = new XYChart.Series(); 382 | 383 | prepare = connect.prepareStatement(sql); 384 | result = prepare.executeQuery(); 385 | 386 | while (result.next()) { 387 | chart.getData().add(new XYChart.Data(result.getString(1), result.getInt(2))); 388 | } 389 | 390 | home_totalFemaleChart.getData().add(chart); 391 | 392 | } catch (Exception e) { 393 | e.printStackTrace(); 394 | } 395 | 396 | } 397 | 398 | public void homeDisplayEnrolledMaleChart() { 399 | 400 | home_totalMaleChart.getData().clear(); 401 | 402 | String sql = "SELECT date, COUNT(id) FROM student WHERE status = 'Enrolled' and gender = 'Male' GROUP BY date ORDER BY TIMESTAMP(date) ASC LIMIT 5"; 403 | 404 | connect = database.connectDb(); 405 | 406 | try { 407 | XYChart.Series chart = new XYChart.Series(); 408 | 409 | prepare = connect.prepareStatement(sql); 410 | result = prepare.executeQuery(); 411 | 412 | while (result.next()) { 413 | chart.getData().add(new XYChart.Data(result.getString(1), result.getInt(2))); 414 | } 415 | 416 | home_totalMaleChart.getData().add(chart); 417 | 418 | } catch (Exception e) { 419 | e.printStackTrace(); 420 | } 421 | 422 | } 423 | 424 | public void addStudentsAdd() { 425 | 426 | String insertData = "INSERT INTO student " 427 | + "(studentNum,year,course,firstName,lastName,gender,birth,status,image,date) " 428 | + "VALUES(?,?,?,?,?,?,?,?,?,?)"; 429 | 430 | connect = database.connectDb(); 431 | 432 | try { 433 | Alert alert; 434 | 435 | if (addStudents_studentNum.getText().isEmpty() 436 | || addStudents_year.getSelectionModel().getSelectedItem() == null 437 | || addStudents_course.getSelectionModel().getSelectedItem() == null 438 | || addStudents_firstName.getText().isEmpty() 439 | || addStudents_lastName.getText().isEmpty() 440 | || addStudents_gender.getSelectionModel().getSelectedItem() == null 441 | || addStudents_birth.getValue() == null 442 | || addStudents_status.getSelectionModel().getSelectedItem() == null 443 | || getData.path == null || getData.path == "") { 444 | alert = new Alert(AlertType.ERROR); 445 | alert.setTitle("Error Message"); 446 | alert.setHeaderText(null); 447 | alert.setContentText("Please fill all blank fields"); 448 | alert.showAndWait(); 449 | } else { 450 | // CHECK IF THE STUDENTNUMBER IS ALREADY EXIST 451 | String checkData = "SELECT studentNum FROM student WHERE studentNum = '" 452 | + addStudents_studentNum.getText() + "'"; 453 | 454 | statement = connect.createStatement(); 455 | result = statement.executeQuery(checkData); 456 | 457 | if (result.next()) { 458 | alert = new Alert(AlertType.ERROR); 459 | alert.setTitle("Error Message"); 460 | alert.setHeaderText(null); 461 | alert.setContentText("Student #" + addStudents_studentNum.getText() + " was already exist!"); 462 | alert.showAndWait(); 463 | } else { 464 | prepare = connect.prepareStatement(insertData); 465 | prepare.setString(1, addStudents_studentNum.getText()); 466 | prepare.setString(2, (String) addStudents_year.getSelectionModel().getSelectedItem()); 467 | prepare.setString(3, (String) addStudents_course.getSelectionModel().getSelectedItem()); 468 | prepare.setString(4, addStudents_firstName.getText()); 469 | prepare.setString(5, addStudents_lastName.getText()); 470 | prepare.setString(6, (String) addStudents_gender.getSelectionModel().getSelectedItem()); 471 | prepare.setString(7, String.valueOf(addStudents_birth.getValue())); 472 | prepare.setString(8, (String) addStudents_status.getSelectionModel().getSelectedItem()); 473 | 474 | String uri = getData.path; 475 | uri = uri.replace("\\", "\\\\"); 476 | prepare.setString(9, uri); 477 | 478 | Date date = new Date(); 479 | java.sql.Date sqlDate = new java.sql.Date(date.getTime()); 480 | prepare.setString(10, String.valueOf(sqlDate)); 481 | 482 | prepare.executeUpdate(); 483 | 484 | String insertStudentGrade = "INSERT INTO student_grade " 485 | + "(studentNum,year,course,first_sem,second_sem,final) " 486 | + "VALUES(?,?,?,?,?,?)"; 487 | 488 | prepare = connect.prepareStatement(insertStudentGrade); 489 | prepare.setString(1, addStudents_studentNum.getText()); 490 | prepare.setString(2, (String) addStudents_year.getSelectionModel().getSelectedItem()); 491 | prepare.setString(3, (String) addStudents_course.getSelectionModel().getSelectedItem()); 492 | prepare.setString(4, "0"); 493 | prepare.setString(5, "0"); 494 | prepare.setString(6, "0"); 495 | 496 | prepare.executeUpdate(); 497 | 498 | alert = new Alert(AlertType.INFORMATION); 499 | alert.setTitle("Information Message"); 500 | alert.setHeaderText(null); 501 | alert.setContentText("Successfully Added!"); 502 | alert.showAndWait(); 503 | 504 | // TO UPDATE THE TABLEVIEW 505 | addStudentsShowListData(); 506 | // TO CLEAR THE FIELDS 507 | addStudentsClear(); 508 | } 509 | } 510 | 511 | } catch (Exception e) { 512 | e.printStackTrace(); 513 | } 514 | } 515 | 516 | public void addStudentsUpdate() { 517 | 518 | String uri = getData.path; 519 | uri = uri.replace("\\", "\\\\"); 520 | 521 | String updateData = "UPDATE student SET " 522 | + "year = '" + addStudents_year.getSelectionModel().getSelectedItem() 523 | + "', course = '" + addStudents_course.getSelectionModel().getSelectedItem() 524 | + "', firstName = '" + addStudents_firstName.getText() 525 | + "', lastName = '" + addStudents_lastName.getText() 526 | + "', gender = '" + addStudents_gender.getSelectionModel().getSelectedItem() 527 | + "', birth = '" + addStudents_birth.getValue() 528 | + "', status = '" + addStudents_status.getSelectionModel().getSelectedItem() 529 | + "', image = '" + uri + "' WHERE studentNum = '" 530 | + addStudents_studentNum.getText() + "'"; 531 | 532 | connect = database.connectDb(); 533 | 534 | try { 535 | Alert alert; 536 | if (addStudents_studentNum.getText().isEmpty() 537 | || addStudents_year.getSelectionModel().getSelectedItem() == null 538 | || addStudents_course.getSelectionModel().getSelectedItem() == null 539 | || addStudents_firstName.getText().isEmpty() 540 | || addStudents_lastName.getText().isEmpty() 541 | || addStudents_gender.getSelectionModel().getSelectedItem() == null 542 | || addStudents_birth.getValue() == null 543 | || addStudents_status.getSelectionModel().getSelectedItem() == null 544 | || getData.path == null || getData.path == "") { 545 | alert = new Alert(AlertType.ERROR); 546 | alert.setTitle("Error Message"); 547 | alert.setHeaderText(null); 548 | alert.setContentText("Please fill all blank fields"); 549 | alert.showAndWait(); 550 | } else { 551 | 552 | alert = new Alert(AlertType.CONFIRMATION); 553 | alert.setTitle("Confirmation Message"); 554 | alert.setHeaderText(null); 555 | alert.setContentText("Are you sure you want to UPDATE Student #" + addStudents_studentNum.getText() + "?"); 556 | Optional option = alert.showAndWait(); 557 | 558 | if (option.get().equals(ButtonType.OK)) { 559 | statement = connect.createStatement(); 560 | statement.executeUpdate(updateData); 561 | 562 | alert = new Alert(AlertType.INFORMATION); 563 | alert.setTitle("Information Message"); 564 | alert.setHeaderText(null); 565 | alert.setContentText("Successfully Updated!"); 566 | alert.showAndWait(); 567 | 568 | // TO UPDATE THE TABLEVIEW 569 | addStudentsShowListData(); 570 | // TO CLEAR THE FIELDS 571 | addStudentsClear(); 572 | 573 | } else { 574 | return; 575 | } 576 | } 577 | } catch (Exception e) { 578 | e.printStackTrace(); 579 | } 580 | } 581 | 582 | public void addStudentsDelete() { 583 | 584 | String deleteData = "DELETE FROM student WHERE studentNum = '" 585 | + addStudents_studentNum.getText() + "'"; 586 | 587 | connect = database.connectDb(); 588 | 589 | try { 590 | Alert alert; 591 | if (addStudents_studentNum.getText().isEmpty() 592 | || addStudents_year.getSelectionModel().getSelectedItem() == null 593 | || addStudents_course.getSelectionModel().getSelectedItem() == null 594 | || addStudents_firstName.getText().isEmpty() 595 | || addStudents_lastName.getText().isEmpty() 596 | || addStudents_gender.getSelectionModel().getSelectedItem() == null 597 | || addStudents_birth.getValue() == null 598 | || addStudents_status.getSelectionModel().getSelectedItem() == null 599 | || getData.path == null || getData.path == "") { 600 | alert = new Alert(AlertType.ERROR); 601 | alert.setTitle("Error Message"); 602 | alert.setHeaderText(null); 603 | alert.setContentText("Please fill all blank fields"); 604 | alert.showAndWait(); 605 | } else { 606 | alert = new Alert(AlertType.CONFIRMATION); 607 | alert.setTitle("Confirmation Message"); 608 | alert.setHeaderText(null); 609 | alert.setContentText("Are you sure you want to DELETE Student #" + addStudents_studentNum.getText() + "?"); 610 | 611 | Optional option = alert.showAndWait(); 612 | 613 | if (option.get().equals(ButtonType.OK)) { 614 | 615 | statement = connect.createStatement(); 616 | statement.executeUpdate(deleteData); 617 | 618 | String checkData = "SELECT studentNum FROM student_grade " 619 | + "WHERE studentNum = '" + addStudents_studentNum.getText() + "'"; 620 | 621 | prepare = connect.prepareStatement(checkData); 622 | result = prepare.executeQuery(); 623 | 624 | // IF THE STUDENT NUMBER IS EXIST THEN PROCEED TO DELETE 625 | if (result.next()) { 626 | String deleteGrade = "DELETE FROM student_grade WHERE " 627 | + "studentNum = '" + addStudents_studentNum.getText() + "'"; 628 | 629 | statement = connect.createStatement(); 630 | statement.executeUpdate(deleteGrade); 631 | 632 | }// IF NOT THEN NVM 633 | 634 | alert = new Alert(AlertType.INFORMATION); 635 | alert.setTitle("Information Message"); 636 | alert.setHeaderText(null); 637 | alert.setContentText("Successfully Deleted!"); 638 | alert.showAndWait(); 639 | 640 | // TO UPDATE THE TABLEVIEW 641 | addStudentsShowListData(); 642 | // TO CLEAR THE FIELDS 643 | addStudentsClear(); 644 | 645 | } else { 646 | return; 647 | } 648 | 649 | } 650 | } catch (Exception e) { 651 | e.printStackTrace(); 652 | } 653 | 654 | } 655 | 656 | public void addStudentsClear() { 657 | addStudents_studentNum.setText(""); 658 | addStudents_year.getSelectionModel().clearSelection(); 659 | addStudents_course.getSelectionModel().clearSelection(); 660 | addStudents_firstName.setText(""); 661 | addStudents_lastName.setText(""); 662 | addStudents_gender.getSelectionModel().clearSelection(); 663 | addStudents_birth.setValue(null); 664 | addStudents_status.getSelectionModel().clearSelection(); 665 | addStudents_imageView.setImage(null); 666 | 667 | getData.path = ""; 668 | } 669 | 670 | public void addStudentsInsertImage() { 671 | 672 | FileChooser open = new FileChooser(); 673 | open.setTitle("Open Image File"); 674 | open.getExtensionFilters().add(new ExtensionFilter("Image File", "*jpg", "*png")); 675 | 676 | File file = open.showOpenDialog(main_form.getScene().getWindow()); 677 | 678 | if (file != null) { 679 | 680 | image = new Image(file.toURI().toString(), 120, 149, false, true); 681 | addStudents_imageView.setImage(image); 682 | 683 | getData.path = file.getAbsolutePath(); 684 | 685 | } 686 | } //WHILE WE INSERT THE DATA ON STUDENT, WE SHOULD INSERT ALSO THE DATA TO STUDENT_GRADE 687 | 688 | public void addStudentsSearch() { 689 | 690 | FilteredList filter = new FilteredList<>(addStudentsListD, e -> true); 691 | 692 | addStudents_search.textProperty().addListener((Observable, oldValue, newValue) -> { 693 | 694 | filter.setPredicate(predicateStudentData -> { 695 | 696 | if (newValue == null || newValue.isEmpty()) { 697 | return true; 698 | } 699 | 700 | String searchKey = newValue.toLowerCase(); 701 | 702 | if (predicateStudentData.getStudentNum().toString().contains(searchKey)) { 703 | return true; 704 | } else if (predicateStudentData.getYear().toLowerCase().contains(searchKey)) { 705 | return true; 706 | } else if (predicateStudentData.getCourse().toLowerCase().contains(searchKey)) { 707 | return true; 708 | } else if (predicateStudentData.getFirstName().toLowerCase().contains(searchKey)) { 709 | return true; 710 | } else if (predicateStudentData.getLastName().toLowerCase().contains(searchKey)) { 711 | return true; 712 | } else if (predicateStudentData.getGender().toLowerCase().contains(searchKey)) { 713 | return true; 714 | } else if (predicateStudentData.getBirth().toString().contains(searchKey)) { 715 | return true; 716 | } else if (predicateStudentData.getStatus().toLowerCase().contains(searchKey)) { 717 | return true; 718 | } else { 719 | return false; 720 | } 721 | }); 722 | }); 723 | 724 | SortedList sortList = new SortedList<>(filter); 725 | 726 | sortList.comparatorProperty().bind(addStudents_tableView.comparatorProperty()); 727 | addStudents_tableView.setItems(sortList); 728 | 729 | } 730 | 731 | private String[] yearList = {"First Year", "Second Year", "Third Year", "Fourth Year"}; 732 | 733 | public void addStudentsYearList() { 734 | 735 | List yearL = new ArrayList<>(); 736 | 737 | for (String data : yearList) { 738 | yearL.add(data); 739 | } 740 | 741 | ObservableList ObList = FXCollections.observableArrayList(yearL); 742 | addStudents_year.setItems(ObList); 743 | 744 | } 745 | 746 | public void addStudentsCourseList() { 747 | 748 | String listCourse = "SELECT * FROM course"; 749 | 750 | connect = database.connectDb(); 751 | 752 | try { 753 | 754 | ObservableList listC = FXCollections.observableArrayList(); 755 | 756 | prepare = connect.prepareStatement(listCourse); 757 | result = prepare.executeQuery(); 758 | 759 | while (result.next()) { 760 | listC.add(result.getString("course")); 761 | } 762 | addStudents_course.setItems(listC); 763 | 764 | } catch (Exception e) { 765 | e.printStackTrace(); 766 | } 767 | 768 | } 769 | 770 | private String[] genderList = {"Male", "Female", "Others"}; 771 | 772 | public void addStudentsGenderList() { 773 | List genderL = new ArrayList<>(); 774 | 775 | for (String data : genderList) { 776 | genderL.add(data); 777 | } 778 | 779 | ObservableList ObList = FXCollections.observableArrayList(genderL); 780 | addStudents_gender.setItems(ObList); 781 | } 782 | 783 | private String[] statusList = {"Enrolled", "Not Enrolled", "Inactive"}; 784 | 785 | public void addStudentsStatusList() { 786 | List statusL = new ArrayList<>(); 787 | 788 | for (String data : statusList) { 789 | statusL.add(data); 790 | } 791 | 792 | ObservableList ObList = FXCollections.observableArrayList(statusL); 793 | addStudents_status.setItems(ObList); 794 | } 795 | 796 | // NOW WE NEED THE COURSE, SO LETS WORK NOW THE AVAILABLE COURSE FORM : ) 797 | // LETS WORK FIRST THE ADD STUDENTS FORM : ) 798 | public ObservableList addStudentsListData() { 799 | 800 | ObservableList listStudents = FXCollections.observableArrayList(); 801 | 802 | String sql = "SELECT * FROM student"; 803 | 804 | connect = database.connectDb(); 805 | 806 | try { 807 | studentData studentD; 808 | prepare = connect.prepareStatement(sql); 809 | result = prepare.executeQuery(); 810 | 811 | while (result.next()) { 812 | studentD = new studentData(result.getInt("studentNum"), 813 | result.getString("year"), 814 | result.getString("course"), 815 | result.getString("firstName"), 816 | result.getString("lastName"), 817 | result.getString("gender"), 818 | result.getDate("birth"), 819 | result.getString("status"), 820 | result.getString("image")); 821 | 822 | listStudents.add(studentD); 823 | } 824 | 825 | } catch (Exception e) { 826 | e.printStackTrace(); 827 | } 828 | return listStudents; 829 | } 830 | 831 | private ObservableList addStudentsListD; 832 | 833 | public void addStudentsShowListData() { 834 | addStudentsListD = addStudentsListData(); 835 | 836 | addStudents_col_studentNum.setCellValueFactory(new PropertyValueFactory<>("studentNum")); 837 | addStudents_col_year.setCellValueFactory(new PropertyValueFactory<>("year")); 838 | addStudents_col_course.setCellValueFactory(new PropertyValueFactory<>("course")); 839 | addStudents_col_firstName.setCellValueFactory(new PropertyValueFactory<>("firstName")); 840 | addStudents_col_lastName.setCellValueFactory(new PropertyValueFactory<>("lastName")); 841 | addStudents_col_gender.setCellValueFactory(new PropertyValueFactory<>("gender")); 842 | addStudents_col_birth.setCellValueFactory(new PropertyValueFactory<>("birth")); 843 | addStudents_col_status.setCellValueFactory(new PropertyValueFactory<>("status")); 844 | 845 | addStudents_tableView.setItems(addStudentsListD); 846 | 847 | } 848 | 849 | public void addStudentsSelect() { 850 | 851 | studentData studentD = addStudents_tableView.getSelectionModel().getSelectedItem(); 852 | int num = addStudents_tableView.getSelectionModel().getSelectedIndex(); 853 | 854 | if ((num - 1) < -1) { 855 | return; 856 | } 857 | 858 | addStudents_studentNum.setText(String.valueOf(studentD.getStudentNum())); 859 | addStudents_firstName.setText(studentD.getFirstName()); 860 | addStudents_lastName.setText(studentD.getLastName()); 861 | addStudents_birth.setValue(LocalDate.parse(String.valueOf(studentD.getBirth()))); 862 | 863 | String uri = "file:" + studentD.getImage(); 864 | 865 | image = new Image(uri, 120, 149, false, true); 866 | addStudents_imageView.setImage(image); 867 | 868 | getData.path = studentD.getImage(); 869 | 870 | } 871 | 872 | public void availableCourseAdd() { 873 | 874 | String insertData = "INSERT INTO course (course,description,degree) VALUES(?,?,?)"; 875 | 876 | connect = database.connectDb(); 877 | 878 | try { 879 | Alert alert; 880 | 881 | if (availableCourse_course.getText().isEmpty() 882 | || availableCourse_description.getText().isEmpty() 883 | || availableCourse_degree.getText().isEmpty()) { 884 | alert = new Alert(AlertType.ERROR); 885 | alert.setTitle("Error Message"); 886 | alert.setHeaderText(null); 887 | alert.setContentText("Please fill all blank fields"); 888 | alert.showAndWait(); 889 | } else { 890 | // CHECK IF THE COURSE YOU WANT TO INSERT IS ALREADY EXIST! 891 | String checkData = "SELECT course FROM course WHERE course = '" 892 | + availableCourse_course.getText() + "'"; 893 | 894 | statement = connect.createStatement(); 895 | result = statement.executeQuery(checkData); 896 | 897 | if (result.next()) { 898 | alert = new Alert(AlertType.ERROR); 899 | alert.setTitle("Error Message"); 900 | alert.setHeaderText(null); 901 | alert.setContentText("Course: " + availableCourse_course.getText() + " was already exist!"); 902 | alert.showAndWait(); 903 | } else { 904 | prepare = connect.prepareStatement(insertData); 905 | prepare.setString(1, availableCourse_course.getText()); 906 | prepare.setString(2, availableCourse_description.getText()); 907 | prepare.setString(3, availableCourse_degree.getText()); 908 | 909 | prepare.executeUpdate(); 910 | 911 | alert = new Alert(AlertType.INFORMATION); 912 | alert.setTitle("Information Message"); 913 | alert.setHeaderText(null); 914 | alert.setContentText("Successfully Added!"); 915 | alert.showAndWait(); 916 | 917 | // TO BECOME UPDATED OUR TABLEVIEW ONCE THE DATA WE GAVE SUCCESSFUL 918 | availableCourseShowListData(); 919 | // TO CLEAR THE TEXT FIELDS 920 | availableCourseClear(); 921 | 922 | } 923 | } 924 | } catch (Exception e) { 925 | e.printStackTrace(); 926 | } 927 | } 928 | 929 | public void availableCourseUpdate() { 930 | 931 | String updateData = "UPDATE course SET description = '" 932 | + availableCourse_description.getText() + "', degree = '" 933 | + availableCourse_degree.getText() + "' WHERE course = '" 934 | + availableCourse_course.getText() + "'"; 935 | 936 | connect = database.connectDb(); 937 | 938 | try { 939 | Alert alert; 940 | 941 | if (availableCourse_course.getText().isEmpty() 942 | || availableCourse_description.getText().isEmpty() 943 | || availableCourse_degree.getText().isEmpty()) { 944 | alert = new Alert(AlertType.ERROR); 945 | alert.setTitle("Error Message"); 946 | alert.setHeaderText(null); 947 | alert.setContentText("Please fill all blank fields"); 948 | alert.showAndWait(); 949 | } else { 950 | 951 | alert = new Alert(AlertType.CONFIRMATION); 952 | alert.setTitle("Confirmation Message"); 953 | alert.setHeaderText(null); 954 | alert.setContentText("Are you sure you want to UPDATE Course: " + availableCourse_course.getText() + "?"); 955 | Optional option = alert.showAndWait(); 956 | 957 | if (option.get().equals(ButtonType.OK)) { 958 | statement = connect.createStatement(); 959 | statement.executeUpdate(updateData); 960 | 961 | alert = new Alert(AlertType.INFORMATION); 962 | alert.setTitle("Information Message"); 963 | alert.setHeaderText(null); 964 | alert.setContentText("Successfully Updated!"); 965 | alert.showAndWait(); 966 | 967 | // TO BECOME UPDATED OUR TABLEVIEW ONCE THE DATA WE GAVE SUCCESSFUL 968 | availableCourseShowListData(); 969 | // TO CLEAR THE TEXT FIELDS 970 | availableCourseClear(); 971 | 972 | } else { 973 | return; 974 | } 975 | 976 | } 977 | 978 | } catch (Exception e) { 979 | e.printStackTrace(); 980 | } 981 | 982 | } 983 | 984 | public void availableCourseDelete() { 985 | 986 | String deleteData = "DELETE FROM course WHERE course = '" 987 | + availableCourse_course.getText() + "'"; 988 | 989 | connect = database.connectDb(); 990 | 991 | try { 992 | Alert alert; 993 | 994 | if (availableCourse_course.getText().isEmpty() 995 | || availableCourse_description.getText().isEmpty() 996 | || availableCourse_degree.getText().isEmpty()) { 997 | alert = new Alert(AlertType.ERROR); 998 | alert.setTitle("Error Message"); 999 | alert.setHeaderText(null); 1000 | alert.setContentText("Please fill all blank fields"); 1001 | alert.showAndWait(); 1002 | } else { 1003 | // ALL GOOD GUYS! NOW LETS PROCEED TO ADD STUDENTS FORM 1004 | alert = new Alert(AlertType.CONFIRMATION); 1005 | alert.setTitle("Confirmation Message"); 1006 | alert.setHeaderText(null); 1007 | alert.setContentText("Are you sure you want to DELETE Course: " + availableCourse_course.getText() + "?"); 1008 | Optional option = alert.showAndWait(); 1009 | 1010 | if (option.get().equals(ButtonType.OK)) { 1011 | statement = connect.createStatement(); 1012 | statement.executeUpdate(deleteData); 1013 | 1014 | alert = new Alert(AlertType.INFORMATION); 1015 | alert.setTitle("Information Message"); 1016 | alert.setHeaderText(null); 1017 | alert.setContentText("Successfully Deleted!"); 1018 | alert.showAndWait(); 1019 | 1020 | // TO BECOME UPDATED OUR TABLEVIEW ONCE THE DATA WE GAVE SUCCESSFUL 1021 | availableCourseShowListData(); 1022 | // TO CLEAR THE TEXT FIELDS 1023 | availableCourseClear(); 1024 | 1025 | } else { 1026 | return; 1027 | } 1028 | } 1029 | 1030 | } catch (Exception e) { 1031 | e.printStackTrace(); 1032 | } 1033 | 1034 | } 1035 | 1036 | public void availableCourseClear() { 1037 | availableCourse_course.setText(""); 1038 | availableCourse_description.setText(""); 1039 | availableCourse_degree.setText(""); 1040 | } 1041 | 1042 | public ObservableList availableCourseListData() { 1043 | 1044 | ObservableList listData = FXCollections.observableArrayList(); 1045 | 1046 | String sql = "SELECT * FROM course"; 1047 | 1048 | connect = database.connectDb(); 1049 | 1050 | try { 1051 | courseData courseD; 1052 | prepare = connect.prepareStatement(sql); 1053 | result = prepare.executeQuery(); 1054 | 1055 | while (result.next()) { 1056 | courseD = new courseData(result.getString("course"), 1057 | result.getString("description"), 1058 | result.getString("degree")); 1059 | 1060 | listData.add(courseD); 1061 | } 1062 | 1063 | } catch (Exception e) { 1064 | e.printStackTrace(); 1065 | } 1066 | return listData; 1067 | } 1068 | 1069 | private ObservableList availableCourseList; 1070 | 1071 | public void availableCourseShowListData() { 1072 | availableCourseList = availableCourseListData(); 1073 | 1074 | availableCourse_col_course.setCellValueFactory(new PropertyValueFactory<>("course")); 1075 | availableCourse_col_description.setCellValueFactory(new PropertyValueFactory<>("description")); 1076 | availableCourse_col_degree.setCellValueFactory(new PropertyValueFactory<>("degree")); 1077 | 1078 | availableCourse_tableView.setItems(availableCourseList); 1079 | 1080 | } 1081 | 1082 | public void availableCourseSelect() { 1083 | courseData courseD = availableCourse_tableView.getSelectionModel().getSelectedItem(); 1084 | int num = availableCourse_tableView.getSelectionModel().getSelectedIndex(); 1085 | 1086 | if ((num - 1) < -1) { 1087 | return; 1088 | } 1089 | 1090 | availableCourse_course.setText(courseD.getCourse()); 1091 | availableCourse_description.setText(courseD.getDescription()); 1092 | availableCourse_degree.setText(courseD.getDegree()); 1093 | 1094 | } 1095 | 1096 | public void studentGradesUpdate() { 1097 | double finalCheck1 = 0; 1098 | double finalCheck2 = 0; 1099 | 1100 | String checkData = "SELECT * FROM student_grade WHERE studentNum = '" 1101 | + studentGrade_studentNum.getText() + "'"; 1102 | 1103 | connect = database.connectDb(); 1104 | 1105 | double finalResult = 0; 1106 | 1107 | try { 1108 | 1109 | prepare = connect.prepareStatement(checkData); 1110 | result = prepare.executeQuery(); 1111 | 1112 | if (result.next()) { 1113 | finalCheck1 = result.getDouble("first_sem"); 1114 | finalCheck2 = result.getDouble("second_sem"); 1115 | } 1116 | 1117 | if (finalCheck1 == 0 || finalCheck2 == 0) { 1118 | finalResult = 0; 1119 | } else { //LIKE (X+Y)/2 AVE WE NEED TO FIND FOR FINALS 1120 | finalResult = (Double.parseDouble(studentGrade_firstSem.getText()) 1121 | + Double.parseDouble(studentGrade_secondSem.getText()) / 2); 1122 | } 1123 | 1124 | String updateData = "UPDATE student_grade SET " 1125 | + " year = '" + studentGrade_year.getText() 1126 | + "', course = '" + studentGrade_course.getText() 1127 | + "', first_sem = '" + studentGrade_firstSem.getText() 1128 | + "', second_sem = '" + studentGrade_secondSem.getText() 1129 | + "', final = '" + finalResult + "' WHERE studentNum = '" 1130 | + studentGrade_studentNum.getText() + "'"; 1131 | 1132 | Alert alert; 1133 | 1134 | if (studentGrade_studentNum.getText().isEmpty() 1135 | || studentGrade_year.getText().isEmpty() 1136 | || studentGrade_course.getText().isEmpty()) { 1137 | alert = new Alert(AlertType.ERROR); 1138 | alert.setTitle("Error Message"); 1139 | alert.setHeaderText(null); 1140 | alert.setContentText("Please fill all blank fields"); 1141 | alert.showAndWait(); 1142 | 1143 | } else { 1144 | 1145 | alert = new Alert(AlertType.CONFIRMATION); 1146 | alert.setTitle("Confirmation Message"); 1147 | alert.setHeaderText(null); 1148 | alert.setContentText("Are you sure you want to UPDATE Student #" + studentGrade_studentNum.getText() + "?"); 1149 | Optional option = alert.showAndWait(); 1150 | 1151 | if (option.get().equals(ButtonType.OK)) { 1152 | statement = connect.createStatement(); 1153 | statement.executeUpdate(updateData); 1154 | 1155 | alert = new Alert(AlertType.INFORMATION); 1156 | alert.setTitle("Information Message"); 1157 | alert.setHeaderText(null); 1158 | alert.setContentText("Successfully Updated!"); 1159 | alert.showAndWait(); 1160 | 1161 | // TO UPDATE THE TABLEVIEW 1162 | studentGradesShowListData(); 1163 | } else { 1164 | return; 1165 | } 1166 | 1167 | }// NOT WE ARE CLOSER TO THE ENDING PART :) LETS PROCEED TO DASHBOARD FORM 1168 | } catch (Exception e) { 1169 | e.printStackTrace(); 1170 | } 1171 | } 1172 | 1173 | public void studentGradesClear() { 1174 | studentGrade_studentNum.setText(""); 1175 | studentGrade_year.setText(""); 1176 | studentGrade_course.setText(""); 1177 | studentGrade_firstSem.setText(""); 1178 | studentGrade_secondSem.setText(""); 1179 | } 1180 | 1181 | public ObservableList studentGradesListData() { 1182 | 1183 | ObservableList listData = FXCollections.observableArrayList(); 1184 | 1185 | String sql = "SELECT * FROM student_grade"; 1186 | 1187 | connect = database.connectDb(); 1188 | 1189 | try { 1190 | studentData studentD; 1191 | 1192 | prepare = connect.prepareStatement(sql); 1193 | result = prepare.executeQuery(); 1194 | 1195 | while (result.next()) { 1196 | studentD = new studentData(result.getInt("studentNum"), 1197 | result.getString("year"), 1198 | result.getString("course"), 1199 | result.getDouble("first_sem"), 1200 | result.getDouble("second_sem"), 1201 | result.getDouble("final")); 1202 | 1203 | listData.add(studentD); 1204 | } 1205 | } catch (Exception e) { 1206 | e.printStackTrace(); 1207 | } 1208 | return listData; 1209 | } 1210 | 1211 | private ObservableList studentGradesList; 1212 | 1213 | public void studentGradesShowListData() { 1214 | studentGradesList = studentGradesListData(); 1215 | 1216 | studentGrade_col_studentNum.setCellValueFactory(new PropertyValueFactory<>("studentNum")); 1217 | studentGrade_col_year.setCellValueFactory(new PropertyValueFactory<>("year")); 1218 | studentGrade_col_course.setCellValueFactory(new PropertyValueFactory<>("course")); 1219 | studentGrade_col_firstSem.setCellValueFactory(new PropertyValueFactory<>("firstSem")); 1220 | studentGrade_col_secondSem.setCellValueFactory(new PropertyValueFactory<>("secondSem")); 1221 | studentGrade_col_final.setCellValueFactory(new PropertyValueFactory<>("finals")); 1222 | // WE NEED TO FIX THE DELETE ON ADD STUDENT FORM 1223 | studentGrade_tableView.setItems(studentGradesList); 1224 | 1225 | } 1226 | 1227 | public void studentGradesSelect() { 1228 | 1229 | studentData studentD = studentGrade_tableView.getSelectionModel().getSelectedItem(); 1230 | int num = studentGrade_tableView.getSelectionModel().getSelectedIndex(); 1231 | 1232 | if ((num - 1) < -1) { 1233 | return; 1234 | } 1235 | 1236 | studentGrade_studentNum.setText(String.valueOf(studentD.getStudentNum())); 1237 | studentGrade_year.setText(studentD.getYear()); 1238 | studentGrade_course.setText(studentD.getCourse()); 1239 | studentGrade_firstSem.setText(String.valueOf(studentD.getFirstSem())); 1240 | studentGrade_secondSem.setText(String.valueOf(studentD.getSecondSem())); 1241 | } 1242 | 1243 | public void studentGradesSearch() { 1244 | 1245 | FilteredList filter = new FilteredList<>(studentGradesList, e -> true); 1246 | 1247 | studentGrade_search.textProperty().addListener((Observable, oldValue, newValue) -> { 1248 | 1249 | filter.setPredicate(predicateStudentData -> { 1250 | 1251 | if (newValue.isEmpty() || newValue == null) { 1252 | return true; 1253 | } 1254 | String searchKey = newValue.toLowerCase(); 1255 | 1256 | if (predicateStudentData.getStudentNum().toString().contains(searchKey)) { 1257 | return true; 1258 | } else if (predicateStudentData.getYear().toLowerCase().contains(searchKey)) { 1259 | return true; 1260 | } else if (predicateStudentData.getCourse().toLowerCase().contains(searchKey)) { 1261 | return true; 1262 | } else if (predicateStudentData.getFirstSem().toString().contains(searchKey)) { 1263 | return true; 1264 | } else if (predicateStudentData.getSecondSem().toString().contains(searchKey)) { 1265 | return true; 1266 | } else if (predicateStudentData.getFinals().toString().contains(searchKey)) { 1267 | return true; 1268 | } else { 1269 | return false; 1270 | } 1271 | }); 1272 | }); 1273 | 1274 | SortedList sortList = new SortedList<>(filter); 1275 | 1276 | sortList.comparatorProperty().bind(studentGrade_tableView.comparatorProperty()); 1277 | studentGrade_tableView.setItems(sortList); 1278 | 1279 | } 1280 | 1281 | private double x = 0; 1282 | private double y = 0; 1283 | 1284 | public void logout() { 1285 | 1286 | try { 1287 | 1288 | Alert alert = new Alert(AlertType.CONFIRMATION); 1289 | alert.setTitle("Confirmation Message"); 1290 | alert.setHeaderText(null); 1291 | alert.setContentText("Are you sure you want to logout?"); 1292 | 1293 | Optional option = alert.showAndWait(); 1294 | 1295 | if (option.get().equals(ButtonType.OK)) { 1296 | 1297 | //HIDE YOUR DASHBOARD FORM 1298 | logout.getScene().getWindow().hide(); 1299 | 1300 | //LINK YOUR LOGIN FORM 1301 | Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); 1302 | Stage stage = new Stage(); 1303 | Scene scene = new Scene(root); 1304 | 1305 | root.setOnMousePressed((MouseEvent event) -> { 1306 | x = event.getSceneX(); 1307 | y = event.getSceneY(); 1308 | }); 1309 | 1310 | root.setOnMouseDragged((MouseEvent event) -> { 1311 | stage.setX(event.getScreenX() - x); 1312 | stage.setY(event.getScreenY() - y); 1313 | 1314 | stage.setOpacity(.8); 1315 | }); 1316 | 1317 | root.setOnMouseReleased((MouseEvent event) -> { 1318 | stage.setOpacity(1); 1319 | }); 1320 | 1321 | stage.initStyle(StageStyle.TRANSPARENT); 1322 | 1323 | stage.setScene(scene); 1324 | stage.show(); 1325 | 1326 | } else { 1327 | return; 1328 | } 1329 | 1330 | } catch (Exception e) { 1331 | e.printStackTrace(); 1332 | } 1333 | 1334 | } 1335 | 1336 | public void displayUsername(){ 1337 | username.setText(getData.username); 1338 | } 1339 | // THATS IT FOR THESE VIDEOS, THANKS FOR WATCHING!! SUBSCRIBE AND TURN ON NOTIFICATION 1340 | // TO NOTIF YOU FOR MORE UPCOMING VIDEOS THANKS FOR THE SUPPORT! : ) 1341 | public void defaultNav(){ 1342 | home_btn.setStyle("-fx-background-color:linear-gradient(to bottom right, #3f82ae, #26bf7d);"); 1343 | } 1344 | 1345 | public void switchForm(ActionEvent event) { 1346 | if (event.getSource() == home_btn) { 1347 | home_form.setVisible(true); 1348 | addStudents_form.setVisible(false); 1349 | availableCourse_form.setVisible(false); 1350 | studentGrade_form.setVisible(false); 1351 | 1352 | home_btn.setStyle("-fx-background-color:linear-gradient(to bottom right, #3f82ae, #26bf7d);"); 1353 | addStudents_btn.setStyle("-fx-background-color:transparent"); 1354 | availableCourse_btn.setStyle("-fx-background-color:transparent"); 1355 | studentGrade_btn.setStyle("-fx-background-color:transparent"); 1356 | 1357 | homeDisplayTotalEnrolledStudents(); 1358 | homeDisplayMaleEnrolled(); 1359 | homeDisplayFemaleEnrolled(); 1360 | homeDisplayEnrolledMaleChart(); 1361 | homeDisplayFemaleEnrolledChart(); 1362 | homeDisplayTotalEnrolledChart(); 1363 | 1364 | } else if (event.getSource() == addStudents_btn) { 1365 | home_form.setVisible(false); 1366 | addStudents_form.setVisible(true); 1367 | availableCourse_form.setVisible(false); 1368 | studentGrade_form.setVisible(false); 1369 | 1370 | addStudents_btn.setStyle("-fx-background-color:linear-gradient(to bottom right, #3f82ae, #26bf7d);"); 1371 | home_btn.setStyle("-fx-background-color:transparent"); 1372 | availableCourse_btn.setStyle("-fx-background-color:transparent"); 1373 | studentGrade_btn.setStyle("-fx-background-color:transparent"); 1374 | 1375 | // TO BECOME UPDATED ONCE YOU CLICK THE ADD STUDENTS BUTTON ON NAV 1376 | addStudentsShowListData(); 1377 | addStudentsYearList(); 1378 | addStudentsGenderList(); 1379 | addStudentsStatusList(); 1380 | addStudentsCourseList(); 1381 | addStudentsSearch(); 1382 | 1383 | } else if (event.getSource() == availableCourse_btn) { 1384 | home_form.setVisible(false); 1385 | addStudents_form.setVisible(false); 1386 | availableCourse_form.setVisible(true); 1387 | studentGrade_form.setVisible(false); 1388 | 1389 | availableCourse_btn.setStyle("-fx-background-color:linear-gradient(to bottom right, #3f82ae, #26bf7d);"); 1390 | addStudents_btn.setStyle("-fx-background-color:transparent"); 1391 | home_btn.setStyle("-fx-background-color:transparent"); 1392 | studentGrade_btn.setStyle("-fx-background-color:transparent"); 1393 | 1394 | availableCourseShowListData(); 1395 | 1396 | } else if (event.getSource() == studentGrade_btn) { 1397 | home_form.setVisible(false); 1398 | addStudents_form.setVisible(false); 1399 | availableCourse_form.setVisible(false); 1400 | studentGrade_form.setVisible(true); 1401 | 1402 | studentGrade_btn.setStyle("-fx-background-color:linear-gradient(to bottom right, #3f82ae, #26bf7d);"); 1403 | addStudents_btn.setStyle("-fx-background-color:transparent"); 1404 | availableCourse_btn.setStyle("-fx-background-color:transparent"); 1405 | home_btn.setStyle("-fx-background-color:transparent"); 1406 | 1407 | studentGradesShowListData(); 1408 | studentGradesSearch(); 1409 | 1410 | } 1411 | } 1412 | 1413 | public void close() { 1414 | System.exit(0); 1415 | } 1416 | 1417 | public void minimize() { 1418 | Stage stage = (Stage) main_form.getScene().getWindow(); 1419 | stage.setIconified(true); 1420 | } 1421 | 1422 | // SORRY ABOUT THAT, I JUST NAMED THE DIFFERENT COMPONENTS WITH THE SAME NAME 1423 | // MAKE SURE THAT THE NAME YOU GAVE TO THEM ARE DIFFERENT TO THE OTHER OKAY? 1424 | @Override 1425 | public void initialize(URL location, ResourceBundle resources) { 1426 | displayUsername(); 1427 | defaultNav(); 1428 | 1429 | homeDisplayTotalEnrolledStudents(); 1430 | homeDisplayMaleEnrolled(); 1431 | homeDisplayFemaleEnrolled(); 1432 | homeDisplayEnrolledMaleChart(); 1433 | homeDisplayFemaleEnrolledChart(); 1434 | homeDisplayTotalEnrolledChart(); 1435 | 1436 | // TO SHOW IMMIDIATELY WHEN WE PROCEED TO DASHBOARD APPLICATION FORM 1437 | addStudentsShowListData(); 1438 | addStudentsYearList(); 1439 | addStudentsGenderList(); 1440 | addStudentsStatusList(); 1441 | addStudentsCourseList(); 1442 | 1443 | availableCourseShowListData(); 1444 | 1445 | studentGradesShowListData(); 1446 | 1447 | } 1448 | 1449 | } 1450 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/dashboardDesign.css: -------------------------------------------------------------------------------- 1 | /* 2 | To change this license header, choose License Headers in Project Properties. 3 | To change this template file, choose Tools | Templates 4 | and open the template in the editor. 5 | */ 6 | /* 7 | Created on : 09 17, 22, 10:45:44 AM 8 | Author : WINDOWS 10 9 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 10 | * THANKS FOR YOUR SUPPORT : ) 11 | */ 12 | 13 | .top-form{ 14 | -fx-background-color:#fff; 15 | -fx-border-color:#000; 16 | -fx-border-width:.4px .4px .2px .4px; 17 | } 18 | 19 | .semi-top-form{ 20 | -fx-background-color:#efefef; 21 | -fx-border-color:#000; 22 | -fx-border-width:.2px .4px .4px .4px; 23 | } 24 | 25 | .close{ 26 | -fx-background-color:transparent; 27 | -fx-cursor:hand; 28 | } 29 | .close:hover{ 30 | -fx-background-color:#fb3d63; 31 | } 32 | 33 | .minimize{ 34 | -fx-background-color:transparent; 35 | -fx-cursor:hand; 36 | } 37 | .minimize:hover{ 38 | -fx-background-color:#ddd; 39 | } 40 | 41 | .nav-form{ 42 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 43 | } 44 | 45 | .nav-btn{ 46 | -fx-background-color:transparent; 47 | -fx-cursor:hand; 48 | -fx-text-fill:#fff; 49 | -fx-font-size:15px; 50 | -fx-font-family:"Arial"; 51 | -fx-alignment:CENTER-LEFT; 52 | } 53 | 54 | .logout{ 55 | -fx-background-color:#2c84bf; 56 | -fx-background-radius:10px; 57 | -fx-cursor:hand; 58 | } 59 | .logout:hover{ 60 | -fx-background-color:#1593e7; 61 | } 62 | 63 | .shadow{ 64 | -fx-effect:dropshadow(three-pass-box, rgba(0,0,0,0.4), 6,0,0,0); 65 | } 66 | 67 | .white-bg{ 68 | -fx-background-color:#fff; 69 | -fx-background-radius:8px; 70 | } 71 | 72 | .card{ 73 | -fx-background-color:linear-gradient(to right, #344250, #3c6382); 74 | -fx-background-radius:4px; 75 | } 76 | 77 | .search{ 78 | -fx-background-color:transparent; 79 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 80 | -fx-border-width:.8px; 81 | -fx-border-radius:8px; 82 | -fx-font-family:"Tahoma"; 83 | -fx-font-size:14px; 84 | -fx-padding:0px 0px 0px 28px; 85 | } 86 | 87 | .search:focused{ 88 | -fx-border-width:1.8px; 89 | } 90 | 91 | .table-view{ 92 | -fx-background-color:transparent; 93 | -fx-padding:0px; 94 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 95 | -fx-border-width:2px; 96 | -fx-border-radius:8px; 97 | } 98 | .table-view .table-column{ 99 | -fx-alignment: CENTER; 100 | } 101 | .table-view .column-header-background{ 102 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 103 | -fx-background-radius:8px 8px 0px 0px; 104 | -fx-background-inset: 0 0 0 0; 105 | } 106 | .table-view .column-header, .filter{ 107 | -fx-background-color:transparent; 108 | -fx-size:40px; 109 | } 110 | .table-view .column-header .label{ 111 | -fx-text-fill:#fff; 112 | -fx-font-family:"Arial"; 113 | } 114 | 115 | .textfield{ 116 | -fx-background-color:linear-gradient(to bottom, #efefef, #eee); 117 | -fx-background-radius:4px; 118 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 119 | -fx-border-width:.8px; 120 | -fx-font-family:"Tahoma"; 121 | -fx-border-radius:4px; 122 | } 123 | .textfield:focused{ 124 | -fx-background-color:#fff; 125 | -fx-border-width:1px; 126 | } 127 | 128 | .insert-btn{ 129 | -fx-background-color:transparent; 130 | -fx-text-fill:red; 131 | -fx-font-size:14px; 132 | -fx-font-family:"Arial"; 133 | -fx-cursor:hand; 134 | } 135 | 136 | .add-btn{ 137 | -fx-background-color:#2d5278; 138 | -fx-background-radius:8px; 139 | -fx-cursor:hand; 140 | -fx-text-fill:#fff; 141 | -fx-font-size:14px; 142 | -fx-font-family:"Arial"; 143 | } 144 | .add-btn:hover{ 145 | -fx-background-color:#2268ae; 146 | } 147 | 148 | .update-btn{ 149 | -fx-background-color:#2d7755; 150 | -fx-background-radius:8px; 151 | -fx-cursor:hand; 152 | -fx-text-fill:#fff; 153 | -fx-font-size:14px; 154 | -fx-font-family:"Arial"; 155 | } 156 | .update-btn:hover{ 157 | -fx-background-color:#22ad72; 158 | } 159 | 160 | .delete-btn{ 161 | -fx-background-color:#90242f; 162 | -fx-background-radius:8px; 163 | -fx-cursor:hand; 164 | -fx-text-fill:#fff; 165 | -fx-font-size:14px; 166 | -fx-font-family:"Arial"; 167 | } 168 | .delete-btn:hover{ 169 | -fx-background-color:#c51f32; 170 | } 171 | 172 | .clear-btn{ 173 | -fx-background-color:#6e2275; 174 | -fx-background-radius:8px; 175 | -fx-cursor:hand; 176 | -fx-text-fill:#fff; 177 | -fx-font-size:14px; 178 | -fx-font-family:"Arial"; 179 | } 180 | .clear-btn:hover{ 181 | -fx-background-color:#ae21ac; 182 | } 183 | 184 | .label-info{ 185 | -fx-background-color:#fff; 186 | -fx-background-radius:4px; 187 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 188 | -fx-border-width:.8px; 189 | -fx-font-family:"Tahoma"; 190 | -fx-border-radius:4px; 191 | -fx-padding:0px 0px 0px 5px; 192 | } 193 | /* NOW FINALLY WE FINISHED THE COMPONENTS, NOW LETS NAME ALL OF THEM : )*/ -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/database.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | import java.sql.Connection; 9 | import java.sql.DriverManager; 10 | 11 | /** 12 | * 13 | * @author WINDOWS 10 14 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 15 | * THANKS FOR YOUR SUPPORT : ) 16 | */ 17 | public class database { 18 | 19 | public static Connection connectDb(){ 20 | 21 | try{ 22 | 23 | Class.forName("com.mysql.jdbc.Driver"); 24 | 25 | Connection connect = DriverManager.getConnection("jdbc:mysql://localhost/studentdata", "root", ""); 26 | return connect; 27 | }catch(Exception e){e.printStackTrace();} 28 | return null; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/getData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | /** 9 | * 10 | * @author WINDOWS 10 11 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 12 | * THANKS FOR YOUR SUPPORT : ) 13 | */ 14 | public class getData { 15 | 16 | public static String username; 17 | public static String path; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/loginDesign.css: -------------------------------------------------------------------------------- 1 | /* 2 | To change this license header, choose License Headers in Project Properties. 3 | To change this template file, choose Tools | Templates 4 | and open the template in the editor. 5 | */ 6 | /* 7 | Created on : 09 17, 22, 10:12:46 AM 8 | Author : WINDOWS 10 9 | SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 10 | * THANKS FOR YOUR SUPPORT : ) 11 | */ 12 | 13 | .left-form{ 14 | -fx-background-color:linear-gradient(to bottom right, #2d658c, #2ca772); 15 | -fx-border-color:#000; 16 | -fx-border-width:.4px 0px .4px .4px; 17 | } 18 | 19 | .right-form{ 20 | -fx-background-color:#fff; 21 | -fx-border-color:#000; 22 | -fx-border-width:.4px .4px .4px 0px; 23 | } 24 | 25 | .close{ 26 | -fx-background-color:transparent; 27 | -fx-cursor:hand; 28 | } 29 | .close:hover{ 30 | -fx-background-color:#fb3d63; 31 | } 32 | 33 | .textfield{ 34 | -fx-background-color:linear-gradient(to bottom, #efefef, #eee); 35 | -fx-background-radius:5px; 36 | -fx-border-color:#000; 37 | -fx-border-width:.2px; 38 | -fx-border-radius:5px; 39 | -fx-font-size:13px; 40 | -fx-font-family:"Tahoma"; 41 | } 42 | .textfield:focused{ 43 | -fx-background-color:#fff; 44 | -fx-border-color:linear-gradient(to bottom right, #2d658c, #2ca772); 45 | -fx-border-width:.8px; 46 | } 47 | 48 | .login-btn{ 49 | -fx-background-color:linear-gradient(to bottom, #2968a7, #14405d); 50 | -fx-background-radius:4px; 51 | -fx-cursor:hand; 52 | -fx-text-fill:#fff; 53 | -fx-font-size:14px; 54 | -fx-font-family:"Arial"; 55 | } 56 | .login-btn:hover{ 57 | -fx-background-color:linear-gradient(to bottom, #277bd0, #1b6fa4); 58 | } -------------------------------------------------------------------------------- /studentManagementSystem/src/studentmanagementsystem/studentData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * To change this license header, choose License Headers in Project Properties. 3 | * To change this template file, choose Tools | Templates 4 | * and open the template in the editor. 5 | */ 6 | package studentmanagementsystem; 7 | 8 | import java.sql.Date; 9 | 10 | /** 11 | * 12 | * @author WINDOWS 10 13 | * SUBSCRIBE OUR YOUTUBE CHANNEL -> https://www.youtube.com/channel/UCPgcmw0LXToDn49akUEJBkQ 14 | * THANKS FOR YOUR SUPPORT : ) 15 | */ 16 | public class studentData { 17 | 18 | private Integer studentNum; 19 | private String year; 20 | private String course; 21 | private String firstName; 22 | private String lastName; 23 | private String gender; 24 | private Date birth; 25 | private String status; 26 | private String image; 27 | private Double firstSem; 28 | private Double secondSem; 29 | private Double finals; 30 | 31 | // MAKE SURE THAT SAME DATATYPE THAT YOU WILL PUT THERE 32 | public studentData(Integer studentNum, String year, String course, String firstName, String lastName, String gender, Date birth, String status, String image) { 33 | this.studentNum = studentNum; 34 | this.year = year; 35 | this.course = course; 36 | this.firstName = firstName; 37 | this.lastName = lastName; 38 | this.gender = gender; 39 | this.birth = birth; 40 | this.status = status; 41 | this.image = image; 42 | } 43 | 44 | public studentData(Integer studentNum, String year, String course, Double firstSem, Double secondSem, Double finals) { 45 | this.studentNum = studentNum; 46 | this.year = year; 47 | this.course = course; 48 | this.firstSem = firstSem; 49 | this.secondSem = secondSem; 50 | this.finals = finals; 51 | } 52 | 53 | public Integer getStudentNum() { 54 | return studentNum; 55 | } 56 | 57 | public String getYear() { 58 | return year; 59 | } 60 | 61 | public String getCourse() { 62 | return course; 63 | } 64 | 65 | public String getFirstName() { 66 | return firstName; 67 | } 68 | 69 | public String getLastName() { 70 | return lastName; 71 | } 72 | 73 | public String getGender() { 74 | return gender; 75 | } 76 | 77 | public Date getBirth() { 78 | return birth; 79 | } 80 | 81 | public String getStatus() { 82 | return status; 83 | } 84 | 85 | public String getImage() { 86 | return image; 87 | } 88 | 89 | public Double getFirstSem() { 90 | return firstSem; 91 | } 92 | 93 | public Double getSecondSem() { 94 | return secondSem; 95 | } 96 | 97 | public Double getFinals() { 98 | return finals; 99 | } 100 | 101 | // PLEASE FOLLOW ME IF THE VARS ARE THE SAME TO ME 102 | } 103 | --------------------------------------------------------------------------------