├── .gitignore ├── Caddyfile ├── README.md ├── classbridge ├── about.html ├── blog.html ├── contact.html ├── css │ ├── bootstrap.css │ ├── responsive.css │ ├── style.css │ ├── style.css.map │ └── style.scss ├── images │ ├── about-img1.jpg │ ├── about-img2.jpg │ ├── blog1.jpg │ ├── blog2.jpg │ ├── envelope-white.png │ ├── fb.png │ ├── insta.png │ ├── instagram.png │ ├── linkedin.png │ ├── location-white.png │ ├── logo.png │ ├── menu.png │ ├── next.png │ ├── plug.png │ ├── prev.png │ ├── s1.png │ ├── s2.png │ ├── s3.png │ ├── s4.png │ ├── s5.png │ ├── slider-img.jpg │ ├── telephone-white.png │ ├── twitter.png │ └── youtube.png ├── index.html ├── js │ ├── bootstrap.js │ └── jquery-3.4.1.min.js └── service.html ├── main.py ├── requirements.txt ├── static ├── dashboard │ ├── css │ │ └── style.css │ ├── imgs │ │ ├── customer01.jpg │ │ └── customer02.jpg │ └── js │ │ └── main.js ├── formimg │ ├── log.svg │ └── register.svg ├── formjs.js ├── formstyle.css └── gpa_calculator │ └── style.css └── templates ├── class_room └── class_room.html ├── dashboard ├── home.html └── homepage.html ├── gpa_calculator └── gpa_calculator.html ├── index.html ├── navigation └── navigation.html └── todo └── todo.html /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | env/ 3 | -------------------------------------------------------------------------------- /Caddyfile: -------------------------------------------------------------------------------- 1 | http://54.90.33.165 { 2 | reverse_proxy localhost:8000 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Welcome to Classbridge 2 | 3 | An innovative web app designed to empower education. 4 | With Classbridge, you can easily create and manage classes, calculate your GPA, and stay on top of your tasks with a to-do list app. 5 | Whether you're an instructor or a student, Classbridge simplifies your tasks and enhances your educational experience. Join us today and discover a seamless way to learn and teach. 6 | 7 | ===========How To Start The app============== 8 | 9 | 1. install The requirements into you system using pip3 10 | 11 | use the command below 12 | 13 | pip3 install -r requirements 14 | 15 | 2. run the app 16 | 17 | Goto the directory, the start the app using the command below 18 | 19 | python3 app.py 20 | -------------------------------------------------------------------------------- /classbridge/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ClassBridge 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 |
37 | 70 |
71 |
72 | 73 |
74 | 75 | 76 | 77 | 78 |
79 |
80 |
81 |
82 |
83 |
84 |

85 | About Us 86 |

87 | 88 |
89 |

90 | Our mission is to make your life easier by delivering solutions 91 | that meet your needs and exceed your expectations. We believe in 92 | the power of innovation and creativity, and we strive to 93 | constantly improve and evolve our offerings to better serve you. 94 | Thank you for choosing us, and we look forward to working with you! 95 |

96 | 97 | Read More 98 | 99 |
100 |
101 |
102 |
103 |
104 | 105 |
106 |
107 | 108 |
109 |
110 | 111 |
112 | 113 |
114 |
115 |
116 | 117 | 118 | 119 | 120 | 121 |
122 |
123 | 144 |
145 |
146 |
147 |
148 | 149 | 152 |
153 |
154 |
155 |
156 |
157 |
158 | 159 | 160 | 161 |
162 |
163 | 164 | 165 | 166 |
167 |
168 | 169 | 170 | 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 | -------------------------------------------------------------------------------- /classbridge/blog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Electrochip 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 |
37 | 72 |
73 |
74 | 75 |
76 | 77 | 78 | 79 | 80 | 81 | 82 |
83 |
84 |
85 |

86 | Blog 87 |

88 | 89 |
90 |
91 |
92 |
93 |
94 | 95 |
96 |
97 |
98 | Blog Title Goes Here 99 |
100 |

101 | There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised 102 |

103 |
104 |
105 |
106 |
107 |
108 |
109 | 110 |
111 |
112 |
113 | Blog Title Goes Here 114 |
115 |

116 | There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised 117 |

118 |
119 |
120 |
121 |
122 |
123 |
124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 |
135 |
136 | 164 |
165 |
166 |
167 |
168 | 169 | 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 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | -------------------------------------------------------------------------------- /classbridge/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ClassBridge 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 |
37 | 68 |
69 |
70 | 71 |
72 | 73 | 74 | 75 | 76 |
77 |
78 |
79 |

80 | Contact Us 81 |

82 | 83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 | 91 |
92 |
93 | 94 |
95 |
96 | 97 |
98 |
99 | 100 |
101 |
102 | 105 |
106 |
107 |
108 | 109 |
110 |
111 |
112 | 113 | 114 | 115 | 116 | 117 | 118 |
119 |
120 | 141 |
142 |
143 |
144 |
145 | 146 | 149 |
150 |
151 |
152 |
153 |
154 |
155 | 156 | 157 | 158 |
159 |
160 | 161 | 162 | 163 |
164 |
165 | 166 | 167 | 168 |
169 |
170 | 171 | 172 | 173 |
174 |
175 |
176 |
177 | 178 |
179 |
180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /classbridge/css/responsive.css: -------------------------------------------------------------------------------- 1 | @media (max-width: 1120px) {} 2 | 3 | @media (max-width: 992px) { 4 | 5 | .hero_area { 6 | height: auto; 7 | } 8 | 9 | .header_section { 10 | padding-top: 10px; 11 | } 12 | 13 | #navbarSupportedContent { 14 | margin-top: 25px; 15 | } 16 | 17 | .slider_section { 18 | 19 | padding-top: 75px; 20 | padding-bottom: 150px; 21 | 22 | } 23 | 24 | .about_section .img-box { 25 | margin: 0 5%; 26 | } 27 | 28 | .about_section .detail-box { 29 | margin-right: 5%; 30 | } 31 | 32 | .service_section .service_container .box { 33 | -ms-flex-preferred-size: 48%; 34 | flex-basis: 48%; 35 | } 36 | 37 | .about_section .img_container .img-box.b2 { 38 | margin-top: -5%; 39 | } 40 | 41 | } 42 | 43 | @media (max-width: 768px) { 44 | 45 | 46 | .slider_section .detail_box { 47 | text-align: center; 48 | } 49 | 50 | .slider_section .img_content { 51 | margin-top: 55px; 52 | } 53 | 54 | .contact_section .map_container { 55 | margin-top: 45px; 56 | } 57 | 58 | .info_section .info_contact a { 59 | margin-bottom: 15px; 60 | } 61 | 62 | .info_section .info_social { 63 | justify-content: center; 64 | } 65 | 66 | .service_section .service_container .box { 67 | flex-basis: 98%; 68 | } 69 | 70 | .contact_section form { 71 | padding-right: 0; 72 | } 73 | 74 | .info_section .info_contact a { 75 | text-align: center; 76 | } 77 | } 78 | 79 | @media (max-width: 576px) { 80 | .about_section .img_container .img-box.b1 { 81 | width: 80%; 82 | } 83 | 84 | .about_section .img_container .img-box.b2 { 85 | width: 55%; 86 | } 87 | 88 | .info_section .info_form form { 89 | flex-direction: column; 90 | } 91 | 92 | .info_section .info_form form input { 93 | width: 100%; 94 | } 95 | 96 | .info_section .info_form form button { 97 | margin-top: 15px; 98 | padding: 10px 40px; 99 | } 100 | } 101 | 102 | @media (max-width: 480px) {} 103 | 104 | @media (max-width: 420px) { 105 | 106 | .slider_section .carousel-control-prev, 107 | .slider_section .carousel-control-next { 108 | right: 0; 109 | } 110 | } 111 | 112 | @media (max-width: 360px) {} 113 | 114 | @media (min-width: 1200px) { 115 | .container { 116 | max-width: 1170px; 117 | } 118 | } -------------------------------------------------------------------------------- /classbridge/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: "Poppins", sans-serif; 3 | color: #0c0c0c; 4 | background-color: #ffffff; 5 | } 6 | 7 | .layout_padding { 8 | padding-top: 90px; 9 | padding-bottom: 90px; 10 | } 11 | 12 | .layout_padding2 { 13 | padding-top: 45px; 14 | padding-bottom: 45px; 15 | } 16 | 17 | .layout_padding2-top { 18 | padding-top: 45px; 19 | } 20 | 21 | .layout_padding2-bottom { 22 | padding-bottom: 45px; 23 | } 24 | 25 | .layout_padding-top { 26 | padding-top: 90px; 27 | } 28 | 29 | .layout_padding-bottom { 30 | padding-bottom: 90px; 31 | } 32 | 33 | .heading_container { 34 | display: -webkit-box; 35 | display: -ms-flexbox; 36 | display: flex; 37 | -webkit-box-pack: start; 38 | -ms-flex-pack: start; 39 | justify-content: flex-start; 40 | -webkit-box-align: center; 41 | -ms-flex-align: center; 42 | align-items: center; 43 | text-align: center; 44 | } 45 | 46 | .heading_container h2 { 47 | position: relative; 48 | font-weight: bold; 49 | margin-right: 10px; 50 | } 51 | 52 | .heading_container img { 53 | width: 30px; 54 | } 55 | 56 | /*header section*/ 57 | .hero_area { 58 | height: 98vh; 59 | position: relative; 60 | display: -webkit-box; 61 | display: -ms-flexbox; 62 | display: flex; 63 | -webkit-box-orient: vertical; 64 | -webkit-box-direction: normal; 65 | -ms-flex-direction: column; 66 | flex-direction: column; 67 | background-color: #eae6f5; 68 | } 69 | 70 | .sub_page .hero_area { 71 | height: auto; 72 | } 73 | 74 | .header_section .container { 75 | padding: 0; 76 | } 77 | 78 | .header_section .nav_container { 79 | margin: 0 auto; 80 | } 81 | 82 | .custom_nav-container .navbar-nav .nav-item .nav-link { 83 | padding: 7px 20px; 84 | margin: 10px 15px; 85 | color: #000000; 86 | text-align: center; 87 | border-radius: 35px; 88 | text-transform: uppercase; 89 | font-size: 15px; 90 | } 91 | 92 | .custom_nav-container .navbar-nav .nav-item.active .nav-link, .custom_nav-container .navbar-nav .nav-item:hover .nav-link { 93 | background-color: #4b208c; 94 | color: #ffffff; 95 | } 96 | 97 | a, 98 | a:hover, 99 | a:focus { 100 | text-decoration: none; 101 | } 102 | 103 | a:hover, 104 | a:focus { 105 | color: initial; 106 | } 107 | 108 | .btn, 109 | .btn:focus { 110 | outline: none !important; 111 | -webkit-box-shadow: none; 112 | box-shadow: none; 113 | } 114 | 115 | .custom_nav-container .nav_search-btn { 116 | background-image: url(../images/search-icon.png); 117 | background-size: 22px; 118 | background-repeat: no-repeat; 119 | background-position-y: 7px; 120 | width: 35px; 121 | height: 35px; 122 | padding: 0; 123 | border: none; 124 | } 125 | 126 | .navbar-brand { 127 | display: -webkit-box; 128 | display: -ms-flexbox; 129 | display: flex; 130 | -webkit-box-align: center; 131 | -ms-flex-align: center; 132 | align-items: center; 133 | } 134 | 135 | .navbar-brand img { 136 | margin-right: 5px; 137 | width: 35px; 138 | } 139 | 140 | .navbar-brand span { 141 | font-size: 22px; 142 | font-weight: 700; 143 | color: #4b208c; 144 | } 145 | 146 | .custom_nav-container { 147 | z-index: 99999; 148 | } 149 | 150 | .navbar-expand-lg .navbar-collapse { 151 | -webkit-box-align: end; 152 | -ms-flex-align: end; 153 | align-items: flex-end; 154 | } 155 | 156 | .custom_nav-container .navbar-toggler { 157 | outline: none; 158 | } 159 | 160 | .custom_nav-container .navbar-toggler { 161 | padding: 0; 162 | width: 37px; 163 | height: 42px; 164 | } 165 | 166 | .custom_nav-container .navbar-toggler span { 167 | display: block; 168 | width: 35px; 169 | height: 4px; 170 | background-color: #190734; 171 | margin: 7px 0; 172 | -webkit-transition: all .3s; 173 | transition: all .3s; 174 | } 175 | 176 | .custom_nav-container .navbar-toggler[aria-expanded="true"] .s-1 { 177 | -webkit-transform: rotate(45deg); 178 | transform: rotate(45deg); 179 | margin: 0; 180 | margin-bottom: -4px; 181 | } 182 | 183 | .custom_nav-container .navbar-toggler[aria-expanded="true"] .s-2 { 184 | display: none; 185 | } 186 | 187 | .custom_nav-container .navbar-toggler[aria-expanded="true"] .s-3 { 188 | -webkit-transform: rotate(-45deg); 189 | transform: rotate(-45deg); 190 | margin: 0; 191 | margin-top: -4px; 192 | } 193 | 194 | .custom_nav-container .navbar-toggler[aria-expanded="false"] .s-1, 195 | .custom_nav-container .navbar-toggler[aria-expanded="false"] .s-2, 196 | .custom_nav-container .navbar-toggler[aria-expanded="false"] .s-3 { 197 | -webkit-transform: none; 198 | transform: none; 199 | } 200 | 201 | /*end header section*/ 202 | /* slider section */ 203 | .slider_section { 204 | -webkit-box-flex: 1; 205 | -ms-flex: 1; 206 | flex: 1; 207 | display: -webkit-box; 208 | display: -ms-flexbox; 209 | display: flex; 210 | -webkit-box-align: center; 211 | -ms-flex-align: center; 212 | align-items: center; 213 | position: relative; 214 | z-index: 2; 215 | color: #3b3a3a; 216 | padding-bottom: 90px; 217 | } 218 | 219 | .slider_section .row { 220 | -webkit-box-align: center; 221 | -ms-flex-align: center; 222 | align-items: center; 223 | } 224 | 225 | .slider_section .detail_box { 226 | color: #000000; 227 | } 228 | 229 | .slider_section .detail_box h1 { 230 | text-transform: uppercase; 231 | font-weight: bold; 232 | } 233 | 234 | .slider_section .detail_box p { 235 | margin-top: 20px; 236 | } 237 | 238 | .slider_section .detail_box a { 239 | display: inline-block; 240 | padding: 10px 40px; 241 | background-color: #4b208c; 242 | color: #ffffff; 243 | border-radius: 35px; 244 | margin-top: 35px; 245 | } 246 | 247 | .slider_section .detail_box a:hover { 248 | background-color: #5625a1; 249 | } 250 | 251 | .slider_section .img_container { 252 | border: 7px solid #7b57b2; 253 | border-radius: 100%; 254 | overflow: hidden; 255 | } 256 | 257 | .slider_section .img_container div#carouselExampleContarols { 258 | width: 100%; 259 | position: unset; 260 | } 261 | 262 | .slider_section .img_container .img-box img { 263 | width: 100%; 264 | } 265 | 266 | .slider_section .carousel-control-prev, 267 | .slider_section .carousel-control-next { 268 | top: initial; 269 | left: initial; 270 | bottom: 5%; 271 | right: 10%; 272 | width: 45px; 273 | height: 45px; 274 | border: none; 275 | border-radius: 100%; 276 | opacity: 1; 277 | background-repeat: no-repeat; 278 | background-size: 8px; 279 | background-position: center; 280 | } 281 | 282 | .slider_section .carousel-control-prev { 283 | background-image: url(../images/prev.png); 284 | background-color: #ffffff; 285 | -webkit-transform: translate(-85px, 30px); 286 | transform: translate(-85px, 30px); 287 | } 288 | 289 | .slider_section .carousel-control-next { 290 | background-image: url(../images/next.png); 291 | background-color: #4b208c; 292 | -webkit-transform: translate(-45px, 0); 293 | transform: translate(-45px, 0); 294 | } 295 | 296 | .service_section { 297 | text-align: center; 298 | } 299 | 300 | .service_section .heading_container { 301 | -webkit-box-pack: center; 302 | -ms-flex-pack: center; 303 | justify-content: center; 304 | } 305 | 306 | .service_section .service_container { 307 | display: -webkit-box; 308 | display: -ms-flexbox; 309 | display: flex; 310 | -webkit-box-pack: center; 311 | -ms-flex-pack: center; 312 | justify-content: center; 313 | padding: 35px 0; 314 | -ms-flex-wrap: wrap; 315 | flex-wrap: wrap; 316 | } 317 | 318 | .service_section .service_container .box { 319 | margin: 25px 1%; 320 | -ms-flex-preferred-size: 31%; 321 | flex-basis: 31%; 322 | padding: 35px 25px 25px; 323 | border-radius: 15px; 324 | -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); 325 | box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); 326 | border-top: 15px solid transparent; 327 | overflow: hidden; 328 | -webkit-transition: all .1s; 329 | transition: all .1s; 330 | } 331 | 332 | .service_section .service_container .box .img-box { 333 | display: -webkit-box; 334 | display: -ms-flexbox; 335 | display: flex; 336 | -webkit-box-pack: center; 337 | -ms-flex-pack: center; 338 | justify-content: center; 339 | -webkit-box-align: center; 340 | -ms-flex-align: center; 341 | align-items: center; 342 | height: 125px; 343 | } 344 | 345 | .service_section .service_container .box .img-box img { 346 | width: 90px; 347 | } 348 | 349 | .service_section .service_container .box .detail-box { 350 | margin-top: 25px; 351 | } 352 | 353 | .service_section .service_container .box .detail-box h5 { 354 | color: #2e0e5f; 355 | font-weight: 600; 356 | position: relative; 357 | } 358 | 359 | .service_section .service_container .box:hover, .service_section .service_container .box.active { 360 | border-top: 15px solid #512a97; 361 | } 362 | 363 | .service_section .btn-box { 364 | display: -webkit-box; 365 | display: -ms-flexbox; 366 | display: flex; 367 | -webkit-box-pack: center; 368 | -ms-flex-pack: center; 369 | justify-content: center; 370 | margin-top: 25px; 371 | } 372 | 373 | .service_section .btn-box a { 374 | display: inline-block; 375 | padding: 10px 35px; 376 | background-color: #4b208c; 377 | color: #ffffff; 378 | border-radius: 35px; 379 | } 380 | 381 | .service_section .btn-box a:hover { 382 | background-color: #5625a1; 383 | } 384 | 385 | .about_section { 386 | background-color: #f3f0f6; 387 | } 388 | 389 | .about_section .row { 390 | -webkit-box-align: center; 391 | -ms-flex-align: center; 392 | align-items: center; 393 | } 394 | 395 | .about_section .img_container { 396 | display: -webkit-box; 397 | display: -ms-flexbox; 398 | display: flex; 399 | -webkit-box-orient: vertical; 400 | -webkit-box-direction: normal; 401 | -ms-flex-direction: column; 402 | flex-direction: column; 403 | } 404 | 405 | .about_section .img_container .img-box { 406 | border: 5px solid #7b57b2; 407 | border-radius: 100%; 408 | overflow: hidden; 409 | } 410 | 411 | .about_section .img_container .img-box.b1 { 412 | width: 70%; 413 | } 414 | 415 | .about_section .img_container .img-box.b2 { 416 | width: 50%; 417 | margin-left: auto; 418 | margin-top: -12%; 419 | } 420 | 421 | .about_section .img_container .img-box img { 422 | width: 100%; 423 | } 424 | 425 | .about_section .detail-box { 426 | margin-right: 15%; 427 | } 428 | 429 | .about_section .detail-box p { 430 | margin-top: 25px; 431 | } 432 | 433 | .about_section .detail-box a { 434 | display: inline-block; 435 | padding: 10px 35px; 436 | background-color: #4b208c; 437 | color: #ffffff; 438 | border-radius: 5px; 439 | margin: 25px 0 45px 0; 440 | } 441 | 442 | .about_section .detail-box a:hover { 443 | background-color: #5625a1; 444 | } 445 | 446 | .blog_section .heading_container { 447 | -webkit-box-pack: center; 448 | -ms-flex-pack: center; 449 | justify-content: center; 450 | } 451 | 452 | .blog_section .heading_container h2::before { 453 | background-color: #ffffff; 454 | } 455 | 456 | .blog_section .box { 457 | margin-top: 55px; 458 | background-color: #ffffff; 459 | -webkit-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); 460 | box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.15); 461 | } 462 | 463 | .blog_section .box .img-box { 464 | position: relative; 465 | } 466 | 467 | .blog_section .box .img-box img { 468 | width: 100%; 469 | } 470 | 471 | .blog_section .box .detail-box { 472 | padding: 25px 25px 15px; 473 | } 474 | 475 | .blog_section .box .detail-box h5 { 476 | font-weight: bold; 477 | } 478 | 479 | .contact_section { 480 | position: relative; 481 | } 482 | 483 | .contact_section form { 484 | margin-top: 45px; 485 | padding-right: 35px; 486 | } 487 | 488 | .contact_section input { 489 | width: 100%; 490 | border: none; 491 | height: 50px; 492 | margin-bottom: 25px; 493 | padding-left: 25px; 494 | background-color: transparent; 495 | outline: none; 496 | color: #101010; 497 | -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16); 498 | box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16); 499 | } 500 | 501 | .contact_section input::-webkit-input-placeholder { 502 | color: #737272; 503 | } 504 | 505 | .contact_section input:-ms-input-placeholder { 506 | color: #737272; 507 | } 508 | 509 | .contact_section input::-ms-input-placeholder { 510 | color: #737272; 511 | } 512 | 513 | .contact_section input::placeholder { 514 | color: #737272; 515 | } 516 | 517 | .contact_section input.message-box { 518 | height: 120px; 519 | } 520 | 521 | .contact_section button { 522 | border: none; 523 | display: inline-block; 524 | padding: 12px 45px; 525 | background-color: #4b208c; 526 | color: #ffffff; 527 | border-radius: 0px; 528 | margin-top: 35px; 529 | } 530 | 531 | .contact_section button:hover { 532 | background-color: #5625a1; 533 | } 534 | 535 | .contact_section .map_container { 536 | height: 100%; 537 | min-height: 325px; 538 | } 539 | 540 | .contact_section .map_container .map-responsive { 541 | height: 100%; 542 | } 543 | 544 | .footer_bg { 545 | background-image: url(../images/footer-bg.png); 546 | background-size: cover; 547 | background-position: top; 548 | } 549 | 550 | /* info section */ 551 | .info_section { 552 | background-color: #190734; 553 | color: #ffffff; 554 | } 555 | 556 | .info_section h6 { 557 | font-weight: bold; 558 | } 559 | 560 | .info_section .info_contact { 561 | margin-top: 60px; 562 | margin-bottom: 45px; 563 | } 564 | 565 | .info_section .info_contact .col-md-4 { 566 | display: -webkit-box; 567 | display: -ms-flexbox; 568 | display: flex; 569 | -webkit-box-pack: center; 570 | -ms-flex-pack: center; 571 | justify-content: center; 572 | } 573 | 574 | .info_section .info_contact a { 575 | color: #ffffff; 576 | } 577 | 578 | .info_section .info_contact img { 579 | max-width: 100%; 580 | margin-right: 10px; 581 | } 582 | 583 | .info_section .info_form { 584 | margin: 0 auto; 585 | margin-bottom: 45px; 586 | } 587 | 588 | .info_section .info_form h4 { 589 | text-transform: uppercase; 590 | text-align: center; 591 | margin-bottom: 20px; 592 | } 593 | 594 | .info_section .info_form form { 595 | display: -webkit-box; 596 | display: -ms-flexbox; 597 | display: flex; 598 | -webkit-box-align: center; 599 | -ms-flex-align: center; 600 | align-items: center; 601 | } 602 | 603 | .info_section .info_form form input { 604 | background-color: #ffffff; 605 | border: none; 606 | -webkit-box-flex: 2.5; 607 | -ms-flex: 2.5; 608 | flex: 2.5; 609 | outline: none; 610 | color: #000000; 611 | min-height: 42.4px; 612 | padding-left: 15px; 613 | } 614 | 615 | .info_section .info_form form input ::-webkit-input-placeholder { 616 | color: #ffffff; 617 | opacity: 0.2; 618 | } 619 | 620 | .info_section .info_form form input :-ms-input-placeholder { 621 | color: #ffffff; 622 | opacity: 0.2; 623 | } 624 | 625 | .info_section .info_form form input ::-ms-input-placeholder { 626 | color: #ffffff; 627 | opacity: 0.2; 628 | } 629 | 630 | .info_section .info_form form input ::placeholder { 631 | color: #ffffff; 632 | opacity: 0.2; 633 | } 634 | 635 | .info_section .info_form form button { 636 | -webkit-box-flex: 1; 637 | -ms-flex: 1; 638 | flex: 1; 639 | border: none; 640 | display: inline-block; 641 | padding: 10px 30px; 642 | background-color: #4b208c; 643 | color: #ffffff; 644 | border-radius: 0; 645 | font-size: 15px; 646 | text-transform: uppercase; 647 | } 648 | 649 | .info_section .info_form form button:hover { 650 | background-color: #5625a1; 651 | } 652 | 653 | .info_section .box { 654 | display: -webkit-box; 655 | display: -ms-flexbox; 656 | display: flex; 657 | } 658 | 659 | .info_section .info_social { 660 | display: -webkit-box; 661 | display: -ms-flexbox; 662 | display: flex; 663 | } 664 | 665 | .info_section .info_social img { 666 | width: 35px; 667 | margin-right: 8px; 668 | } 669 | 670 | /* end info section */ 671 | /* footer section*/ 672 | .footer_section { 673 | display: -webkit-box; 674 | display: -ms-flexbox; 675 | display: flex; 676 | -webkit-box-pack: center; 677 | -ms-flex-pack: center; 678 | justify-content: center; 679 | position: relative; 680 | } 681 | 682 | .footer_section p { 683 | color: #222222; 684 | margin: 0 auto; 685 | text-align: center; 686 | padding: 20px; 687 | } 688 | 689 | .footer_section p a { 690 | color: #222222; 691 | } 692 | /*# sourceMappingURL=style.css.map */ -------------------------------------------------------------------------------- /classbridge/css/style.css.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "mappings": "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", 4 | "sources": [ 5 | "style.scss" 6 | ], 7 | "names": [], 8 | "file": "style.css" 9 | } -------------------------------------------------------------------------------- /classbridge/css/style.scss: -------------------------------------------------------------------------------- 1 | $white: #ffffff; 2 | $black: #000000; 3 | $primary1: #4b208c; 4 | $primary2: #371e71; 5 | 6 | @mixin main-font { 7 | font-family: "Poppins", sans-serif; 8 | } 9 | 10 | @mixin hero_btn($col1, $col2, $pad1, $pad2, $bRadius) { 11 | display: inline-block; 12 | padding: $pad1 $pad2; 13 | background-color: $col1; 14 | color: $col2; 15 | border-radius: $bRadius; 16 | 17 | &:hover { 18 | background-color: lighten($color: $col1, $amount: 5); 19 | } 20 | } 21 | 22 | @mixin upperBold { 23 | text-transform: uppercase; 24 | font-weight: bold; 25 | } 26 | 27 | body { 28 | @include main-font; 29 | color: #0c0c0c; 30 | background-color: #ffffff; 31 | } 32 | 33 | .layout_padding { 34 | padding-top: 90px; 35 | padding-bottom: 90px; 36 | } 37 | 38 | .layout_padding2 { 39 | padding-top: 45px; 40 | padding-bottom: 45px; 41 | } 42 | 43 | .layout_padding2-top { 44 | padding-top: 45px; 45 | } 46 | 47 | .layout_padding2-bottom { 48 | padding-bottom: 45px; 49 | } 50 | 51 | .layout_padding-top { 52 | padding-top: 90px; 53 | } 54 | 55 | .layout_padding-bottom { 56 | padding-bottom: 90px; 57 | } 58 | 59 | .heading_container { 60 | display: flex; 61 | justify-content: flex-start; 62 | align-items: center; 63 | text-align: center; 64 | 65 | h2 { 66 | position: relative; 67 | font-weight: bold; 68 | margin-right: 10px; 69 | } 70 | 71 | img { 72 | width: 30px; 73 | } 74 | } 75 | 76 | /*header section*/ 77 | .hero_area { 78 | height: 98vh; 79 | position: relative; 80 | display: flex; 81 | flex-direction: column; 82 | background-color: #eae6f5; 83 | } 84 | 85 | .sub_page { 86 | .hero_area { 87 | height: auto; 88 | } 89 | 90 | 91 | } 92 | 93 | .header_section { 94 | .container { 95 | padding: 0; 96 | } 97 | 98 | .nav_container { 99 | margin: 0 auto; 100 | } 101 | } 102 | 103 | .custom_nav-container { 104 | .navbar-nav { 105 | .nav-item { 106 | .nav-link { 107 | padding: 7px 20px; 108 | margin: 10px 15px; 109 | color: $black; 110 | text-align: center; 111 | border-radius: 35px; 112 | text-transform: uppercase; 113 | font-size: 15px; 114 | } 115 | 116 | &.active, 117 | &:hover { 118 | .nav-link { 119 | background-color: $primary1; 120 | color: $white; 121 | } 122 | } 123 | } 124 | } 125 | } 126 | 127 | a, 128 | a:hover, 129 | a:focus { 130 | text-decoration: none; 131 | } 132 | 133 | a:hover, 134 | a:focus { 135 | color: initial; 136 | } 137 | 138 | .btn, 139 | .btn:focus { 140 | outline: none !important; 141 | box-shadow: none; 142 | } 143 | 144 | .custom_nav-container .nav_search-btn { 145 | background-image: url(../images/search-icon.png); 146 | background-size: 22px; 147 | background-repeat: no-repeat; 148 | background-position-y: 7px; 149 | width: 35px; 150 | height: 35px; 151 | padding: 0; 152 | border: none; 153 | } 154 | 155 | .navbar-brand { 156 | display: flex; 157 | align-items: center; 158 | 159 | img { 160 | margin-right: 5px; 161 | width: 35px; 162 | } 163 | 164 | span { 165 | font-size: 22px; 166 | font-weight: 700; 167 | color: $primary1; 168 | } 169 | } 170 | 171 | .custom_nav-container { 172 | z-index: 99999; 173 | } 174 | 175 | .navbar-expand-lg .navbar-collapse { 176 | align-items: flex-end; //for this site only 177 | } 178 | 179 | .custom_nav-container .navbar-toggler { 180 | outline: none; 181 | } 182 | 183 | .custom_nav-container .navbar-toggler { 184 | padding: 0; 185 | width: 37px; 186 | height: 42px; 187 | 188 | span { 189 | display: block; 190 | width: 35px; 191 | height: 4px; 192 | background-color: #190734; 193 | margin: 7px 0; 194 | transition: all .3s; 195 | } 196 | 197 | 198 | &[aria-expanded="true"] { 199 | .s-1 { 200 | transform: rotate(45deg); 201 | margin: 0; 202 | margin-bottom: -4px; 203 | } 204 | 205 | .s-2 { 206 | display: none; 207 | } 208 | 209 | .s-3 { 210 | transform: rotate(-45deg); 211 | margin: 0; 212 | margin-top: -4px; 213 | } 214 | } 215 | 216 | &[aria-expanded="false"] { 217 | 218 | .s-1, 219 | .s-2, 220 | .s-3 { 221 | transform: none; 222 | } 223 | } 224 | 225 | } 226 | 227 | 228 | 229 | /*end header section*/ 230 | 231 | /* slider section */ 232 | .slider_section { 233 | flex: 1; 234 | display: flex; 235 | align-items: center; 236 | position: relative; 237 | z-index: 2; 238 | color: #3b3a3a; 239 | padding-bottom: 90px; 240 | 241 | .row { 242 | align-items: center; 243 | } 244 | 245 | 246 | 247 | .detail_box { 248 | color: $black; 249 | 250 | h1 { 251 | text-transform: uppercase; 252 | font-weight: bold; 253 | } 254 | 255 | p { 256 | margin-top: 20px; 257 | } 258 | 259 | a { 260 | @include hero_btn($primary1, $white, 10px, 40px, 35px); 261 | margin-top: 35px; 262 | } 263 | } 264 | 265 | .img_container { 266 | border: 7px solid #7b57b2; 267 | border-radius: 100%; 268 | overflow: hidden; 269 | 270 | div#carouselExampleContarols { 271 | width: 100%; 272 | position: unset; 273 | 274 | 275 | } 276 | 277 | .img-box { 278 | 279 | img { 280 | width: 100%; 281 | } 282 | } 283 | } 284 | 285 | 286 | .carousel-control-prev, 287 | .carousel-control-next { 288 | top: initial; 289 | left: initial; 290 | bottom: 5%; 291 | right: 10%; 292 | width: 45px; 293 | height: 45px; 294 | border: none; 295 | border-radius: 100%; 296 | opacity: 1; 297 | background-repeat: no-repeat; 298 | background-size: 8px; 299 | background-position: center; 300 | 301 | } 302 | 303 | .carousel-control-prev { 304 | background-image: url(../images/prev.png); 305 | background-color: $white; 306 | transform: translate(-85px, 30px); 307 | } 308 | 309 | .carousel-control-next { 310 | background-image: url(../images/next.png); 311 | background-color: $primary1; 312 | transform: translate(-45px, 0); 313 | } 314 | } 315 | 316 | // end slider section 317 | 318 | // service section 319 | 320 | .service_section { 321 | text-align: center; 322 | 323 | .heading_container { 324 | justify-content: center; 325 | } 326 | 327 | .service_container { 328 | display: flex; 329 | justify-content: center; 330 | padding: 35px 0; 331 | flex-wrap: wrap; 332 | 333 | .box { 334 | margin: 25px 1%; 335 | flex-basis: 31%; 336 | padding: 35px 25px 25px; 337 | border-radius: 15px; 338 | box-shadow: 0 0 10px 0 rgba($color: #000000, $alpha: .15); 339 | border-top: 15px solid transparent; 340 | overflow: hidden; 341 | transition: all .1s; 342 | 343 | .img-box { 344 | display: flex; 345 | justify-content: center; 346 | align-items: center; 347 | height: 125px; 348 | 349 | img { 350 | width: 90px; 351 | } 352 | 353 | 354 | } 355 | 356 | .detail-box { 357 | margin-top: 25px; 358 | 359 | h5 { 360 | color: #2e0e5f; 361 | font-weight: 600; 362 | position: relative; 363 | } 364 | } 365 | 366 | &:hover, 367 | &.active { 368 | border-top: 15px solid #512a97; 369 | } 370 | 371 | } 372 | } 373 | 374 | .btn-box { 375 | display: flex; 376 | justify-content: center; 377 | margin-top: 25px; 378 | 379 | a { 380 | @include hero_btn($primary1, $white, 10px, 35px, 35px); 381 | } 382 | } 383 | } 384 | 385 | // end service section 386 | 387 | 388 | 389 | // about section 390 | .about_section { 391 | background-color: #f3f0f6; 392 | 393 | .row { 394 | align-items: center; 395 | } 396 | 397 | .img_container { 398 | display: flex; 399 | flex-direction: column; 400 | 401 | .img-box { 402 | border: 5px solid #7b57b2; 403 | border-radius: 100%; 404 | overflow: hidden; 405 | 406 | &.b1 { 407 | width: 70%; 408 | } 409 | 410 | &.b2 { 411 | width: 50%; 412 | margin-left: auto; 413 | margin-top: -12%; 414 | } 415 | 416 | img { 417 | width: 100%; 418 | } 419 | } 420 | } 421 | 422 | .detail-box { 423 | margin-right: 15%; 424 | 425 | 426 | p { 427 | margin-top: 25px; 428 | } 429 | 430 | a { 431 | @include hero_btn($primary1, $white, 10px, 35px, 5px); 432 | margin: 25px 0 45px 0; 433 | } 434 | } 435 | } 436 | 437 | // end about section 438 | 439 | 440 | 441 | // blog section 442 | .blog_section { 443 | 444 | .heading_container { 445 | justify-content: center; 446 | 447 | h2 { 448 | &::before { 449 | background-color: $white; 450 | } 451 | } 452 | } 453 | 454 | .box { 455 | margin-top: 55px; 456 | background-color: $white; 457 | box-shadow: 0 0 10px 0 rgba($color: #000000, $alpha: .15); 458 | 459 | .img-box { 460 | position: relative; 461 | 462 | img { 463 | width: 100%; 464 | } 465 | 466 | } 467 | 468 | .detail-box { 469 | padding: 25px 25px 15px; 470 | 471 | h5 { 472 | font-weight: bold; 473 | } 474 | } 475 | } 476 | } 477 | 478 | // end blog section 479 | 480 | // contact section 481 | .contact_section { 482 | position: relative; 483 | 484 | 485 | form { 486 | margin-top: 45px; 487 | padding-right: 35px; 488 | } 489 | 490 | input { 491 | width: 100%; 492 | border: none; 493 | height: 50px; 494 | margin-bottom: 25px; 495 | padding-left: 25px; 496 | background-color: transparent; 497 | outline: none; 498 | color: #101010; 499 | -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16); 500 | -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16); 501 | box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.16); 502 | 503 | &::placeholder { 504 | color: #737272; 505 | } 506 | 507 | &.message-box { 508 | height: 120px; 509 | } 510 | } 511 | 512 | button { 513 | border: none; 514 | @include hero_btn($primary1, $white, 12px, 45px, 0px); 515 | margin-top: 35px; 516 | } 517 | 518 | .map_container { 519 | height: 100%; 520 | min-height: 325px; 521 | 522 | .map-responsive { 523 | height: 100%; 524 | } 525 | } 526 | } 527 | 528 | // end contact section 529 | 530 | 531 | 532 | .footer_bg { 533 | background-image: url(../images/footer-bg.png); 534 | background-size: cover; 535 | background-position: top; 536 | } 537 | 538 | /* info section */ 539 | .info_section { 540 | background-color: #190734; 541 | color: $white; 542 | 543 | h6 { 544 | font-weight: bold; 545 | } 546 | 547 | 548 | .info_contact { 549 | margin-top: 60px; 550 | margin-bottom: 45px; 551 | 552 | .col-md-4 { 553 | display: flex; 554 | justify-content: center; 555 | } 556 | 557 | a { 558 | color: $white; 559 | } 560 | 561 | img { 562 | max-width: 100%; 563 | margin-right: 10px; 564 | } 565 | } 566 | 567 | .info_form { 568 | margin: 0 auto; 569 | margin-bottom: 45px; 570 | 571 | h4 { 572 | text-transform: uppercase; 573 | text-align: center; 574 | margin-bottom: 20px; 575 | } 576 | 577 | form { 578 | display: flex; 579 | align-items: center; 580 | 581 | input { 582 | background-color: $white; 583 | border: none; 584 | flex: 2.5; 585 | outline: none; 586 | color: $black; 587 | min-height: 42.4px; 588 | padding-left: 15px; 589 | 590 | ::placeholder { 591 | color: $white; 592 | opacity: 0.2; 593 | } 594 | } 595 | 596 | button { 597 | flex: 1; 598 | border: none; 599 | @include hero_btn($primary1, $white, 10px, 30px, 0); 600 | font-size: 15px; 601 | text-transform: uppercase; 602 | } 603 | } 604 | } 605 | 606 | .box { 607 | display: flex; 608 | } 609 | 610 | .info_social { 611 | display: flex; 612 | 613 | img { 614 | width: 35px; 615 | margin-right: 8px; 616 | } 617 | } 618 | } 619 | 620 | /* end info section */ 621 | 622 | /* footer section*/ 623 | 624 | .footer_section { 625 | display: flex; 626 | justify-content: center; 627 | position: relative; 628 | } 629 | 630 | .footer_section p { 631 | color: #222222; 632 | margin: 0 auto; 633 | text-align: center; 634 | padding: 20px; 635 | 636 | a { 637 | color: #222222; 638 | } 639 | } 640 | 641 | 642 | // end footer section -------------------------------------------------------------------------------- /classbridge/images/about-img1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/about-img1.jpg -------------------------------------------------------------------------------- /classbridge/images/about-img2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/about-img2.jpg -------------------------------------------------------------------------------- /classbridge/images/blog1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/blog1.jpg -------------------------------------------------------------------------------- /classbridge/images/blog2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/blog2.jpg -------------------------------------------------------------------------------- /classbridge/images/envelope-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/envelope-white.png -------------------------------------------------------------------------------- /classbridge/images/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/fb.png -------------------------------------------------------------------------------- /classbridge/images/insta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/insta.png -------------------------------------------------------------------------------- /classbridge/images/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/instagram.png -------------------------------------------------------------------------------- /classbridge/images/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/linkedin.png -------------------------------------------------------------------------------- /classbridge/images/location-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/location-white.png -------------------------------------------------------------------------------- /classbridge/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/logo.png -------------------------------------------------------------------------------- /classbridge/images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/menu.png -------------------------------------------------------------------------------- /classbridge/images/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/next.png -------------------------------------------------------------------------------- /classbridge/images/plug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/plug.png -------------------------------------------------------------------------------- /classbridge/images/prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/prev.png -------------------------------------------------------------------------------- /classbridge/images/s1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/s1.png -------------------------------------------------------------------------------- /classbridge/images/s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/s2.png -------------------------------------------------------------------------------- /classbridge/images/s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/s3.png -------------------------------------------------------------------------------- /classbridge/images/s4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/s4.png -------------------------------------------------------------------------------- /classbridge/images/s5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/s5.png -------------------------------------------------------------------------------- /classbridge/images/slider-img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/slider-img.jpg -------------------------------------------------------------------------------- /classbridge/images/telephone-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/telephone-white.png -------------------------------------------------------------------------------- /classbridge/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/twitter.png -------------------------------------------------------------------------------- /classbridge/images/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/classbridge/images/youtube.png -------------------------------------------------------------------------------- /classbridge/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ClassBridge 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 |
37 | 72 |
73 |
74 | 75 | 76 |
77 |
78 |
79 |
80 |
81 |

82 | Connects The Class 83 |

84 |

85 | Classbridge simplifies your tasks and enhances your educational experience. 86 |

87 | 88 | Get Started! 89 | 90 |
91 |
92 | 93 |
94 |
95 |
96 | 97 |
98 | 99 | 100 | 101 |
102 |
103 |
104 |

105 | Our Services 106 |

107 | 108 |
109 | 110 |
111 |
112 |
113 | 114 |
115 |
116 |
117 | Todo List app 118 |
119 |

120 | keep up and track your daily todos 121 |

122 |
123 |
124 |
125 |
126 | 127 |
128 |
129 |
130 | GPA Calculator 131 |
132 |

133 | Calculate and analysis you GPA grades 134 |

135 |
136 |
137 |
138 |
139 | 140 |
141 |
142 |
143 | Classes 144 |
145 |

146 | Join or create classes for your classmates and your instructor to connect 147 |

148 |
149 |
150 | 151 |
152 | 157 |
158 |
159 | 160 | 161 | 162 |
163 |
164 |
165 |
166 |
167 |
168 |

169 | About Us 170 |

171 | 172 |
173 |

174 | Our mission is to make your life easier by delivering solutions 175 | that meet your needs and exceed your expectations. We believe in 176 | the power of innovation and creativity, and we strive to 177 | constantly improve and evolve our offerings to better serve you. 178 | Thank you for choosing us, and we look forward to working with you! 179 |

180 | 181 | Read More 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 | Contact Us 219 |

220 | 221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 | 229 |
230 |
231 | 232 |
233 |
234 | 235 |
236 |
237 | 238 |
239 |
240 | 243 |
244 |
245 |
246 | 247 |
248 |
249 |
250 | 251 | 252 | 253 | 254 | 255 | 256 |
257 |
258 | 279 |
280 |
281 |
282 |
283 | 284 | 287 |
288 |
289 |
290 |
291 |
292 |
293 | 294 | 295 | 296 |
297 |
298 | 299 | 300 | 301 |
302 |
303 | 304 | 305 | 306 |
307 |
308 | 309 | 310 | 311 |
312 |
313 |
314 |
315 | 316 |
317 |
318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | -------------------------------------------------------------------------------- /classbridge/service.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ClassBridge 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
34 | 35 |
36 |
37 | 68 |
69 |
70 | 71 |
72 | 73 | 74 | 75 |
76 |
77 |
78 |

79 | Our Services 80 |

81 | 82 |
83 | 84 |
85 |
86 |
87 | 88 |
89 |
90 |
91 | Todo List app 92 |
93 |

94 | keep up and track your daily todos 95 |

96 |
97 |
98 |
99 |
100 | 101 |
102 |
103 |
104 | GPA Calculator 105 |
106 |

107 | Calculate and analysis you GPA grades 108 |

109 |
110 |
111 |
112 |
113 | 114 |
115 |
116 |
117 | Classes 118 |
119 |

120 | Join or create classes for your classmates and your instructor to connect 121 |

122 |
123 |
124 |
125 | 130 |
131 |
132 | 133 | 134 | 135 | 136 | 137 |
138 |
139 | 160 |
161 |
162 |
163 |
164 | 165 | 168 |
169 |
170 |
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 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, g, render_template, request, redirect, url_for, session, make_response 2 | import uuid 3 | 4 | app = Flask(__name__) 5 | app.config['SECRET_KEY'] = '123robel123robel789' 6 | 7 | users = [ 8 | { 9 | 'id':'1', 10 | 'name':'Robel Wondimu', 11 | 'username':'robel', 12 | 'email':'robpalus75@gmail.com', 13 | 'password':'123', 14 | 'todos':[ 15 | {'title':'Do Biology HomeWork', 'completed':'false'}, 16 | {'title':'Do you Project', 'completed':'true'} 17 | ], 18 | 'joined_classes': [], 19 | 'occupation':'student', 20 | 'notifications': [] 21 | }, 22 | { 23 | 'id':'2', 24 | 'name':'Inst Solomon Wondimu', 25 | 'username':'sele', 26 | 'email':'seleminds75@gmail.com', 27 | 'password':'123', 28 | 'todos':[ 29 | {'title':'Give assignments to class B', 'completed':'false'}, 30 | {'title':'Give them exams to class D', 'completed':'true'} 31 | ], 32 | 'joined_classes': [], 33 | 'occupation':'teacher', 34 | 'notifications': [] 35 | } 36 | ] 37 | 38 | classes = [ 39 | { 40 | 'id':'111', 41 | 'classcode':'1111', 42 | 'name':'Biology', 43 | 'instructor':'Dr. Yosef Abera', 44 | 'members': [], 45 | 'assignments': [ 46 | { 47 | 'title': 'BioTechnology', 48 | 'description': 'Prepare a presentation about BioTechnology', 49 | 'date': 'christmass eve' 50 | } 51 | ], 52 | 'exams': [ 53 | { 54 | 'title': 'Genetics', 55 | 'description': 'Contains multiple choices ...', 56 | 'date': '2 January 2024' 57 | } 58 | ] 59 | }, 60 | { 61 | 'id':'222', 62 | 'classcode':'2222', 63 | 'name':'Chemistry', 64 | 'instructor':'Albert Eienstien', 65 | 'members': [], 66 | 'assignments':[ 67 | { 68 | 'title': 'Covalent Bonds', 69 | 'description': 'Prepare a presentation about Covalent Bonds', 70 | 'date': 'for the last day' 71 | } 72 | ], 73 | 'exams': [ 74 | { 75 | 'title': 'Ionic Bonds', 76 | 'description': 'Contains multiple choices and workout...', 77 | 'date': '12 January 2024' 78 | } 79 | ] 80 | }, 81 | { 82 | 'id':'333', 83 | 'classcode':'3333', 84 | 'name':'Physics', 85 | 'instructor':'Isac Newton', 86 | 'members': [], 87 | 'assignments': [], 88 | 'exams': [] 89 | } 90 | 91 | ] 92 | 93 | import random 94 | import string 95 | 96 | def generate_random_string(): 97 | random_string = ''.join(random.choices(string.ascii_uppercase, k=6)) 98 | return random_string 99 | 100 | 101 | @app.before_request 102 | def before_request(): 103 | g.logged_user = None 104 | if 'logged_user' in session: 105 | g.logged_user = session['logged_user'] 106 | print(f"logged user is {g.logged_user}") 107 | 108 | @app.route('/users') 109 | def userss(): 110 | return [users, classes] 111 | 112 | #====================== Signup/Login form ============================= 113 | 114 | @app.route('/') 115 | def landingpage(): 116 | return redirect('/form') 117 | 118 | 119 | @app.route('/form', methods=['GET', 'POST']) 120 | def form(): 121 | status_pass = '' 122 | status_user = '' 123 | session.pop('logged_user', None) 124 | if request.method == 'POST': 125 | 126 | if request.form['submit'] == 'Login': 127 | session.pop('logged_user', None) 128 | for user in users: 129 | if user['username'] == request.form['username'] and user['password'] == request.form['password']: 130 | session['logged_user'] = user['id'] 131 | return redirect('/home') 132 | status_pass = """ 133 |
134 | Username or Password is not Correct 135 |
136 | """ 137 | return render_template('index.html', status_pass=status_pass) 138 | elif request.form['submit'] == 'Signup': 139 | for user in users: 140 | if user['username'] == request.form['username']: 141 | status_user = """ 142 |
143 | Username Already exists 144 |
145 | """ 146 | return render_template('index.html', status_user=status_user) 147 | 148 | user = request.form.to_dict() 149 | user.pop('submit') 150 | user['todos'] = [] 151 | user['joined_classes'] = [] 152 | user['notifications'] = [] 153 | user['occupation'] = request.form['occupation'] 154 | if (user['occupation'] == 'teacher'): 155 | user['name'] = f"Inst {user['name']}" 156 | 157 | user_id = str(uuid.uuid4()) 158 | user['id'] = user_id 159 | 160 | users.append(user) 161 | session['logged_user'] = user['id'] 162 | return redirect('/home') 163 | else: 164 | return render_template('index.html', status_pass=status_pass) 165 | 166 | # ====================== End Signup/login form =================================== 167 | 168 | # ====================== Home Page =================================== 169 | 170 | @app.route('/home') 171 | def home(): 172 | if not g.logged_user: 173 | return redirect('/form') 174 | logged_user = None 175 | for user in users: 176 | if session['logged_user'] == user['id']: 177 | logged_user = user 178 | if logged_user: 179 | return render_template('dashboard/homepage.html', user=logged_user, classes=classes) 180 | else: 181 | return redirect('/form') 182 | 183 | # ======= Join Class ====== 184 | @app.route('/home/join', methods=['POST', 'GET']) 185 | def joinclass(): 186 | if not g.logged_user: 187 | return redirect('/form') 188 | if request.method == 'POST': 189 | code = request.form['classCodee'] 190 | for c in classes: 191 | if c['classcode'] == code: 192 | for user in users: 193 | if session['logged_user'] == user['id']: 194 | if c['id'] not in user['joined_classes']: 195 | user['joined_classes'].append(c['id']) 196 | c['members'].append(user['id']) 197 | return redirect('/home') 198 | 199 | return redirect('/home') 200 | 201 | # ======= End Join Class == 202 | # ======= Create Class ==== 203 | @app.route('/home/create', methods=['POST']) 204 | def createclass(): 205 | logged_user_id = session['logged_user'] 206 | class_name = request.form['class_name'] 207 | inst_username = request.form['inst_username'] 208 | for user in users: 209 | if user['username'] == inst_username: 210 | class_id = str(uuid.uuid4()) 211 | new_class = { 212 | 'id': class_id, 213 | 'classcode':generate_random_string(), 214 | 'name':class_name, 215 | 'instructor': user['name'], 216 | 'members': [logged_user_id], 217 | 'assignments': [], 218 | 'exams': [] 219 | } 220 | for u in users: 221 | if (u['id'] == logged_user_id): 222 | u['joined_classes'].append(new_class['id']) 223 | classes.append(new_class) 224 | if new_class['id'] not in user['joined_classes']: 225 | user['joined_classes'].append(new_class['id']) 226 | print('class created successfully') 227 | return redirect('/home') 228 | return redirect('/home') 229 | 230 | 231 | # ======= End Create Class ====== 232 | 233 | # ====================== End Home Page =============================== 234 | 235 | # ============ Todo Page =========================== 236 | 237 | @app.route('/todos', methods=['GET', 'POST']) 238 | def todo(): 239 | if not g.logged_user: 240 | return redirect('/form') 241 | logged_user_id = session['logged_user'] 242 | logged_user = None 243 | for user in users: 244 | if user['id'] == logged_user_id: 245 | logged_user = user 246 | if request.method == 'GET': 247 | if logged_user: 248 | return render_template('todo/todo.html', user=logged_user) 249 | else: 250 | return redirect('/form') 251 | elif request.method == 'POST': 252 | added_todo = request.form['title'] 253 | for user in users: 254 | if user['id'] == logged_user_id: 255 | user['todos'].insert(0, {'title': added_todo, 'completed': 'false'}) 256 | return redirect('/todos') 257 | 258 | @app.route('/delete/') 259 | def todo_delete(todo_title): 260 | logged_user_id = session['logged_user'] 261 | logged_user = None 262 | for user in users: 263 | if user['id'] == logged_user_id: 264 | logged_user = user 265 | for todo in user['todos']: 266 | if todo['title'] == todo_title: 267 | user['todos'].remove(todo) 268 | return redirect('/todos') 269 | 270 | @app.route('/todo_status//', methods=['POST']) 271 | def todo_status(title_index, stat): 272 | logged_user_id = session['logged_user'] 273 | logged_user = None 274 | for user in users: 275 | if user['id'] == logged_user_id: 276 | logged_user = user 277 | index = users.index(logged_user) 278 | users[index]['todos'][title_index]['completed'] = stat;session 279 | response = make_response() 280 | response.status_code = 200 281 | return response 282 | 283 | # ==================== TodoPage end =============================== 284 | 285 | # ==================== GPA Calculator ============================ 286 | 287 | @app.route('/gpa_calculator') 288 | def calculator(): 289 | logged_user = session['logged_user'] 290 | return render_template('/gpa_calculator/gpa_calculator.html', user=logged_user) 291 | 292 | # ==================== End GPA Calculator ======================== 293 | 294 | # ================== Class room =================================== 295 | @app.route('/class/') 296 | def class_room(class_id): 297 | if not g.logged_user: 298 | return redirect('/form') 299 | for user in users: 300 | if user['id'] == session['logged_user']: 301 | logged_user = user 302 | if request.method == 'GET': 303 | for c in classes: 304 | if c['id'] == class_id: 305 | return render_template('/class_room/class_room.html', user=logged_user, classroom=c) 306 | 307 | # ------------exambox------ 308 | 309 | @app.route('/class/add_exam/', methods=['POST']) 310 | def addexam(class_id): 311 | for c in classes: 312 | if c['id'] == class_id: 313 | new_exam = { 314 | 'title': request.form.get('add_exam_title'), 315 | 'description': request.form.get('add_exam_description'), 316 | 'date': request.form.get('add_exam_date') 317 | } 318 | c['exams'].append(new_exam) 319 | for member in c['members']: 320 | for user in users: 321 | if user['id'] == member: 322 | notification = { 323 | 'class_id': c['id'], 324 | 'name': c['name'], 325 | 'type': 'Exam' 326 | } 327 | user['notifications'].append(notification) 328 | return redirect(f'/class/{class_id}') 329 | 330 | # ------------end exambox --- 331 | 332 | # ------------assignmentbox------ 333 | 334 | @app.route('/class/add_assignment/', methods=['POST']) 335 | def addassignment(class_id): 336 | for c in classes: 337 | if c['id'] == class_id: 338 | new_assignment = { 339 | 'title': request.form.get('add_exam_title'), 340 | 'description': request.form.get('add_exam_description'), 341 | 'date': request.form.get('add_exam_date') 342 | } 343 | c['assignments'].append(new_assignment) 344 | for member in c['members']: 345 | for user in users: 346 | if user['id'] == member: 347 | notification = { 348 | 'class_id': c['id'], 349 | 'name': c['name'], 350 | 'type': 'Assignment' 351 | } 352 | user['notifications'].append(notification) 353 | return redirect(f'/class/{class_id}') 354 | 355 | # ------------end exambox --- 356 | 357 | 358 | # ================== End Class room =============================== 359 | 360 | if __name__ == "__main__": 361 | app.run(debug=True) 362 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | blinker==1.7.0 2 | click==8.1.7 3 | dnspython==2.4.2 4 | Flask==3.0.0 5 | gunicorn==21.2.0 6 | itsdangerous==2.1.2 7 | Jinja2==3.1.2 8 | MarkupSafe==2.1.3 9 | packaging==23.2 10 | pymongo==4.6.1 11 | Werkzeug==3.0.1 12 | -------------------------------------------------------------------------------- /static/dashboard/css/style.css: -------------------------------------------------------------------------------- 1 | /* =========== Google Fonts ============ */ 2 | @import url("https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;400;500;700&display=swap"); 3 | 4 | /* =============== Globals ============== */ 5 | * { 6 | font-family: "Ubuntu", sans-serif; 7 | margin: 0; 8 | padding: 0; 9 | box-sizing: border-box; 10 | } 11 | 12 | :root { 13 | --blue: #2a2185; 14 | --white: #fff; 15 | --gray: #f5f5f5; 16 | --black1: #222; 17 | --black2: #999; 18 | } 19 | 20 | body { 21 | min-height: 100vh; 22 | overflow-x: hidden; 23 | } 24 | 25 | .containerr { 26 | position: relative; 27 | width: 100%; 28 | } 29 | 30 | /* =============== Navigation ================ */ 31 | .navigation { 32 | position: fixed; 33 | width: 300px; 34 | height: 100%; 35 | background: var(--blue); 36 | border-left: 10px solid var(--blue); 37 | transition: 0.5s; 38 | overflow: hidden; 39 | } 40 | .navigation.active { 41 | width: 80px; 42 | } 43 | 44 | .navigation ul { 45 | position: absolute; 46 | top: 0; 47 | left: 0; 48 | width: 100%; 49 | } 50 | 51 | .navigation ul li { 52 | position: relative; 53 | width: 100%; 54 | list-style: none; 55 | border-top-left-radius: 30px; 56 | border-bottom-left-radius: 30px; 57 | } 58 | 59 | .navigation ul li:hover, 60 | .navigation ul li.hovered { 61 | background-color: var(--white); 62 | } 63 | 64 | .navigation ul li:nth-child(1) { 65 | margin-bottom: 40px; 66 | pointer-events: none; 67 | } 68 | 69 | .navigation ul li a { 70 | position: relative; 71 | display: block; 72 | width: 100%; 73 | display: flex; 74 | text-decoration: none; 75 | color: var(--white); 76 | } 77 | .navigation ul li:hover a, 78 | .navigation ul li.hovered a { 79 | color: var(--blue); 80 | } 81 | 82 | .navigation ul li a .icon { 83 | position: relative; 84 | display: block; 85 | min-width: 60px; 86 | height: 60px; 87 | line-height: 75px; 88 | text-align: center; 89 | } 90 | .navigation ul li a .icon ion-icon { 91 | font-size: 1.75rem; 92 | } 93 | 94 | .navigation ul li a .title { 95 | position: relative; 96 | display: block; 97 | padding: 0 10px; 98 | height: 60px; 99 | line-height: 60px; 100 | text-align: start; 101 | white-space: nowrap; 102 | } 103 | 104 | /* --------- curve outside ---------- */ 105 | .navigation ul li:hover a::before, 106 | .navigation ul li.hovered a::before { 107 | content: ""; 108 | position: absolute; 109 | right: 0; 110 | top: -50px; 111 | width: 50px; 112 | height: 50px; 113 | background-color: transparent; 114 | border-radius: 50%; 115 | box-shadow: 35px 35px 0 10px var(--white); 116 | pointer-events: none; 117 | } 118 | .navigation ul li:hover a::after, 119 | .navigation ul li.hovered a::after { 120 | content: ""; 121 | position: absolute; 122 | right: 0; 123 | bottom: -50px; 124 | width: 50px; 125 | height: 50px; 126 | background-color: transparent; 127 | border-radius: 50%; 128 | box-shadow: 35px -35px 0 10px var(--white); 129 | pointer-events: none; 130 | } 131 | 132 | /* ------------Current Page ------------*/ 133 | 134 | .navigation ul li.currentPage { 135 | background-color: var(--white); 136 | } 137 | 138 | .navigation ul li.currentPage a { 139 | color: var(--blue); 140 | } 141 | 142 | .navigation ul li.currentPage a::before { 143 | content: ""; 144 | position: absolute; 145 | right: 0; 146 | top: -50px; 147 | width: 50px; 148 | height: 50px; 149 | background-color: transparent; 150 | border-radius: 50%; 151 | box-shadow: 35px 35px 0 10px var(--white); 152 | pointer-events: none; 153 | } 154 | 155 | .navigation ul li.currentPage a::after { 156 | content: ""; 157 | position: absolute; 158 | right: 0; 159 | bottom: -50px; 160 | width: 50px; 161 | height: 50px; 162 | background-color: transparent; 163 | border-radius: 50%; 164 | box-shadow: 35px -35px 0 10px var(--white); 165 | pointer-events: none; 166 | } 167 | /* ===================== Main ===================== */ 168 | .main { 169 | position: absolute; 170 | width: calc(100% - 300px); 171 | left: 300px; 172 | min-height: 100vh; 173 | background: var(--white); 174 | transition: 0.5s; 175 | } 176 | .main.active { 177 | width: calc(100% - 80px); 178 | left: 80px; 179 | } 180 | 181 | .namelogo h3 { 182 | font-weight: 600; 183 | color: var(--blue); 184 | margin-right: 20px; 185 | } 186 | 187 | .righttopbar { 188 | display: flex; 189 | align-items: center; 190 | justify-content: end; 191 | } 192 | 193 | .topbar { 194 | width: 100%; 195 | height: 60px; 196 | display: flex; 197 | justify-content: space-between; 198 | align-items: center; 199 | padding: 0 10px; 200 | } 201 | 202 | .toggle { 203 | position: relative; 204 | width: 60px; 205 | height: 60px; 206 | display: flex; 207 | justify-content: center; 208 | align-items: center; 209 | font-size: 2.5rem; 210 | cursor: pointer; 211 | } 212 | 213 | .search { 214 | position: relative; 215 | width: 400px; 216 | margin: 0 10px; 217 | } 218 | 219 | .search label { 220 | position: relative; 221 | width: 100%; 222 | } 223 | 224 | .search label input { 225 | width: 100%; 226 | height: 40px; 227 | border-radius: 40px; 228 | padding: 5px 20px; 229 | padding-left: 35px; 230 | font-size: 18px; 231 | outline: none; 232 | border: 1px solid var(--black2); 233 | } 234 | 235 | .search label ion-icon { 236 | position: absolute; 237 | top: 0; 238 | left: 10px; 239 | font-size: 1.2rem; 240 | } 241 | 242 | .user { 243 | position: relative; 244 | width: 40px; 245 | height: 40px; 246 | border-radius: 50%; 247 | overflow: hidden; 248 | cursor: pointer; 249 | } 250 | 251 | .user img { 252 | position: absolute; 253 | top: 0; 254 | left: 0; 255 | width: 100%; 256 | height: 100%; 257 | object-fit: cover; 258 | } 259 | 260 | /* ======================= Cards ====================== */ 261 | .cardBox { 262 | position: relative; 263 | width: 100%; 264 | padding: 20px; 265 | display: grid; 266 | grid-template-columns: repeat(4, 1fr); 267 | grid-gap: 30px; 268 | } 269 | 270 | .cardBox .card { 271 | position: relative; 272 | background: var(--white); 273 | padding: 30px; 274 | border-radius: 20px; 275 | display: flex; 276 | justify-content: space-between; 277 | cursor: pointer; 278 | box-shadow: 0 7px 25px rgba(0, 0, 0, 0.08); 279 | } 280 | 281 | .cardBox .card .numbers { 282 | position: relative; 283 | font-weight: 500; 284 | font-size: 2.5rem; 285 | color: var(--blue); 286 | } 287 | 288 | .cardBox .card .cardName { 289 | color: var(--black2); 290 | font-size: 1.1rem; 291 | margin-top: 5px; 292 | } 293 | 294 | .cardBox .card .iconBx { 295 | font-size: 3.5rem; 296 | color: var(--black2); 297 | } 298 | 299 | .cardBox .card:hover { 300 | background: var(--blue); 301 | } 302 | .cardBox .card:hover .numbers, 303 | .cardBox .card:hover .cardName, 304 | .cardBox .card:hover .iconBx { 305 | color: var(--white); 306 | } 307 | 308 | /* ================== Order Details List ============== */ 309 | .details { 310 | position: relative; 311 | width: 100%; 312 | padding: 20px; 313 | display: grid; 314 | grid-template-columns: 1fr 2fr; 315 | grid-gap: 30px; 316 | /* margin-top: 10px; */ 317 | } 318 | 319 | .details .recentOrders { 320 | position: relative; 321 | display: grid; 322 | min-height: 500px; 323 | background: var(--white); 324 | padding: 20px; 325 | box-shadow: 0 7px 25px rgba(0, 0, 0, 0.08); 326 | border-radius: 20px; 327 | } 328 | 329 | .details .cardHeader { 330 | display: flex; 331 | justify-content: space-between; 332 | align-items: flex-start; 333 | } 334 | .cardHeader h2 { 335 | font-weight: 600; 336 | color: var(--blue); 337 | } 338 | .popup-content h2 { 339 | font-weight: 600; 340 | color: var(--blue); 341 | } 342 | .btn { 343 | position: relative; 344 | padding: 5px 10px; 345 | background: var(--blue); 346 | text-decoration: none; 347 | color: var(--white); 348 | border-radius: 6px; 349 | } 350 | 351 | .details table { 352 | width: 100%; 353 | border-collapse: collapse; 354 | margin-top: 10px; 355 | } 356 | .details table thead td { 357 | font-weight: 600; 358 | } 359 | .recentOrders { 360 | display: flex; 361 | flex-direction: column; 362 | } 363 | .details .recentOrders table tr { 364 | color: var(--black1); 365 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 366 | } 367 | .details .recentOrders table tr:last-child { 368 | border-bottom: none; 369 | } 370 | .details .recentOrders table tbody tr:hover { 371 | background: var(--blue); 372 | color: var(--white); 373 | } 374 | .details .recentOrders table tr td { 375 | padding: 10px; 376 | } 377 | .details .recentOrders table tr td:last-child { 378 | text-align: end; 379 | } 380 | .details .recentOrders table tr td:nth-child(2) { 381 | text-align: end; 382 | } 383 | .details .recentOrders table tr td:nth-child(3) { 384 | text-align: center; 385 | } 386 | .status.delivered { 387 | padding: 2px 4px; 388 | background: #8de02c; 389 | color: var(--white); 390 | border-radius: 4px; 391 | font-size: 14px; 392 | font-weight: 500; 393 | } 394 | .status.pending { 395 | padding: 2px 4px; 396 | background: #e9b10a; 397 | color: var(--white); 398 | border-radius: 4px; 399 | font-size: 14px; 400 | font-weight: 500; 401 | } 402 | .status.return { 403 | padding: 2px 4px; 404 | background: #f00; 405 | color: var(--white); 406 | border-radius: 4px; 407 | font-size: 14px; 408 | font-weight: 500; 409 | } 410 | .status.inProgress { 411 | padding: 2px 4px; 412 | background: #1795ce; 413 | color: var(--white); 414 | border-radius: 4px; 415 | font-size: 14px; 416 | font-weight: 500; 417 | } 418 | 419 | .recentCustomers { 420 | position: relative; 421 | display: flex; 422 | flex-direction: column; 423 | padding: 20px; 424 | background: var(--white); 425 | box-shadow: 0 7px 25px rgba(0, 0, 0, 0.08); 426 | border-radius: 20px; 427 | } 428 | .recentCustomers .imgBx { 429 | position: relative; 430 | width: 40px; 431 | height: 40px; 432 | border-radius: 50px; 433 | overflow: hidden; 434 | } 435 | .recentCustomers .imgBx img { 436 | position: absolute; 437 | top: 0; 438 | left: 0; 439 | width: 100%; 440 | height: 100%; 441 | object-fit: cover; 442 | } 443 | .recentCustomers table tr td { 444 | padding: 12px 10px; 445 | } 446 | .recentCustomers table tr td h4 { 447 | font-size: 16px; 448 | font-weight: 500; 449 | line-height: 1.2rem; 450 | } 451 | .recentCustomers table tr td h4 span { 452 | font-size: 14px; 453 | color: var(--black2); 454 | } 455 | .recentCustomers table tr:hover { 456 | background: var(--blue); 457 | color: var(--white); 458 | cursor: pointer; 459 | } 460 | .recentCustomers table tr:hover td h4 span { 461 | color: var(--white); 462 | } 463 | 464 | /* ====================== Responsive Design ========================== */ 465 | @media (max-width: 991px) { 466 | .navigation { 467 | 468 | } 469 | .navigation.active { 470 | 471 | } 472 | .main { 473 | width: 100%; 474 | left: 0; 475 | } 476 | .main.active { 477 | 478 | } 479 | .cardBox { 480 | grid-template-columns: repeat(2, 1fr); 481 | } 482 | } 483 | 484 | @media (max-width: 768px) { 485 | .details { 486 | grid-template-columns: 1fr; 487 | } 488 | .recentOrders { 489 | overflow-x: auto; 490 | } 491 | .status.inProgress { 492 | white-space: nowrap; 493 | } 494 | } 495 | 496 | @media (max-width: 480px) { 497 | .cardBox { 498 | grid-template-columns: repeat(1, 1fr); 499 | } 500 | .cardHeader h2 { 501 | font-size: 20px; 502 | } 503 | .user { 504 | min-width: 40px; 505 | } 506 | .navigation { 507 | 508 | } 509 | .navigation.active .user { 510 | 511 | } 512 | .toggle { 513 | z-index: 10001; 514 | } 515 | .main.active .toggle { 516 | 517 | } 518 | 519 | } 520 | -------------------------------------------------------------------------------- /static/dashboard/imgs/customer01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/static/dashboard/imgs/customer01.jpg -------------------------------------------------------------------------------- /static/dashboard/imgs/customer02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Robaplus75/classbridge/b64eff324db907375193c1c008aad47ba7619624/static/dashboard/imgs/customer02.jpg -------------------------------------------------------------------------------- /static/dashboard/js/main.js: -------------------------------------------------------------------------------- 1 | // add hovered class to selected list item 2 | let list = document.querySelectorAll(".navigation li"); 3 | 4 | function activeLink() { 5 | list.forEach((item) => { 6 | item.classList.remove("hovered"); 7 | }); 8 | this.classList.add("hovered"); 9 | } 10 | 11 | //list.forEach((item) => item.addEventListener("mouseover", activeLink)); 12 | 13 | // Menu Toggle 14 | let toggle = document.querySelector(".toggle"); 15 | let navigation = document.querySelector(".navigation"); 16 | let main = document.querySelector(".main"); 17 | 18 | toggle.onclick = function () { 19 | navigation.classList.toggle("active"); 20 | main.classList.toggle("active"); 21 | }; 22 | 23 | // Get all the navigation links 24 | const navLinks = document.querySelectorAll('.navigation li a'); 25 | 26 | // Add click event listener to each link 27 | navLinks.forEach(link => { 28 | // Check if the link URL matches the current URL on page load 29 | 30 | if (link.href === window.location.href) { 31 | link.parentNode.classList.add('currentPage'); 32 | } 33 | }); 34 | 35 | -------------------------------------------------------------------------------- /static/formimg/register.svg: -------------------------------------------------------------------------------- 1 | press play -------------------------------------------------------------------------------- /static/formjs.js: -------------------------------------------------------------------------------- 1 | const sign_in_btn = document.querySelector("#sign-in-btn"); 2 | const sign_up_btn = document.querySelector("#sign-up-btn"); 3 | const container = document.querySelector(".container"); 4 | 5 | sign_up_btn.addEventListener("click", () => { 6 | container.classList.add("sign-up-mode"); 7 | }); 8 | 9 | sign_in_btn.addEventListener("click", () => { 10 | container.classList.remove("sign-up-mode"); 11 | }); 12 | -------------------------------------------------------------------------------- /static/formstyle.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700;800&display=swap"); 2 | 3 | * { 4 | margin: 0; 5 | padding: 0; 6 | box-sizing: border-box; 7 | } 8 | 9 | body, 10 | input { 11 | font-family: "Poppins", sans-serif; 12 | } 13 | 14 | .container { 15 | position: relative; 16 | width: 100%; 17 | background-color: #fff; 18 | min-height: 100vh; 19 | overflow: hidden; 20 | } 21 | 22 | .forms-container { 23 | position: absolute; 24 | width: 100%; 25 | height: 100%; 26 | top: 0; 27 | left: 0; 28 | } 29 | 30 | .signin-signup { 31 | position: absolute; 32 | top: 50%; 33 | transform: translate(-50%, -50%); 34 | left: 75%; 35 | width: 50%; 36 | transition: 1s 0.7s ease-in-out; 37 | display: grid; 38 | grid-template-columns: 1fr; 39 | z-index: 5; 40 | } 41 | 42 | form { 43 | display: flex; 44 | align-items: center; 45 | justify-content: center; 46 | flex-direction: column; 47 | padding: 0rem 5rem; 48 | transition: all 0.2s 0.7s; 49 | overflow: hidden; 50 | grid-column: 1 / 2; 51 | grid-row: 1 / 2; 52 | } 53 | 54 | form.sign-up-form { 55 | opacity: 0; 56 | z-index: 1; 57 | 58 | } 59 | 60 | form.sign-in-form { 61 | z-index: 2; 62 | } 63 | 64 | .title { 65 | font-size: 2.2rem; 66 | color: #444; 67 | margin-bottom: 10px; 68 | } 69 | 70 | .input-field { 71 | max-width: 380px; 72 | width: 100%; 73 | background-color: #f0f0f0; 74 | margin: 10px 0; 75 | height: 55px; 76 | border-radius: 55px; 77 | display: grid; 78 | grid-template-columns: 15% 85%; 79 | padding: 0 0.4rem; 80 | position: relative; 81 | } 82 | .user_type_menu .input-field{ 83 | width: 45%; 84 | margin: 0; 85 | 86 | } 87 | 88 | .input-field i { 89 | text-align: center; 90 | line-height: 55px; 91 | color: #2a2185; 92 | transition: 0.5s; 93 | font-size: 1.1rem; 94 | } 95 | 96 | .input-field input { 97 | background: none; 98 | outline: none; 99 | border: none; 100 | line-height: 1; 101 | font-weight: 600; 102 | font-size: 1.1rem; 103 | color: #2a2185; 104 | } 105 | 106 | .input-field input::placeholder { 107 | color: #aaa; 108 | font-weight: 500; 109 | } 110 | 111 | .social-text { 112 | padding: 0.7rem 0; 113 | font-size: 1rem; 114 | } 115 | 116 | .social-media { 117 | display: flex; 118 | justify-content: center; 119 | } 120 | 121 | .social-icon { 122 | height: 46px; 123 | width: 46px; 124 | display: flex; 125 | justify-content: center; 126 | align-items: center; 127 | margin: 0 0.45rem; 128 | color: #333; 129 | border-radius: 50%; 130 | border: 1px solid #333; 131 | text-decoration: none; 132 | font-size: 1.1rem; 133 | transition: 0.3s; 134 | } 135 | 136 | .social-icon:hover { 137 | color: #2a2185; 138 | border-color: #4481eb; 139 | } 140 | 141 | .btn { 142 | width: 150px; 143 | background-color: #2a2185; 144 | border: none; 145 | outline: none; 146 | height: 49px; 147 | border-radius: 49px; 148 | color: #fff; 149 | text-transform: uppercase; 150 | font-weight: 600; 151 | margin: 10px 0; 152 | cursor: pointer; 153 | transition: 0.5s; 154 | } 155 | 156 | .btn:hover { 157 | background-color: #2a2185; 158 | } 159 | .panels-container { 160 | position: absolute; 161 | height: 100%; 162 | width: 100%; 163 | top: 0; 164 | left: 0; 165 | display: grid; 166 | grid-template-columns: repeat(2, 1fr); 167 | } 168 | 169 | .container:before { 170 | content: ""; 171 | position: absolute; 172 | height: 2000px; 173 | width: 2000px; 174 | top: -10%; 175 | right: 48%; 176 | transform: translateY(-50%); 177 | background-image: linear-gradient(-45deg, #2a2185 0%, #2a2185 010%); 178 | transition: 1.2s ease-in-out; 179 | border-radius: 50%; 180 | z-index: 6; 181 | } 182 | 183 | .image { 184 | width: 100%; 185 | transition: transform 1.1s ease-in-out; 186 | transition-delay: 0.4s; 187 | } 188 | 189 | .panel { 190 | display: flex; 191 | flex-direction: column; 192 | align-items: flex-end; 193 | justify-content: space-around; 194 | text-align: center; 195 | z-index: 6; 196 | } 197 | 198 | .left-panel { 199 | pointer-events: all; 200 | padding: 3rem 17% 2rem 12%; 201 | } 202 | 203 | .right-panel { 204 | pointer-events: none; 205 | padding: 3rem 12% 2rem 17%; 206 | } 207 | 208 | .panel .content { 209 | color: #fff; 210 | transition: transform 0.9s ease-in-out; 211 | transition-delay: 0.6s; 212 | } 213 | 214 | .panel h3 { 215 | font-weight: 600; 216 | line-height: 1; 217 | font-size: 1.5rem; 218 | } 219 | 220 | .panel p { 221 | font-size: 0.95rem; 222 | padding: 0.7rem 0; 223 | } 224 | 225 | .btn.transparent { 226 | margin: 0; 227 | background: none; 228 | border: 2px solid #fff; 229 | width: 130px; 230 | height: 41px; 231 | font-weight: 600; 232 | font-size: 0.8rem; 233 | } 234 | 235 | .right-panel .image, 236 | .right-panel .content { 237 | transform: translateX(800px); 238 | } 239 | 240 | /* ANIMATION */ 241 | 242 | .container.sign-up-mode:before { 243 | transform: translate(100%, -50%); 244 | right: 52%; 245 | } 246 | 247 | .container.sign-up-mode .left-panel .image, 248 | .container.sign-up-mode .left-panel .content { 249 | transform: translateX(-800px); 250 | } 251 | 252 | .container.sign-up-mode .signin-signup { 253 | left: 25%; 254 | } 255 | 256 | .container.sign-up-mode form.sign-up-form { 257 | opacity: 1; 258 | z-index: 2; 259 | } 260 | 261 | .container.sign-up-mode form.sign-in-form { 262 | opacity: 0; 263 | z-index: 1; 264 | } 265 | 266 | .container.sign-up-mode .right-panel .image, 267 | .container.sign-up-mode .right-panel .content { 268 | transform: translateX(0%); 269 | } 270 | 271 | .container.sign-up-mode .left-panel { 272 | pointer-events: none; 273 | } 274 | 275 | .container.sign-up-mode .right-panel { 276 | pointer-events: all; 277 | } 278 | 279 | @media (max-width: 870px) { 280 | .container { 281 | min-height: 600px; 282 | height: 100vh; 283 | } 284 | .signin-signup { 285 | width: 100%; 286 | top: 95%; 287 | transform: translate(-50%, -100%); 288 | transition: 1s 0.8s ease-in-out; 289 | } 290 | 291 | .signin-signup, 292 | .container.sign-up-mode .signin-signup { 293 | left: 50%; 294 | } 295 | 296 | .panels-container { 297 | grid-template-columns: 1fr; 298 | grid-template-rows: 1fr 2fr 1fr; 299 | } 300 | 301 | .panel { 302 | flex-direction: row; 303 | justify-content: space-around; 304 | align-items: center; 305 | padding: 2.5rem 8%; 306 | grid-column: 1 / 2; 307 | } 308 | 309 | .right-panel { 310 | grid-row: 3 / 4; 311 | } 312 | 313 | .left-panel { 314 | grid-row: 1 / 2; 315 | } 316 | 317 | .image { 318 | width: 200px; 319 | transition: transform 0.9s ease-in-out; 320 | transition-delay: 0.6s; 321 | } 322 | 323 | .panel .content { 324 | padding-right: 15%; 325 | transition: transform 0.9s ease-in-out; 326 | transition-delay: 0.8s; 327 | } 328 | 329 | .panel h3 { 330 | font-size: 1.2rem; 331 | } 332 | 333 | .panel p { 334 | font-size: 0.7rem; 335 | padding: 0.5rem 0; 336 | } 337 | 338 | .btn.transparent { 339 | width: 110px; 340 | height: 35px; 341 | font-size: 0.7rem; 342 | } 343 | 344 | .container:before { 345 | width: 1500px; 346 | height: 1500px; 347 | transform: translateX(-50%); 348 | left: 30%; 349 | bottom: 68%; 350 | right: initial; 351 | top: initial; 352 | transition: 2s ease-in-out; 353 | } 354 | 355 | .container.sign-up-mode:before { 356 | transform: translate(-50%, 100%); 357 | bottom: 32%; 358 | right: initial; 359 | } 360 | 361 | .container.sign-up-mode .left-panel .image, 362 | .container.sign-up-mode .left-panel .content { 363 | transform: translateY(-300px); 364 | } 365 | 366 | .container.sign-up-mode .right-panel .image, 367 | .container.sign-up-mode .right-panel .content { 368 | transform: translateY(0px); 369 | } 370 | 371 | .right-panel .image, 372 | .right-panel .content { 373 | transform: translateY(300px); 374 | } 375 | 376 | .container.sign-up-mode .signin-signup { 377 | top: 5%; 378 | transform: translate(-50%, 0); 379 | } 380 | } 381 | 382 | /* radio styling */ 383 | .user_type { 384 | 385 | } 386 | .user_type_menu { 387 | width: 70%; 388 | display: flex; 389 | justify-content: space-between; 390 | } 391 | .selected { 392 | 393 | } 394 | .selected label{ 395 | margin-top: 15px; 396 | margin-left: 15px; 397 | } 398 | .selected input { 399 | width: 30px; 400 | } 401 | 402 | .selected input[type="radio"]:checked + label { 403 | color: #2a2185; 404 | } 405 | /* radio styling end */ 406 | 407 | @media (max-width: 860px) { 408 | form { 409 | padding: 0 1.5rem; 410 | } 411 | 412 | .image { 413 | display: none; 414 | } 415 | .panel .content { 416 | padding: 0.5rem 1rem; 417 | } 418 | .container { 419 | padding: 1.5rem; 420 | } 421 | 422 | .container:before { 423 | bottom: 72%; 424 | left: 50%; 425 | } 426 | 427 | .container.sign-up-mode:before { 428 | bottom: 20%; 429 | left: 50%; 430 | } 431 | 432 | } 433 | -------------------------------------------------------------------------------- /static/gpa_calculator/style.css: -------------------------------------------------------------------------------- 1 | /* Form group */ 2 | .form-group { 3 | margin-bottom: 1rem; 4 | } 5 | 6 | /* Buttons */ 7 | .btn { 8 | display: inline-block; 9 | font-weight: 400; 10 | color: #212529; 11 | text-align: center; 12 | vertical-align: middle; 13 | -webkit-user-select: none; 14 | -moz-user-select: none; 15 | -ms-user-select: none; 16 | user-select: none; 17 | background-color: transparent; 18 | border: 1px solid transparent; 19 | padding: .375rem .75rem; 20 | font-size: 1rem; 21 | line-height: 1.5; 22 | border-radius: .25rem; 23 | transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; 24 | } 25 | 26 | /* Primary button */ 27 | .btn { 28 | text-decoration: none; 29 | background-color: #2a2185; 30 | width: 80px; 31 | padding: 5px 2px; 32 | display: flex; 33 | align-items: center; 34 | justify-content: center; 35 | color: white; 36 | border: 2px solid #2a2185; 37 | border-radius: 10%; 38 | font-weight: bolder; 39 | font-size: 12px; 40 | } 41 | .btn:hover { 42 | color: #2a2185; 43 | background-color: white; 44 | transition-duration: 0.1s; 45 | cursor: pointer; 46 | } 47 | 48 | /* Form control */ 49 | .form-control { 50 | display: block; 51 | width: 100%; 52 | padding: .375rem .75rem; 53 | font-size: 1rem; 54 | line-height: 1.5; 55 | color: #495057; 56 | background-color: #fff; 57 | background-clip: padding-box; 58 | border: 1px solid #ced4da; 59 | border-radius: .25rem; 60 | transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; 61 | } 62 | 63 | .form-control:focus { 64 | color: #495057; 65 | background-color: #fff; 66 | border-color: #80bdff; 67 | outline: none; 68 | box-shadow: none; 69 | } 70 | 71 | /* Red text */ 72 | .red { 73 | color: red; 74 | } 75 | 76 | /* Small text with bottom margin */ 77 | .small.mb-3 { 78 | font-size: small; 79 | margin-bottom: .5rem; 80 | } 81 | 82 | /* =========== My Css ============ */ 83 | .gpa_container { 84 | width: 100%; 85 | display: flex; 86 | justify-content: center; 87 | align-items: center; 88 | color: #2a2185; 89 | } 90 | .gpabox { 91 | max-width: 600px; 92 | } 93 | .butt { 94 | display: flex; 95 | align-items: center; 96 | } 97 | .butt button { 98 | margin-right: 8px; 99 | } 100 | -------------------------------------------------------------------------------- /templates/class_room/class_room.html: -------------------------------------------------------------------------------- 1 | {% extends "navigation/navigation.html" %} 2 | {% block head %} 3 | 94 | {% endblock %} 95 | 96 | {% block userfullname %}{{ user.name }}{% endblock %} 97 | 98 | {% block content %} 99 |
Class code: {{ classroom['classcode'] }}

100 |

Only class instructors can insert Assignments or exams

101 |
102 |
103 |

UpComming Exams

104 |
105 | {% if classroom['exams'] %} 106 | {% for exam in classroom['exams'] %} 107 |
108 |

{{ exam['title'] }}

109 |

{{ exam['description'] }}


110 |

Date: {{ exam['date'] }}

111 |
112 | {% endfor %} 113 | 114 | {% else %} 115 |
116 |

There are no upcomming exams

117 |
118 | {% endif %} 119 |
120 | {% if (user['occupation'] == 'teacher' and user['name'] == classroom['instructor']) or classroom['instructor'] == user['name'] %} 121 |
122 |
123 |
124 | 125 |
126 |
127 |
128 | 129 |
130 |
131 |
132 | 133 |
134 | 135 |
136 | {% endif %} 137 |
138 |
139 |

Instructor's Assignments

140 |
141 | {% if classroom['assignments'] %} 142 | {% for assignment in classroom['assignments'] %} 143 |
144 |

{{ assignment['title'] }}

145 |

{{ assignment['description'] }}


146 |

Date: {{ assignment['date'] }}

147 |
148 | {% endfor %} 149 | {% else %} 150 |
151 |

There are no Assignments

152 |

153 |
154 | {% endif %} 155 |
156 | {% if (user['occupation'] == 'teacher' and user['name'] == classroom['instructor']) or classroom['instructor'] == user['name'] %} 157 |
158 |
159 |
160 | 161 |
162 |
163 |
164 | 165 |
166 |
167 |
168 | 169 |
170 | 171 |
172 | {% endif %} 173 |
174 |
175 | {% endblock %} -------------------------------------------------------------------------------- /templates/dashboard/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Responsive Admin Dashboard | Korsat X Parmaga 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 91 | 92 | 93 |
94 |
95 |
96 | 97 |
98 |
99 | 102 | 103 |
104 | 105 |
106 |
107 |
108 | 109 | 110 |
111 |
112 |
113 |
My Todos
114 |
Daily Views
115 |
116 | 117 |
118 | 119 |
120 |
121 | 122 |
123 |
124 |
GPA Calculator
125 |
Sales
126 |
127 | 128 |
129 | 130 |
131 |
132 |
133 | 134 | 135 |
136 | 137 | 138 |
139 |
140 |

Your Classes

141 |
142 | 143 | 144 | 145 | 146 | 149 | 152 | 153 | 154 | 155 | 158 | 161 | 162 | 163 | 164 | 167 | 170 | 171 |
147 |
148 |
150 |

Amit
India

151 |
156 |
157 |
159 |

David
Italy

160 |
165 |
166 |
168 |

Amit
India

169 |
172 |
173 | 174 |
175 |
176 |

Notifications

177 | View All 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 |
ClassDateInfo
Star Refrigerator$1200Paid
Dell Laptop$110Due
Apple Watch$1200Paid
Addidas Shoes$620Due
Star Refrigerator$1200Paid
Dell Laptop$110Due
Apple Watch$1200Paid
Addidas Shoes$620Due
239 |
240 |
241 |
242 |
243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | -------------------------------------------------------------------------------- /templates/dashboard/homepage.html: -------------------------------------------------------------------------------- 1 | {% extends "navigation/navigation.html" %} 2 | {% block head %} 3 | 67 | {% endblock %} 68 | {% block userfullname %}{{ user.name }}{% endblock %} 69 | {% block content %} 70 | 71 | 72 | 73 | 74 | 75 | 101 | 102 | 103 |
104 | 105 | 106 | 117 | 136 | 137 |
138 |
139 |

Your Classes

140 |
141 | 142 | 143 |
144 |
145 | 146 | 147 | 148 | {% if user.joined_classes %} 149 | {% for class_id in user.joined_classes %} 150 | {% for class in classes %} 151 | {% if class_id == class['id'] %} 152 | 153 | 156 | 159 | 160 | {% endif %} 161 | {% endfor %} 162 | {% endfor %} 163 | {% else %} 164 | 165 | 168 | 171 | 172 | {% endif %} 173 | 174 |
154 |
155 |
157 |

{{ class['name'] }}
Instructor: {{ class['instructor'] }}

158 |
166 |
167 |
169 |

You Haven't Joined any Classes

170 |
175 |
176 | {% if user['occupation'] == 'student' %} 177 |
178 |
179 |

Notifications

180 | 181 |
182 | {% if user['notifications'] %} 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | {% for notification in user['notifications'] %} 193 | 194 | 195 | 196 | 197 | {% endfor %} 198 | 199 |
ClassType
{{ notification['name'] }}{{ notification['type'] }}
200 | {% else %} 201 |

You have no Notifications

202 | {% endif %} 203 |
204 | {% else %} 205 | 206 | {% endif %} 207 |
208 | 209 | 250 | {% endblock %} -------------------------------------------------------------------------------- /templates/gpa_calculator/gpa_calculator.html: -------------------------------------------------------------------------------- 1 | {% extends "/navigation/navigation.html" %} 2 | {% block head %} 3 | 4 | 5 | 6 | 7 | {% endblock %} 8 | 9 | {% block userfullname %}{{ user.name }}{% endblock %} 10 | 11 | {% block content %} 12 | 13 |
14 | 15 |
16 | 17 |
18 | 19 |
20 |

GPA Calculator

21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
ClassGradeCredits /
Hours
31 | 32 |
33 | 34 | 35 |
36 |
37 | 38 | 39 |
40 |
41 |
42 |
43 |
44 | 45 | 46 |
47 |
48 | 49 | 50 |
51 |
52 |
53 |
54 | 55 |
56 |
57 | 58 | 59 | 60 | 172 | 173 | 174 | 175 | 176 | 177 | {% endblock %} -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | Sign in & Sign up Form 12 | 13 | 14 |
15 |
16 | 69 |
70 | 71 |
72 |
73 |
74 |

New here ?

75 |

76 | 79 |
80 | 81 |
82 |
83 |
84 |

One of us ?

85 |

86 |

87 | 90 |
91 | 92 |
93 |
94 |
95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /templates/navigation/navigation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Responsive Admin Dashboard | Korsat X Parmaga 9 | 10 | 11 | 12 | 13 | 14 | {% block head %} 15 | {% endblock %} 16 | 17 | 18 | 19 | 20 |
21 | 71 |
72 |
73 |
74 | 75 |
76 |
77 | 80 | 81 |
82 | 83 |
84 |
85 |
86 | {% block content %} 87 | {% endblock %} 88 |
89 | 90 |
91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /templates/todo/todo.html: -------------------------------------------------------------------------------- 1 | {% extends "navigation/navigation.html" %} 2 | {% block head %} 3 | 110 | 111 | {% endblock %} 112 | {% block userfullname %}{{ user.name }}{% endblock %} 113 | {% block content %} 114 |
115 |
116 |

To Do

117 | 118 |
119 |
120 | 121 |
122 |
123 | 124 |
125 |
126 | 127 | 128 | 129 | {% if user.todos %} 130 | {% for todo in user.todos %} 131 |
132 |
133 |

{{ todo.title }}

134 | {% if todo.completed == 'false' %} 135 | 136 | {% else %} 137 | 138 | {% endif %} 139 |
140 |
141 |
142 | 143 | 144 | Delete 145 | 146 |
147 |
148 |
149 | {% endfor %} 150 | {% else %} 151 |
152 |
153 | There are no todos... 154 |
155 |
156 | {% endif %} 157 |
158 |
159 | 160 | 206 | 207 | {% endblock %} --------------------------------------------------------------------------------