Skip to content

andiriki/fc-p

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student Portal - Student Activities Registration

Final Project

Notes

Sebelum mengerjakan kalian WAJIB menjalankan command pnpm install atau npm install untuk menginstal depedency yang diperlukan.

Description

Student Activities Registration merupakan sebuah aplikasi untuk student dapat melakukan pendaftaran UKM (Unit Kegiatan Mahasiswa) sesuai dengan hari yang diajukan student serta menghapus data student yang sudah di daftarkan.

Pada final project ini, kalian di berikan beberapa async function dengan penamaan sesuai dengan kegunaannya, antara lain:

  • studentActivitiesRegistration : Merupakan sebuah function utama yang akan memanggil function lainnya untuk mendaftarkan atau menghapus data student.
  • getStudentActivities : Merupakan sebuah function untuk mendapatkan data UKM apa saja yang tersedia.
  • addStudent : Merupakan sebuah function untuk mendaftarkan data student.
  • deleteStudent : Merupakan sebuah function untuk menghapus data student.

Selain itu kalian diberikan juga sebuah file json-server dengan nama student-activities-db.json dalam folder /server sebagai server kalian yang memiliki beberapa end-points, antara lain:

  • GET /students : Untuk mendapatkan data student.
  • POST /students : Untuk mendaftarkan data student.
  • DELETE /students/id : Untuk menghapus data student berdasarkan id student.
  • GET /activities : Untuk mendapatkan data UKM.

Server dapat di jalankan menggunakan command npm run start:server dan akan berjalan pada http://localhost:3001.

Terdapat beberapa format input terminal yang WAJIB kalian ikuti, antara lain:

  • Add Student

    node main.js METHOD "Name" "Day"

    contoh

    node main.js "CREATE" "John Doe" "Sunday"
  • Delete Student

    node main.js METHOD "id"

    contoh

    node main.js "DELETE" "2"

Terdapat juga function process_argv yang akan menerima input yang kalian masukan pada terminal. Function ini sendiri akan memanggil function studentActivitiesRegistration yang kalian gunakan.

Kalian tidak perlu mengubah atau mengerjakan apa pun pada function process_argv

getStudentActivities

Function getStudentActivities merupakan function yang digunakan untuk mendapatkan data dari UKM apa saja yang tersedia untuk student. Untuk mendapatkan data UKM kalian dapat melakukan hit ke end-point /activities pada json-server. Terdapat data yang di sediakan pada json-server berupa data seluruh UKM yang terdaftar.

"activities": [
    {
      "id": 1,
      "name": "Mahitala",
      "desc": "Mahasiswa Pecinta Alam",
      "days": [
        "Sunday"
      ]
    },
    {
      "id": 2,
      "name": "Listra",
      "desc": "Seni Tari Tradisional",
      "days": [
        "Wednesday",
        "Friday"
      ]
    },
    {
      "id": 3,
      "name": "Satre",
      "desc": "Seni Teater",
      "days": [
        "Monday",
        "Thursday"
      ]
    },
    ...
  ]

notes: Function ini tidak menerima parameter apapun.

Output pada function ini berupa array of objects yang mana setiap elemen dari array merupakan data berupa object dari UKM yang terdaftar dengan key sebagai berikut:

Key Value Type
id integer
name string
desc string
days array of string

Input:

getStudentActivities();

Expected Output / Behavior:

[
    {
        id: 1,
        name: "Mahitala",
        desc: "Mahasiswa Pecinta Alam",
        days: ["Sunday"],
    },
    {
        id: 2,
        name: "Listra",
        desc: "Seni Tari Tradisional",
        days: ["Wednesday", "Friday"],
    },
    {
        id: 3,
        name: "Satre",
        desc: "Seni Teater",
        days: ["Monday", "Thursday"],
    },
    ...
];

studentActivitiesRegistration

Function studentActivitiesRegistration merupakan sebuah function utama yang menerima sebuah parameter data dan akan memanggil 2 function lainnya yaitu function untuk mendaftarkan student berupa addStudent dan function untuk menghapus student berupa deleteStudent berdasarkan METHOD yang diterimanya.

Value parameter data pada function ini berupa array yang memiliki element berupa method, name dan day (add) atau method dan id (delete) yang kalian butuhkan berdasarkan input yang dimasukan melalui terminal. Sedangkan output dari function ini berupa object tergantung dari method yang diterimanya.

Dibawah ini ketentuan dalam pengerjaan pada function studentActivitiesRegistration:

  • Diasumsikan METHOD yang diterima hanya berupa CREATE atau DELETE (dalam huruf besar/kapital)
  • Jika METHOD yang diterima bernilai CREATE, sistem akan memproses pendaftaran data student.
  • Jika METHOD yang diterima bernilai DELETE, sistem akan memproses penghapusan data student.

Test Case

  • ADD:

    Input:

    // studentActivitiesRegistration(data);
    studentActivitiesRegistration(["CREATE", "Anshori Atmodiredjo", "Sunday"]);

    Expected Output / Behavior:

    {
        id: 2,
        name: 'Anshori Atmodiredjo',
        activities: [
            { name: 'Mahitala', desc: 'Mahasiswa Pecinta Alam' },
            { name: 'Korgala', desc: 'Korps Tenaga Sukarela' }
        ]
    }

    Explanation:

    `METHOD` yang diterima bernilai `CREATE`, sistem akan memproses pendaftaran data student.
    `name` yang diterima berupa 'Anshori Atmodiredjo'.
    `day` yang diterima berupa 'Sunday', sehingga akan mencari UKM apa saja yang tersedia di hari tersebut.
    Berdasarkan data yang diterima, UKM yang tersedia di hari tersebut adalah 'Mahitala' dan 'Korgala'
  • DELETE:

    Input:

    // studentActivitiesRegistration(data);
    studentActivitiesRegistration(["DELETE", "2"]);

    Expected Output / Behavior:

    {
        message: "Successfully deleted student data with id 2";
    }

    Explanation:

    `METHOD` yang diterima bernilai `DELETE`, sistem akan memproses penghapusan data student.
    `id` yang diterima bernilai '2'.
    Sehingga akan menghapus data student pada database dengan `id` yang diterima dan menampilkan pesan sesuai template.

addStudent

Function addStudent akan menerima sebuah parameter berupa name dan day dalam bentuk string. Pada function ini kalian di minta untuk mendaftarkan data student yang diterima dalam parameter ke dalam database dengan format berikut:

Name Data Type
name string
activities array of objects
  • name: merupakan sama student yang diterima pada parameter.
  • activities: merupakan data UKM apa saja yang dapat diikuti oleh student berdasarkan day yang diterima dari paramter.

Kalian dapat menggunakan function getStudentActivities untuk mendapatkan data UKM yang terdaftar, lalu membandingkan hari yang diajukan student dengan hari yang tersedia dari masing-masing UKM. Yang perlu di perhatikan adalah setiap data dari UKM yang dapat diikuti oleh student dalam object yang memiliki key berupa name dan desc (id dan days tidak disertakan).

// Contoh:

{
    name: "Mahitala",
    desc: "Mahasiswa Pecinta Alam"
}

Untuk melakukan create data kalian dapat menggunakan end-point /students.

Input:

// addStudent(name, day)
addStudent("Anshori Atmodiredjo", "Sunday");

Expected Output / Behavior:

{
    id: 2,
    name: 'Anshori Atmodiredjo',
    activities: [
        { name: 'Mahitala', desc: 'Mahasiswa Pecinta Alam' },
        { name: 'Korgala', desc: 'Korps Tenaga Sukarela' }
    ]
}

Explanation:

`name` yang diterima berupa 'Anshori Atmodiredjo'.
`day` yang diterima berupa 'Sunday', sehingga akan mencari UKM apa saja yang tersedia di hari tersebut.
Berdasarkan data yang diterima, UKM yang tersedia di hari tersebut adalah 'Mahitala' dan 'Korgala'

deleteStudent

Function deleteStudent akan menerima sebuah parameter berupa id student dalam bentuk string. Pada function ini kalian di minta untuk menghapus data student yang sudah ada pada database sesuai dengan id yang diterima dalam parameter. Jika data berhasil di hapus maka akan mengembalikan message dalam bentuk object sebagai berikut:

"Successfully deleted student data with id <studentId>"

Untuk melakukan delete data kalian dapat menggunakan endpoint /students

Input:

// deleteStudent(id)
deleteStudent("2");

Expected Output / Behavior:

{
    message: "Successfully deleted student data with id 2";
}

Explanation:

`id` yang diterima bernilai '2'.
Sehingga akan menghapus data student pada database dengan `id` yang diterima dan menampilkan pesan sesuai template.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors