├── index.php ├── login.php ├── logout.php ├── myo_ders.sql ├── readME.md ├── root.php ├── saveNote.php ├── screenshots ├── index.png ├── root.png ├── user1.png ├── user2.png └── user3.png ├── style └── css │ └── style.css └── user.php /index.php: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Okul Otomasyonu 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 |

Okul Otomasyonu

28 |
29 | 30 |
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 | -------------------------------------------------------------------------------- /login.php: -------------------------------------------------------------------------------- 1 | set_charset("utf8"); 25 | 26 | 27 | $username = $_POST["username"]; 28 | $password = $_POST["password"]; 29 | 30 | //mysql injection korumasi 31 | $username = stripcslashes($username); 32 | $password = stripcslashes($password); 33 | $username = mysqli_real_escape_string($con, $username); 34 | $password = mysqli_real_escape_string($con, $password); 35 | 36 | $result = mysqli_query($con , "select * from users where username = '$username' and password = '$password' "); 37 | 38 | $row = mysqli_fetch_array($result); 39 | 40 | if ($row['username'] == $username && $row['password'] == $password) { 41 | //Kullanıcı bilgilerini sessiona kaydet 42 | $_SESSION['id'] = $row['id']; 43 | $_SESSION['username'] = $username; 44 | $_SESSION['name'] = $row['name']; 45 | $_SESSION['auth'] = $row['auth']; 46 | 47 | if ($row['auth'] == 0) {//yetkisine uygun sayfaya yonlendir 48 | header('location:root.php'); 49 | }else if ($row['auth'] == 1) { 50 | header('location:user.php'); 51 | } 52 | 53 | }else{ 54 | header('location:index.php'); 55 | } 56 | }else{ 57 | header('location:index.php'); 58 | } 59 | 60 | 61 | 62 | 63 | ?> -------------------------------------------------------------------------------- /logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /myo_ders.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/myo_ders.sql -------------------------------------------------------------------------------- /readME.md: -------------------------------------------------------------------------------- 1 |

Okul Otomasyonu

2 | 3 |

Proje İçeriği

4 | 5 | Geliştirilen yazılımda anasayfada kullanıcı giriş yapma bölümü bulunmaktadır. Aynı bölümden hem yetkili kullanıcı hemde öğretmenler giriş yapmaktadır. Giriş yaptıktan sonra yetkiye uygun sayfaya yönlendirme yapar ve elle url girilme ihtimaline karşı gerekli session kontrolleri yapılmıştır. Yönetici panelinde Yeni bir öğretmen eklenebilir yada var olan öğretmenlere yeni ders eklenebilir. Öğretmenlerin panelinde ise öğretmenin verdiği dersler listesi görünür, bu liste içerisinden ders seçildiğinde öğrenci listesi getirilmektedir. Öğretmen öğrenci listesinden dersine yeni öğrenci ekleyebilir. Öğrencilerin notlarını düzenlediğinde otomatik olarak kayıt edilmektedir herhangi bir işlem yapmaya gerek yoktur. Ortalamayı otomatik hesaplamaktadır. Yazdır butonu ile seçili olan dersin öğrenci listesi, yazdırmaya uygun formatta yazıcıya gönderilir. Çıkış butonları ile sessionlar sonlandırılır. 6 | 7 |

Projeden Beklenenler

8 | 9 | 1 okuldaki 1 sınıfın 5 ayrı dersi için 5 ayrı öğretim elemanı vardır. Bu öğretim elemanlarının isimleri, kullanıcı adları ve şifreleri 1 table ile tutulacaktır. Öğrencilerin numara, isimleri ve derslerden alacakları vize final notları ayrı tablolarda tutulacaktır. Buna göre öğretim elemanları kendi şifreleri ile girdiklerinde, kendi sınıflarına öğrenci kaydedebilecek, notlarını girebilecek ve öğrencilerin durumlarını hesaplattırabileceklerdir. Ayrıca öğretim elemanları istenildiği zaman kendi derslerinin tablosunun o andaki durumunu çıktı olarak alabileceklerdir. Burada tanımlanan yetkili kullanıcı sisteme öğretim elemanı ve şifre tanımlama yetkileri ile donatılmış olacaktır. 10 | 11 | 12 |

Veritabanı Tabloları

13 | 14 | ```bash 15 | 16 | -- 17 | -- `users` : Yetkili kullanıcılar ve öğretmenlerin kayıtlı olduğu tablodur. 18 | -- 19 | 20 | CREATE TABLE `users` ( 21 | `id` int(11) NOT NULL AUTO_INCREMENT, 22 | `name` varchar(30) NOT NULL COMMENT 'isim', 23 | `username` varchar(20) NOT NULL COMMENT 'kullanci adi', 24 | `password` varchar(20) NOT NULL COMMENT 'sifre', 25 | `auth` tinyint(4) NOT NULL COMMENT 'yetki-> 0: yetkili 1: ogretmen', 26 | PRIMARY KEY (`id`) 27 | ) ENGINE=InnoDB DEFAULT CHARSET=latin5; 28 | 29 | 30 | -- 31 | -- `students`: Okuldaki tüm öğrencilerin kayıtlı oolduğu tablo. 32 | -- 33 | 34 | CREATE TABLE `students` ( 35 | `id` int(11) NOT NULL AUTO_INCREMENT, 36 | `number` text NOT NULL, 37 | `name` text NOT NULL, 38 | PRIMARY KEY (`id`) 39 | ) ENGINE=InnoDB DEFAULT CHARSET=latin5; 40 | 41 | 42 | -- 43 | -- `lessons`: Derslerin tutulduğu tablo. Derslerin isimleri ve dersin hocasının idsini tutar. 44 | -- 45 | 46 | CREATE TABLE `lessons` ( 47 | `id` int(11) NOT NULL AUTO_INCREMENT, 48 | `lesson_name` text NOT NULL, 49 | `teacher_id` int(11) NOT NULL, 50 | PRIMARY KEY (`id`), 51 | FOREIGN KEY (`teacher_id`) REFERENCES `users` (`id`) 52 | ) ENGINE=InnoDB DEFAULT CHARSET=latin5; 53 | 54 | 55 | -- 56 | -- `student_taking_lasson`: Öğrencilerin aldığı dersleri ve notlarını tutan tablo. 57 | -- 58 | 59 | CREATE TABLE `student_taking_lasson` ( 60 | `students_id` int(11) NOT NULL, 61 | `lessons_id` int(11) NOT NULL, 62 | `vize_note` int(11) DEFAULT NULL, 63 | `final_note` int(11) DEFAULT NULL, 64 | `letter_note` varchar(2) DEFAULT NULL, 65 | FOREIGN KEY (`students_id`) REFERENCES `students` (`id`), 66 | FOREIGN KEY (`lessons_id`) REFERENCES `lessons` (`id`) 67 | ) ENGINE=InnoDB DEFAULT CHARSET=latin5; 68 | 69 | ``` 70 | 71 |

72 | Not: Database myo_ders.sql dosyasında mevcuttur. Veritabanı kullanıcı adı root şifre boş olacak şekilde ayarlanmıştır. 73 |

74 | 75 |

Ekran Görüntüleri

76 | 77 |

Giriş Paneli

78 | 79 | ![indexPanel](/screenshots/index.png) 80 | 81 | 82 |

Kullanıcı Paneli 1

83 | 84 | ![KulaniciPanel1](/screenshots/user1.png) 85 | 86 |

Kullanıcı Paneli 2

87 | 88 | ![KulaniciPanel2](/screenshots/user2.png) 89 | 90 |

Kullanıcı Paneli 3

91 | 92 | ![KulaniciPanel3](/screenshots/user3.png) 93 | 94 |

Root Paneli

95 | 96 | ![RootPanel](/screenshots/root.png) 97 | 98 | -------------------------------------------------------------------------------- /root.php: -------------------------------------------------------------------------------- 1 | set_charset("utf8"); 16 | 17 | 18 | if (isset($_POST['isim_input']) && isset($_POST['kullanici_adi_input']) && isset($_POST['sifre_input']) ) { 19 | $isim_input = stripcslashes($_POST['isim_input']); 20 | $isim_input = mysqli_real_escape_string($con, $isim_input); 21 | 22 | $kullanici_adi_input = stripcslashes($_POST['kullanici_adi_input']); 23 | $kullanici_adi_input = mysqli_real_escape_string($con, $kullanici_adi_input); 24 | 25 | $sifre_input = stripcslashes($_POST['sifre_input']); 26 | $sifre_input = mysqli_real_escape_string($con, $sifre_input); 27 | 28 | $insert_sql = "INSERT INTO `users`( `name`, `username`, `password`, `auth`) VALUES ('$isim_input','$kullanici_adi_input','$sifre_input', '1')"; 29 | $result = mysqli_query($con, $insert_sql); 30 | if ($result) { 31 | echo "Kayıt Başarılı!"; 32 | }else{ 33 | echo "Kaydedilemedi!"; 34 | } 35 | } 36 | 37 | if (isset($_POST['ogretmen_select']) && isset($_POST['ders_input']) ) { 38 | $ogretmen_select = stripcslashes($_POST['ogretmen_select']); 39 | $ogretmen_select = mysqli_real_escape_string($con, $ogretmen_select); 40 | 41 | $ders_input = stripcslashes($_POST['ders_input']); 42 | $ders_input = mysqli_real_escape_string($con, $ders_input); 43 | 44 | $insert_sql = "INSERT INTO `lessons`(`lesson_name`, `teacher_id`) VALUES ('$ders_input','$ogretmen_select')"; 45 | $result = mysqli_query($con, $insert_sql); 46 | if ($result) { 47 | echo "Kayıt Başarılı!"; 48 | }else{ 49 | echo "Kaydedilemedi!"; 50 | } 51 | } 52 | 53 | 54 | ?> 55 | 56 | 57 | 58 | 59 | 60 | Okul Otomasyonu 61 | 62 | 63 | 64 | 65 | 66 | 67 |
68 |
69 |
70 |
71 |

Hoşgeldin Yönetici

72 |
73 |
74 | Çıkış 75 |
76 |
77 | 78 |
79 |
80 |
81 |
82 |
83 |

Öğretim Elemanı Ekle

84 |
85 |
86 |
87 |
88 | 89 | 90 |
91 |
92 | 93 | 94 |
95 |
96 | 97 | 98 |
99 | 100 |
101 |
102 |
103 |
104 |
105 |

Öğretim Elemanına Ders Ekle

106 |
107 |
108 |
109 |
110 | 111 | 121 |
122 |
123 | 124 | 125 |
126 | 127 |
128 |
129 |
130 | 131 |
132 | 133 | 134 | -------------------------------------------------------------------------------- /saveNote.php: -------------------------------------------------------------------------------- 1 | set_charset("utf8"); 15 | 16 | $students_id = stripcslashes($_POST['students_id']); 17 | $lessons_id = stripcslashes($_POST['lessons_id']); 18 | $sutun = stripcslashes($_POST['sutun']); 19 | $data = stripcslashes($_POST['data']); 20 | 21 | 22 | $sql = "UPDATE `student_taking_lasson` SET `$sutun` = '$data' WHERE `students_id` = '$students_id' AND `lessons_id` = '$lessons_id' "; 23 | $result = mysqli_query($con, $sql); 24 | 25 | ?> -------------------------------------------------------------------------------- /screenshots/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/screenshots/index.png -------------------------------------------------------------------------------- /screenshots/root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/screenshots/root.png -------------------------------------------------------------------------------- /screenshots/user1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/screenshots/user1.png -------------------------------------------------------------------------------- /screenshots/user2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/screenshots/user2.png -------------------------------------------------------------------------------- /screenshots/user3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kaantopcuw/OkulOtomasyonu/08d65f7bb8cbe7d7f80ba0b263f20532200af34a/screenshots/user3.png -------------------------------------------------------------------------------- /style/css/style.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | height: 100%; 3 | } 4 | 5 | 6 | .container{ 7 | margin:25px; 8 | } 9 | 10 | @media print 11 | { 12 | body * { visibility: hidden; } 13 | #yazdir * { visibility: visible; } 14 | #yazdir { position: absolute; top: 40px; left: 30px; } 15 | input {background: none !important; border: none !important;} 16 | } -------------------------------------------------------------------------------- /user.php: -------------------------------------------------------------------------------- 1 | set_charset("utf8"); 23 | 24 | if (isset($_POST['table_id'])) {//tablo ismi doluysa bunu ekranda göstermek gerek 25 | //mysql injection koruması 26 | $table_id = stripcslashes($_POST['table_id']); 27 | $table_id = mysqli_real_escape_string($con, $table_id); 28 | } 29 | 30 | if (isset($_POST['student_add'])) { 31 | $student_add = stripcslashes($_POST['student_add']); 32 | $student_add = mysqli_real_escape_string($con, $student_add); 33 | $add_student_with_id = "INSERT INTO `student_taking_lasson`(`students_id`, `lessons_id`, `vize_note`, `final_note`, `letter_note`) VALUES ('$student_add','$table_id',NULL,NULL,NULL)"; 34 | $resut = mysqli_query($con, $add_student_with_id); 35 | 36 | } 37 | 38 | 39 | function getTable($table_name) {//verilen isimeki tablodan tum dataları çekip bir diziye yerleştirir. 40 | 41 | $con = mysqli_connect("localhost", "root", ""); 42 | mysqli_select_db($con, "myo_ders"); 43 | $sql = "SELECT * FROM `$table_name`"; 44 | $result = mysqli_query($con, $sql); 45 | $data = []; 46 | if($result){ 47 | while($row = mysqli_fetch_array($result)) { 48 | 49 | $data[] = $row; 50 | } 51 | } 52 | mysqli_close($con); 53 | return $data; 54 | } 55 | 56 | 57 | 58 | ?> 59 | 60 | 61 | 62 | 63 | 64 | 65 | Okul Otomasyonu 66 | 67 | 68 | 69 | 100 | 101 | 102 | 103 |
104 |
105 |
106 |
107 |

Hoşgeldin Öğretmen

108 |
109 |
110 | Çıkış 111 |
112 |
113 | 114 |
115 | 116 |
117 |
118 |
119 |
120 | 121 | 133 | 134 |
135 |
136 |
137 |
138 |
139 | 147 |
148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 166 | 167 | 168 | 169 | 170 | 173 | 176 | 180 | 183 | 184 | 185 | 189 | 190 |
#NumaraİsimVize NotuFinal NotuOrtalamaHarf Notu
171 | 172 | 174 | 175 | 181 | 182 |
191 |
192 | 197 |
198 |
199 | 202 |
203 |
204 |
205 |
206 |
207 |
208 | 209 |
210 | 211 | 223 | 224 |
225 |
226 |
227 | Yazdır 228 |
229 |
230 |
231 |
232 | 235 |
236 | 237 |
238 | 239 | 240 | 241 | --------------------------------------------------------------------------------