Pada grup project 3 ini kami ingin membuat sebuah Backend aplikasi yang berfokus pada lingkungan sekolah yaitu pengelompokan dan pengolahan nilai siswa, tujuan dari aplikasi yang kita buat ini adalah untuk memudahkan guru dan pegawai sekolah untuk memantau dan menyimpan nilai siswa siswi dari sekolah tersebut yang bentuk akhirnya berupa sebuah raport yang berisikan nama siswa, kelas siswa, serta nilai dari siswa tersebut.
Dengan beranggotakan Wira Sebagai ketua serta Iqbal dan Yusril sebagai anggota, kita harap dalam grup project ini dapat kita selesaikan tepat waktu.
Rancangan ERD bisa di lihat melalui link berikut : https://1drv.ms/u/s!AvyjxC2Xxt29mgNKKwQFOMBaqZBu?e=khSRsb
-
Login User
- Endpoint : /users
- Method : POST
- request : body
{ email : "admin@gmail.com", password : "admin123", }
Ini adalah tampilan ketika anda dapat melakukan login
"message": "Login Berhasil, Selamat Datang admin", "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJhZG1pbiIsImlhdCI6MTYzMzI3NTMxMn0.a4iRMrlR9KNLxCXu9ZKROVm-1NkxZNNha1WeQes6s1U", "payload": { "userId": 1, "role": "admin" }
-
Register User
- Endpoint : /users
- Method : POST
- request : body
{ name : "Yusril" email : "yusril@gmail.com", password : "123456", }
Berikut adalah gambaran apabila data berhasil di buat.
{ "message": "user created", "teacher": { "Nama_Guru": "Yusril", "ID": 2, "email": "yusril@gmail.com", "Role": "teacher" }
Error dikarenakan akibat data yang di inputkan sudah tersedia di dalam database sehingga ketika melakukan registrasi datanya akan conflict.
{ "message": "email already exist" }
-
GET All Users
- Endpoint : /users
- Method : GET
Berikut adalah tampilan apabila user berhasil menampilkan semua data menggunakan Method GET.
{ "users": [ { "id": 1, "name": "admin", "email": "admin@gmail.com", "role": "admin", "Class": null }, { "id": 2, "name": "Yusril", "email": "yusril@gmail.com", "role": "teacher", "Class": null } ], "currentUser": { "id": 1, "name": "admin", "email": "admin@gmail.com", "role": "admin", "Class": null }
Error dikarenakan akibat data yang di inputkan belum dimasukan ke kelas manapun.
{ "message": "Guru tidak terdaftar di kelas manapun" }
-
Create Class
- Endpoint : /class
- Method : POST
- request : body
{ name : Kelas 1 A, Teacher : 2 }
Ini adalah tampilan ketika anda dapat membuat class
{ "message": "class created", "class_data": { "id": 1, "name": "Kelas 1 A", "Teacher": 2, "updatedAt": "2021-10-03T16:56:08.287Z", "createdAt": "2021-10-03T16:56:08.287Z" } }
Error ini ditemukan apabial terdapat id teacher yang tidak ada di dalam database.
{ "message": "Cannot add or update a child row: a foreign key constraint fails (`school`.`classes`, CONSTRAINT `classes_ibfk_1` FOREIGN KEY (`Teacher`) REFERENCES `users` (`id`))" }
-
GET Class
- Endpoint : /class
- Method : GET
Ini adalah tampilan ketika anda dapat melakukan login
{ "message": "OK", "class": [ { "id": 1, "name": "Kelas 1 A", "Teacher": 2, "createdAt": "2021-10-03T16:56:08.000Z", "updatedAt": "2021-10-03T16:56:08.000Z", "Students": [], "User": { "id": 2, "name": "Yusril", "email": "yusril@gmail.com", "password": "$2a$10$HfqsQ8hUdCinRqZ/d1IwXuRy5FOqGev8Gg3ixYzCkz1EWkRwO6/pm", "role": "teacher", "createdAt": "2021-10-03T16:31:46.000Z", "updatedAt": "2021-10-03T16:31:46.000Z" } } ], "currentUser": { "id": 2, "name": "Yusril", "email": "yusril@gmail.com", "role": "teacher", "Class": { "id": 1, "name": "Kelas 1 A", "Teacher": 2 } } }
Error ini ditemukan apabial belum ada data di dalam database Class.
{ message:"Tidak ada kelas yang terdaftar" }
-
DELETE Class
- Endpoint : /class/:id
- Method : Delete
Akan ada sebuah pesan sukses apabila anda berhasil menghapus data kelas di database.
{ "status": "Class Deleted" }
Error ini ditemukan apabila data belum di buat atau tidak ada pada database Class.
{ "message": "Kelas tidak ditemukan" }
-
CREATE Student
- Endpoint : /students
- Method : POST
- request : body
{ name : "Benjamin", ClassId : "1", }
Ini adalah tampilan setelah data student berhasil di buat
{ "msg": "Success Create New Student", "student": { "id": 1, "name": "Benjamin", "ClassId": "1", "updatedAt": "2021-10-03T17:18:15.626Z", "createdAt": "2021-10-03T17:18:15.626Z" } }
-
GET All Student
- Endpoint : /students
- Method : GET
Ini adalah tampilan apabila berhasil menampilkan seluruh data dari database student
{ { "msg": "Success Get All Data of Student", "student": [ { "id": 1, "name": "Benjamin", "Class": { "id": 1, "name": "Kelas 1 Renamed" } } ], "currentUser": { "id": 1, "name": "admin", "email": "admin@gmail.com", "role": "admin", "Class": null } }
-
UPDATE Student
- Endpoint : /students/:id
- Method : PUT
- Request : Body
{ name : "dedy", ClassId : "2", }
Ini adalah tampilan apabila berhasil melakukan update terhadap salah satu data student
{ "status": "Student Updated", "detail": { "name": "dedy", "ClassId": "2" } }
-
DELETE Students
- Endpoint : /students/:id
- Method : DELETE
Ini adalah tampilan apabila berhasil melakukan update terhadap salah satu data student
{ "msg": "Success Delete Data" }
Ini adalah tampilan apabila tidak berhasil melakukan update terhadap salah satu data student
{ "msg": "Data is Empty" }
-
CREATE Mapel
- Endpoint : /mapels
- Method : POST
- request : body
{ nama_mapel : "Bahasa Indonesia", }
Ini adalah tampilan setelah data Mapel berhasil dibuat
{ "msg": "Success Create New Mapel", "mapel": { "id": 6, "nama_mapel": "Bahasa Indonesia", "updatedAt": "2021-10-03T17:42:57.318Z", "createdAt": "2021-10-03T17:42:57.318Z" } }
-
GET All Mapel
- Endpoint : /mapels
- Method : GET
Ini adalah tampilan setelah berhasil menapilkan data Mapel
{ "message": "Success", "mapel": [ { "id": 1, "nama_mapel": "Matematika", "createdAt": "2021-10-03T16:31:23.000Z", "updatedAt": "2021-10-03T16:31:23.000Z" }, { "id": 2, "nama_mapel": "Bahasa Indonesia", "createdAt": "2021-10-03T16:31:23.000Z", "updatedAt": "2021-10-03T16:31:23.000Z" }, { "id": 3, "nama_mapel": "Ilmu Pengetahuan Alam", "createdAt": "2021-10-03T16:31:23.000Z", "updatedAt": "2021-10-03T16:31:23.000Z" }, { "id": 4, "nama_mapel": "Ilmu Pengetahuan Sosial", "createdAt": "2021-10-03T16:31:23.000Z", "updatedAt": "2021-10-03T16:31:23.000Z" }, { "id": 5, "nama_mapel": "Bahasa Inggris", "createdAt": "2021-10-03T16:31:23.000Z", "updatedAt": "2021-10-03T16:31:23.000Z" }, { "id": 6, "nama_mapel": "Bahasa Indonesia", "createdAt": "2021-10-03T17:42:57.000Z", "updatedAt": "2021-10-03T17:42:57.000Z" } ] }
-
UPDATE Mapel
- Endpoint : /mapels/:id
- Method : PATCH
- Request : body
{ nama_mapel : "Bahasa Sunda", }
Ini adalah tampilan setelah berhasil mengubah data Mapel sesuai Id yang ditentukan
{ "status": "success", "data": { "id": 6, "nama_mapel": "Bahasa Sunda", "createdAt": "2021-10-03T17:42:57.000Z", "updatedAt": "2021-10-03T17:51:42.075Z" } }
Ini adalah tampilan apabila system tidak menemukan data yang sesuai dengan id yang ditentukan
{ "message": "Not Found, try with another id" }
-
DELETE Mapel
- Endpoint : /mapels/:id
- Method : DELETE
Ini adalah tampilan setelah berhasil menghapus data Mapel sesuai Id yang ditentukan
{ "message": "sukses delete data" }
Ini adalah tampilan apabila system tidak menemukan data yang sesuai dengan id yang ditentukan
{ "message": "Not Found, try with another id" }
-
CREATE or ADD Score
- Endpoint : /scores
- Method : POST
- request : body
{ "studentId":2, "MapelId":1, "grade":"A" }
Ini adalah tampilan setelah data Score berhasil dibuat atau ditambahkan ke data siswa
{ "result": [ { "grade": "A", "StudentId": 5, "MapelId": 1, "createdAt": "2021-10-03T18:07:35.119Z", "updatedAt": "2021-10-03T18:07:35.119Z" } ], "currentUser": { "id": 2, "name": "Yusril", "email": "yusril@gmail.com", "role": "teacher", "Class": { "id": 1, "name": "Kelas 1 Renamed", "Teacher": 2 } } }
Ini adalah tampilan apabila system tidak menemukan data yang sesuai dengan id yang ditentukan
{ "message": "Student Not Found" }
-
GET ALL Score
- Endpoint : /scores
- Method : GET
Ini adalah tampilan setelah semua data Score berhasil dipanggil dari database menggunakan Method GET
{ "score": [ { "studentId": 5, "MapelId": 1, "grade": "A", "Student": { "name": "Carlos", "ClassId": 1 } } ], "currentUser": { "id": 1, "name": "admin", "email": "admin@gmail.com", "role": "admin", "Class": null } }
-
UPDATE Score
- Endpoint : /scores/:id
- Method : PATCH
- Request : Body
{ "studentId":2, "MapelId":1, "grade":"B" }
Ini adalah tampilan setelah salah satu data berhasil di update menggunakan method PATCH
{ "status": "success", "data": { "studentId": 2, "MapelId": 1, "grade": "B", "createdAt": "2021-10-03T18:07:35.000Z", "updatedAt": "2021-10-03T18:14:56.181Z", "StudentId": 5 } }
-
DELETE Score
- Endpoint : /scores/:id
- Method : DELETE
Ini adalah tampilan setelah berhasil menghapus salah satu data dari database score
{ "message": "data berhasil dihapus" }