Anda di halaman 1dari 8

INFORMASI TEST KIT CALON pegawai

1. Test digunakan untuk semua kandidat backed dan fullstack.


2. Untuk level Senior - Middle
3. Lama pengerjaan sekitar 2 hari.

Di halaman selanjutnya adalah penjelasan untuk diberikan penggunaan API nya


Tugas:

Buat sebuah , python Backend pakai Flask dengan mengikuti spesifikasi API.

Setiap tanggal pada API ini berupa Epoch, jadi lakukan conversi sesuai yang dibutuhkan, Epochnya
yang second bukan milisecond.

Setiap error yang sifatnya dari API bukan karena bugs, akan dikirimkan status code 501, dengan pesan
yang manusiawi bukan pesan mesin.

Selain status code 501, misalnya 400, 404 dan 500 itu bukan dari API tapi ada bugs dari akses yang
salah ke aplikasi, ini bisa pesan dari kata2 mesin.

(Jika dibuatkan Front-end menjadi nilai tambah)

Kirimkan PDF documen informasi dari aplikasi berisi alasan penggunaan dan cara installasi untuk
membuat aplikasi tersebut dan informasi tambahan lainnya lalu satukan dengan file APK, source
code, dan screenshot dicompress bentuk 7zip atau RAR dan dikirim lewat google drive.
Spesifikasi API

AUTH:
URL-POST: /api/auth/init-data
Form Body :
namaAdmin: String
perusahaan: String
Function:
Untuk membuatkan data awal perusahaan dan admin perusahan.
Return:
{
email: String,
password: String,
profile: String
}

URL-POST: /api/auth/login
Form Body :
email: String
password: String
profile: String
Function:
Login bagi user untuk mendapatkan hak akses berupa token, nanti token tersebut harus ada
dimasukkan di setiap header Authorization, tanggal lahir berupa Epoch, sisanya informasi
bisa didapatkan dari combo pegawai.
Return:
{
hasil: {
token: String,
info: {
profile: String,
idUser: String,
namaLengkap: String,
tempatLahir: String,
tanggalLahir: Integer,
email: String,
password: String,
nikUser: String,
kdJabatan: Integer,
namaJabatan: String,
kdDepartemen: Integer,
namaDepartemen: String,
kdUnitKerja: Integer,
namaUnitKerja: String,
kdJenisKelamin: Integer,
namaJenisKelamin: String,
kdPendidikan: Integer,
namaPendidikan: String,
photo: String
}
}
}
URL-POST: /api/auth/ubah-password-sendiri
Form Body :
passwordAsli: String
passwordBaru1: String
passwordBaru2: String
Function:
Digunakan oleh user untuk mengubah passwordnya sendiri yang awalnya passwordnya
dibuatkan oleh admin

PEGAWAI:
URL-GET: /api/pegawai/combo/jabatan
Function:
Digunakan untuk mendapatkan data combo-box jabatan.
Return: [{
kdJabatan: Integer,
namaJabatan: String
}]

URL-GET: /api/pegawai/combo/departemen
Function:
Digunakan untuk mendapatkan data combo-box departemen.
Return: [{
kdDepartemen: Integer,
namaDepartemen: String
}]

URL-GET: /api/pegawai/combo/unit-kerja
Function:
Digunakan untuk mendapatkan data combo-box unit kerja.
Return: [{
kdUnitKerja: Integer,
namaUnitKerja: String
}]

URL-GET: /api/pegawai/combo/pendidikan
Function:
Digunakan untuk mendapatkan data combo-box pendidikan.
Return: [{
kdPendidikan: Integer,
namaPendidkan: String
}]

URL-GET: /api/pegawai/combo/jenis-kelamin
Function:
Digunakan untuk mendapatkan data combo-box jenis kelamin.
Return: [{
kdJenisKelamin: Integer,
namaJenisKelamin: String
}]
URL-GET: /api/pegawai/combo/departemen-hrd
Function:
Digunakan untuk mendapatkan data combo-box pegawai yang berada di departemen HRD.
Return: [{
namaLengkap: String,
kdJabatan: Integer,
namaJabatan: String
}]

URL-GET: /api/pegawai/daftar
Function:
Digunakan untuk mendapatkan data seluruh pegawai, hanya login Admin dan atau pegawai
dari departemen HRD yang bisa mengakses.
Return: [{
profile: String,
idUser: String,
namaLengkap: String,
tempatLahir: String,
tanggalLahir: Integer,
email: String,
password: String,
nikUser: String,
kdJabatan: Integer,
namaJabatan: String,
kdDepartemen: Integer,
namaDepartemen: String,
kdUnitKerja: Integer,
namaUnitKerja: String,
kdJenisKelamin: Integer,
namaJenisKelamin: String,
kdPendidikan: Integer,
namaPendidikan: String,
photo: String
}]

URL-POST: /pegawai/admin-tambah-pegawai
Form Body :
namaLengkap: String
email: String
tempatLahir: String
tanggalLahir: Integer
kdJenisKelamin: Integer
kdPendidikan: Integer
kdJabatan: Integer
kdDepartemen: Integer
kdUnitKerja: Integer
password: String
passwordC: String
Function:
Untuk fungsi menambahkan pegawai baru dan hanya Admin dan atau pegawai dari
departeman HRD yang bisa mengakses.
URL-POST: /pegawai/admin-tambah-pegawai
Form Body :
namaLengkap: String
email: String
tempatLahir: String
tanggalLahir: Integer
kdJenisKelamin: Integer
kdPendidikan: Integer
kdJabatan: Integer
kdDepartemen: Integer
kdUnitKerja: Integer
password: String
passwordC: String
Function:
Untuk fungsi menambahkan pegawai baru dan hanya Admin dan atau pegawai dari
departeman HRD yang bisa mengakses.

URL-POST: /pegawai/admin-ubah-pegawai
Form Body :
idUser: String (yang mau diubah)
namaLengkap: String
email: String
tempatLahir: String
tanggalLahir: Integer
kdJenisKelamin: Integer
kdPendidikan: Integer
kdJabatan: Integer
kdDepartemen: Integer
kdUnitKerja: Integer
password: String
passwordC: String
Function:
Untuk fungsi mengubah pegawai baru dan hanya Admin dan atau pegawai dari
departeman HRD yang bisa mengakses.

URL-POST: /pegawai/admin-ubah-photo
Form Body :
idUser: String (yang mau diubah)
namaFile: String
files: data file image
Function:
Untuk fungsi mengubah photo pegawai dan hanya Admin dan atau pegawai dari
departeman HRD yang bisa mengakses.

URL-POST: /pegawai/ubah-photo
Form Body :
namaFile: String
files: data file image
Function:
Untuk fungsi mengubah photo sendiri bagi pegawai.
PRENSENSI-ABSENSI:

URL-GET: /presensi/combo/status-absen
Query Param :
tglAwal: Integer
tglAkhir: Integer
Function:
Digunakan untuk mendapatkan data combo-box status izin diantaranya absensi (tidak
masuk)
Return:
[{
kdStatus: Integer,
namaStatus: String
}]

URL-GET: /presensi/daftar/admin
Query Param :
tglAwal: Integer
tglAkhir: Integer
Function:
Untuk fungsi melihat daftar presensi dan abensi seluruh pegawai per-range tanggal
Return:
[{
idUser: Integer,
namaLengkap: String,
tglAbsensi: Integer,
jamMasuk: String,
jamKeluar: String,
namaStatus: String
}]
URL-GET: /presensi/daftar/pegawai
Query Param :
tglAwal: Integer
tglAkhir: Integer
Function:
Untuk fungsi melihat daftar presensi dan abensi pegawai sendiri.
Return:
[{
tglAbsensi: Integer,
jamMasuk: String,
jamKeluar: String,
namaStatus: String
}]

URL-GET: /presensi/in
Function:
Untuk fungsi melakukan check-in, diambil dari jam server berjalan.
Return:
{
jamMasuk: String
}

URL-GET: /presensi/out
Function:
Untuk fungsi melakukan check-out, diambil dari jam server berjalan.
Return:
{
jamKeluar: String
}

URL-POST: /presensi/abseni
Form Body :
tglAbsensi: Integer
kdStatus: Integer
Function:
Digunakan pegawai untuk pemberitahuan jika absensi (tidak masuk), izinnya apakah.

Anda mungkin juga menyukai