No | Nama | NRP |
---|---|---|
1 | Gede Hari Yoga Nanda | 3122500005 |
2 | Arsyita Devanaya Arianto | 3122500008 |
3 | Ali Azhar | 3122500011 |
4 | Mahendra Khibrah R. S | 3122500013 |
5 | Mayada Azizah | 3122500015 |
6 | Gandi Rukmaning Ayu | 3122500016 |
7 | Adam Rasyid Nurmuhammad | 3122500018 |
8 | Adinda Zahra Q | 3122500020 |
9 | M Reza Muktasib | 3122500024 |
10 | Adira Callysta | 3122500025 |
11 | Shofira Izza N | 3122500026 |
- Daftar Isi
- Pendahuluan
- Ruang Lingkup
- Desain Sistem
- Tim dan Tugas
- Tahapan Pelaksaan
- Implementasi
- Sistem testing
- Kesimpulan
E-TOEFL adalah aplikasi mobile berbasis Flutter yang dirancang untuk membantu mahasiswa PENS dalam mempersiapkan tes e-TOEFL. Aplikasi ini menawarkan pengalaman belajar yang dipersonalisasi, memungkinkan pengguna memilih topik latihan dan memantau skor simulasi. Backend aplikasi menggunakan Laravel untuk autentikasi dan berinteraksi dengan MongoDB NoSQL yang menyimpan data dan melakukan operasi CRUD. Docker Engine digunakan untuk mengembangkan, mengirimkan, dan menjalankan aplikasi dalam kontainer, memastikan portabilitas, isolasi, dan kemudahan deployment. Desain sistem meliputi Storage Server pada port 3000 untuk penyimpanan file, Web Server Laravel pada port 80 untuk logika bisnis dan komunikasi dengan Storage Server dan MongoDB, serta MongoDB pada port 27017 untuk penyimpanan data aplikasi. Docker Engine menghubungkan antarmuka pengguna mobile dengan layanan backend. Tahapan pelaksanaan mencakup perencanaan dan analisis, desain dan prototyping, pengembangan dan implementasi, serta deployment dan pemeliharaan. Pada sistem testing terdapat pengujian unit, integrasi, sistem, dan uji pengguna. Docker memastikan konsistensi lingkungan pengujian. Aplikasi e-TOEFL diharapkan meningkatkan aksesibilitas dan efektivitas persiapan tes e-TOEFL bagi mahasiswa dengan sistem backend yang handal dan terkontainerisasi.
Keywords: e-toefl, container, docker
Proyek berlangsung selama 6 minggu, mulai dari tanggal 25 April 2024 hingga 30 Mei 2024. Dimana tahapan pelaksanaannya mencakup perencanaan dan analisis hingga pengujian.
Docker adalah platform perangkat lunak yang memudahkan pembuatan, pengujian, dan penerapan aplikasi dengan cepat. Docker mengemas perangkat lunak ke dalam kontainer yang berisi semua kebutuhan perangkat lunak agar bisa berfungsi, seperti pustaka, alat sistem, kode, dan runtime. Dengan Docker, kita dapat dengan mudah menerapkan dan menskalakan aplikasi di berbagai lingkungan. Docker memiliki beberapa manfaat yaitu, portabilitas aplikasi yang dapat dijalankan di lingkungan apapun tanpa perlu mengubah konfigurasi, isolasi yang memastikan setiap kontainer berjalan terpisah dan aman dari aplikasi lain, kemudahan deployment dan skalabilitas aplikasi untuk menambah atau mengurangi instance kontainer dengan mudah.
Pada aplikasi eTOEFL, kami menggunakan Storage Server untuk menyimpan dan mengambil data, seperti file atau dokumen besar. Kami juga memanfaatkan Web Server yang menggunakan framework Laravel untuk mengelola request pengguna serta berinteraksi dengan Storage Server dan MongoDB Database untuk operasi CRUD. Selanjutnya, MongoDB Database digunakan untuk menyimpan data aplikasi. Terakhir, Docker Engine dipakai untuk mengembangkan, mmengirimkan dan menjalankan aplikasi dalam kontainer. Kemudian, Docker akan menghubungkan antarmuka pengguna pada perangkat mobile dengan backend seperti Web Server, MongoDB, dan Storage Server.
eTOEFL adalah aplikasi berbasis mobile yang dikembangkan dengan Flutter dan memungkinkan pengguna untuk mengakses berbagai fitur dengan mudah. Kemudian, backend aplikasi menggunakan framework Laravel untuk mengatur autentikasi pengguna dan berinteraksi dengan database untuk penyimpanan dan pengambilan data. Untuk database aplikasi menggunakan MongoDB NoSQL yang berfungsi menyimpan dan mengambil data dari database serta memberikan respons terhadap permintaan pengguna. Terakhir, Server berfungsi sebagai perantara antara aplikasi mobile, backend, dan database. Server juga menerima request dari pengguna, kemudian meneruskannya ke backend dan database yang nantinya akan mengirimkan kembali respons kepada pengguna
-
Storage Server berjalan pada port 3000 yang bertanggung jawab untuk menyimpan dan mengambil data, khususnya file atau dokumen besar yang diperlukan oleh aplikasi.
-
Web Server Laravel berjalan pada port 80, dikembangkan dengan framework laravel dengan peran sebagai pusat logika bisnis aplikasi dan mengelola permintaan dari frontend. Web server laravel bekerja untuk menerima permintaan dari docker engine, berkomunikasi dengan storage server untuk manajemen file, dan menjalankan operasi CRUD ke MongoDB database.
-
MongoDB Database berjalan pada port 27017 dan menerima permintaan dari web server larave melalui Docker Engine. MongoDB database bertugas untuk menyimpan data aplikasi dalam format NoSQL dan menjalankan operasi CRUD yang diminta oleh web server Laravel.
-
Docker Engine berperan sebagai perantara antara Mobile FE dan layanan backend seperti web server laravel, storage server, dan MongoDB database. Docker Engine berkomunikasi dengan Mobile FE melalui layanan backend yang sesuai, menerima permintaan, dan mengirimkan response.
-
Mobile FE berfungsi untuk menyajikan antarmuka pengguna yang dapat diakses melalui perangkat mobile. Mobile FE berinteraksi dengan Docker Engine untuk mengakses layanan backend dan menerima response.
Link Backlog: https://docs.google.com/spreadsheets/d/1H3uiufmB5BPQeNi5vA3qUKwm-h5uV2LpxK4VTh3sPIg/edit?usp=sharing
No | Bakclog | ToDo | Eksekutor |
---|---|---|---|
1 | Mobile HomePage | Slicing Card Target Score | Arsyita Devanaya Arianto |
Consume Api Target Score | Arsyita Devanaya Arianto | ||
Slicing Chart Pie Lingkaran | Mahendra Khibrah R. S | ||
Consume Rank User | M Reza Muktasib | ||
Slicing Card Navigasi Rank | Ali Azhar P.B | ||
Consume For You List | M Reza Muktasib | ||
Slicing For You Card | Arsyita Devanaya Arianto | ||
Slicing Simulation Card | Arsyita Devanaya Arianto | ||
Consume Learning Path Category Quiz | M Reza Muktasib | ||
Slicing Learning Path Card | Arsyita Devanaya Arianto | ||
Design Card Set Target/td> | Gandi Rukmaning Ayu, Adinda Zahra Q, Mayada Azizah | ||
Design Chart Pie Lingkaran | Gandi Rukmaning Ayu | ||
Design For You Card | Mayada Azizah, Adinda Zahra Q | ||
Design Learning Path Card | Gandi Rukmaning Ayu, Mayada Azizah, Adinda Zahra Q | ||
Design Simulation Card | Adinda Zahra Q, Adinda Zahra Q | ||
Slicing Bottom Nav Bar | M Reza Muktasib | ||
2 | Mobile Bookmark | Slicing Card Bookmark | Adam Rasyid Nurmuhammad |
Consume Bookmark List | Mahendra Khibrah R. S | ||
Design Card Bookmark | Mayada Azizah, Adinda Zahra Q | ||
3 | Mobile Profile | Design Profile Page | Gandi Rukmaning Ayu |
Consume Profile User | Shofira Izza N | ||
Slicing Profile Page | Arsyita Devanaya Arianto | 8000||
4 | Target Score | Slicing Target Score List | Adam Rasyid Nurmuhammad |
Consume Target Score List | Mahendra Khibrah R. S | ||
Design Target Score Page | Mayada Azizah, Adinda Zahra Q | ||
5 | Simulation Test List Page | Slicing Test List Page | Mahendra Khibrah R. S |
Consume List Test Page | Mahendra Khibrah R. S | ||
6 | Simulation Test Page | Slicing Bottom Nav Bar | Mahendra Khibrah R. S |
Design Bottom Nav Bar | Mayada Azizah, Adinda Zahra Q | ||
Slicing List Soal Bottom Sheet | Mahendra Khibrah R. S | ||
Design List Soal Bottom Sheet | Mayada Azizah, Adinda Zahra Q | ||
Implementasi Logic Test Question | Mahendra Khibrah R. S | ||
Consume Test Question Option dan Key | Mahendra Khibrah R. S | ||
Implementasi Logic Test Session | Mahendra Khibrah R. S | ||
Membuat State Management Test | Mahendra Khibrah R. S | ||
Slicing Test Result | Adam Rasyid Nurmuhammad | ||
Logic Test Result | Mahendra Khibrah R. S | ||
7 | Leaderboard | Design Leaderboard | Gandi Rukmaning Ayu, Mayada Azizah |
Slicing Leaderboard | Gandi Rukmaning Ayu | ||
Consume Leaderboard | Arsyita Devanaya Arianto | ||
8 | Quiz List Page | Design Quiz List Page | Gandi Rukmaning Ayu |
Slicing Quiz List Page | Arsyita Devanaya Arianto, M Reza Muktasib | ||
Consume Quiz List Page | M Reza Muktasib | ||
9 | Quiz Page | Consume Quiz Question | M Reza Muktasib |
Logic Take Quiz | M Reza Muktasib | ||
Logic Result | M Reza Muktasib | ||
10 | Game Page | Desain Layout Game Path | Gandi Rukmaning Ayu |
Slicing Layout Game Path | M Reza Muktasib | ||
Create Logic Path Background | M Reza Muktasib |
Tahap 1: Perencanaan & Analisis (Minggu 1-2)
Tujuan & Sasaran: Output dari tahap ini adalah dokumen yang berisi tujuan dan sasaran implementasi E-TOEFL. Dokumen ini harus jelas, terukur, dapat dicapai, relevan, dan berjangka waktu (SMART).
Mengidentifikasi Target Pengguna: Output dari tahap ini adalah profil target pengguna E-TOEFL. Profil ini harus mencakup informasi demografis, kebutuhan, dan ekspektasi pengguna.
Gamifikasi: Output dari tahap ini adalah desain gamifikasi yang akan diterapkan pada E-TOEFL. Desain ini harus menarik dan memotivasi pengguna untuk menyelesaikan tes.
Rancangan Database: Output dari tahap ini adalah rancangan database yang akan digunakan untuk menyimpan data pengguna, hasil tes, dan informasi lainnya.
Pemilihan Teknologi: Output dari tahap ini adalah pilihan teknologi yang akan digunakan untuk mengembangkan E-TOEFL. Pilihan teknologi ini harus mempertimbangkan faktor-faktor seperti skalabilitas, keamanan, dan kemudahan penggunaan.
Tahap 2: Desain & Prototyping (Minggu 3-4)
Desain UI/UX: Output dari tahap ini adalah desain antarmuka pengguna (UI) dan pengalaman pengguna (UX) E-TOEFL. Desain ini harus intuitif, mudah digunakan, dan estetis.
Pengembangan Konten: Output dari tahap ini adalah konten tes E-TOEFL. Konten ini harus sesuai dengan standar internasional dan relevan dengan kebutuhan target pengguna.
Tahap 3: Pengembangan & Implementasi (Minggu 5-6)
Pengembangan FE Mobile: Output dari tahap ini adalah aplikasi mobile E-TOEFL. Aplikasi ini harus memungkinkan pengguna untuk mengikuti tes dari perangkat mobile mereka.
Pengembangan BE: Output dari tahap ini adalah backend E-TOEFL. Backend ini harus bertanggung jawab untuk memproses data pengguna, hasil tes, dan informasi lainnya.
Containerization Docker: Output dari tahap ini adalah container Docker untuk E-TOEFL. Container ini akan memungkinkan E-TOEFL untuk dijalankan dengan mudah di berbagai lingkungan.
Tahap 4: Testing & Deployment (Minggu 7-8)
Testing Installation: Output dari tahap ini adalah instalasi E-TOEFL di lingkungan produksi. Instalasi ini harus memastikan bahwa E-TOEFL berjalan dengan lancar dan aman.
Functional Testing: Output dari tahap ini adalah pengujian fungsional E-TOEFL. Pengujian ini harus memastikan bahwa semua fitur E-TOEFL berfungsi dengan benar.
Uji Coba: Output dari tahap ini adalah hasil uji coba E-TOEFL dengan pengguna nyata. Uji coba ini harus mengidentifikasi masalah dan bug yang masih ada.
Peluncuran: Output dari tahap ini adalah peluncuran E-TOEFL ke publik. Peluncuran ini harus dilakukan dengan strategi yang tepat untuk memastikan kelancaran dan kesuksesan.
Melalui tahapan pelaksanaan ini, diharapkan aplikasi e-TOEFL dapat membantu mahasiswa PENS dalam mempersiapkan diri menghadapi tes e-TOEFL dengan lebih baik, memberikan pengalaman belajar yang dipersonalisasi, serta membuat tes e-TOEFL lebih mudah diakses. Implementasi teknologi yang tepat serta pengujian yang komprehensif akan memastikan aplikasi berjalan dengan baik dan memenuhi kebutuhan pengguna.
Penerapan teknologi Docker Engine dalam aplikasi E-TOEFL menghadirkan banyak keuntungan. Konsistensi dan efisiensi operasional terjamin, deployment dan skalabilitas menjadi mudah, serta keamanan dan keandalan aplikasi terjaga. Docker Engine mengisolasi aplikasi, membuatnya aman dan terlindungi. Image yang tidak dapat diubah memastikan aplikasi selalu berjalan dalam kondisi yang ideal. Keunggulan ini menjadikan Docker Engine sebagai alat penting dalam memastikan kelancaran dan keandalan E-TOEFL.
Keunggulan utama dari penggunaan Docker dalam proyek ini meliputi:
- Portabilitas: Aplikasi dapat berjalan di berbagai lingkungan tanpa perlu mengubah konfigurasi, sehingga memudahkan proses pengembangan dan deployment.
- Isolasi Lingkungan: Setiap container berjalan terpisah, yang memastikan tidak ada konflik antara layanan yang berbeda dan meningkatkan keamanan
- Skalabilitas: Dengan Docker, menambah atau mengurangi instance container dapat dilakukan dengan mudah sesuai kebutuhan, memungkinkan aplikasi untuk mengelola beban kerja yang dinamis
- Efisiensi: Docker memungkinkan pemanfaatan sumber daya yang lebih baik dan meminimalkan overhead yang biasanya terkait dengan virtualisasi tradisional.