Sistem tiket untuk Jaringan Angkutan Umum
Ini adalah sistem Tiket untuk Jaringan Transportasi Umum, di mana front end (sisi klien) dikembangkan menggunakan React JS dan back end (sisi server) dikembangkan menggunakan Node JS dan Express JS. Aplikasi web ini menggunakan MongoDB sebagai databasenya, yaitu database berorientasi dokumen lintas platform.
Pengguna dapat mendaftar pada sistem. Email verifikasi akan dikirimkan ke email penumpang. dia perlu mengonfirmasinya sebelum masuk ke sistem. Setelah registrasi, penumpang dapat login ke sistem menggunakan email dan kata sandi, selain itu ia dapat menggunakan login sosial. Admin juga dapat login ke sistem menggunakan login yang sama dengan menginput email dan password yang diberikan oleh admin utama.
Setelah admin utama membuat admin maka admin yang dibuat akan menerima email konfirmasi dan untuk penumpang juga setelah terdaftar akan menerima email verifikasi untuk mengaktifkan akunnya.
Dengan menggunakan profil mereka, mereka dapat melihat riwayat pemesanan mereka. Baik pengguna terdaftar maupun pengguna tidak terdaftar dapat melihat biaya pemesanan reservasi. tetapi hanya pengguna yang masuk yang dapat mengonfirmasi reservasi. Setelah reservasi dikonfirmasi, pengguna akan menerima email yang berisi detail reservasi dan kode QR unik untuk reservasi tersebut. Pengguna dapat memindai kode QR di stasiun kereta dan mendapatkan tiket. Saat naik kereta, mereka perlu memindai kode QR dan di akhir perjalanan, mereka perlu memindai kode QR lagi untuk memverifikasi stasiun tujuan dan stasiun keberangkatan. Jika kode QR dan stasiun keberangkatan sebenarnya tidak cocok, penumpang harus membayar biaya tambahan.
Kami juga telah menerapkan panel admin untuk mengelola rute kereta, detail stasiun kereta, detail kereta, dan pengguna. Bagi pengelola perkeretaapian, mereka dapat menghasilkan laporan keuangan bulanan dan tahunan yang disaring berdasarkan kebijaksanaan kereta api.
Aplikasi ini mengikuti arsitektur Model-View-Controller (MVC). Tampilan diimplementasikan menggunakan ReactJS yang menggunakan pola tampilan komposit. Pengontrol dan model diimplementasikan menggunakan Node.js, database MongoDB NoSQL terhubung ke back end. Front end dan back end berkomunikasi melalui panggilan REST API.
Sebagai peningkatan pada dokumen spesifikasi, kami telah menambahkan fungsi pendaftaran sosial menggunakan Google API. Sebagaimana ditentukan dalam dokumen spesifikasi, pengguna perlu memberikan rinciannya ke sistem kami menggunakan antarmuka pengguna. Selain itu, di sistem kami saat ini kami sedang memvalidasi alamat email penumpang agar ada email yang dikirimkan ke email penumpang. Penumpang perlu mengkonfirmasinya terlebih dahulu. Itu adalah pekerjaan ekstra bagi penumpang. Jadi, kami telah mengurangi tugas tambahan itu dengan menambahkan login sosial. Oleh karena itu pengguna tidak perlu memasukkan email, nama depan, nama belakang, dll secara manual. Mereka dapat dengan mudah login melalui akun Google mereka.
Dalam aplikasi ini pengguna dapat memberikan rincian reservasi dan memeriksa ketersediaan kursi saat ini serta melakukan pemesanan. Aplikasi kami melacak reservasi yang dilakukan sebelumnya dan menampilkan kursi sebenarnya yang tersedia pada saat pengguna akan melakukan reservasi. Saat melakukan pemesanan, pengguna perlu menambahkan lokasi awal dan tujuan, kereta api, kelas, waktu, jumlah tiket, dan tanggal pemesanan. Setelah data dimasukkan, aplikasi mendapatkan pemesanan sebelumnya untuk waktu dan tanggal kereta yang sama dan dikurangi dengan jumlah kursi yang dimiliki kereta.
Meskipun pengguna tidak memiliki akun yang dibuat untuk aplikasi tersebut, mereka dapat melihat ketersediaan kursi. Setelah pengguna perlu melakukan reservasi, mereka harus memiliki akun.
Setelah pengguna melakukan reservasi, aplikasi akan menghasilkan kode QR untuk melacak reservasi. Kemudian email akan dikirimkan ke email pengguna beserta detail reservasi dan kode QR yang dihasilkan, yang akan digunakan untuk mencetak tiket di stasiun kereta. Selain itu, sistem akan mengirimkan pesan teks ke nomor ponsel pengguna yang terdaftar dengan rincian reservasi.
Ini adalah fitur baru yang kami perkenalkan pada aplikasi. Jika pengguna adalah pegawai pemerintah, mereka dapat memperoleh diskon khusus. Setelah pengguna memberikan NIC mereka saat mendaftar, NIC tersebut divalidasi menggunakan layanan web pemerintah untuk memastikan bahwa pengguna berhak mendapatkan diskon. Jika pengguna memenuhi syarat untuk mendapatkan diskon, itu akan ditambahkan ke reservasi.
Pada spesifikasi aplikasi ini tidak memiliki metode pembayaran langsung. Sesuai spesifikasi, pengguna harus mengisi ulang akunnya dan kemudian membayar biaya reservasi. Hal ini mencakup interaksi pengguna tambahan dan keramahan pengguna aplikasi akan menurun.
Oleh karena itu, kami menambahkan metode pembayaran langsung dan opsi bayar tunai. Pengguna dapat memilih opsi apa pun saat melakukan reservasi. Jika pengguna memilih kartu, maka pengguna perlu menambahkan detail kartu yang valid. Atau pengguna dapat memilih bayar tunai dan bayar di stasiun kereta.
Sebagai peningkatan spesifikasi, Pada bagian manajemen pengguna terdapat daftar pengguna, administrator dapat menonaktifkan pengguna tertentu dari daftar tersebut. Setelah menonaktifkan pengguna tidak dapat mengakses akun menggunakan kredensial mereka. Pesan kesalahan akan ditampilkan kepada pengguna. Kami menambahkan fitur ini karena jika ada penumpang yang berperilaku buruk, harus ada cara untuk menonaktifkan pengguna tersebut dari sistem. Dalam spesifikasinya, tidak ada cara untuk menonaktifkan pengguna.
Sebagai peningkatan lain pada spesifikasi, administrator dapat mengedit akun penumpang. seperti email mereka. Pada tampilan pengguna, pengguna tidak dapat mengubah alamat emailnya. namun, jika permintaan khusus datang dari penumpang, administrator dapat memperbarui alamat email penumpang tertentu dan detail lainnya.
Dalam desain aslinya tidak ada fungsi bagi seorang manajer untuk menambah atau menghapus manajer lain ke/dari sistem. Jadi, jika jumlah manajer bertambah atau berkurang dalam perusahaan, tidak ada cara untuk menambah manajer baru atau menghapus manajer yang sudah ada dari sistem.
Jadi sebagai peningkatan spesifikasi, fungsi baru ditambahkan untuk panel admin yang memungkinkan admin menambah atau menghapus admin lain dari sistem. Jadi, ketika seorang admin baru ditambahkan ke sistem, dia akan menerima email ke email masing-masing yang diberikan ketika seorang admin terdaftar yang menyatakan bahwa dia telah ditambahkan sebagai admin ke sistem dan dia harus login ke sistem menggunakan nomor NC-nya. Setelah mendaftar seseorang dapat mengubah kata sandi menggunakan pengaturan akun di panel admin.
Dalam desain aslinya mereka menyebutkan bahwa administrasi transportasi kereta api harus dapat merencanakan jadwal sehingga kami telah menyediakan mereka sebuah antarmuka untuk mengelola rute yang berbeda menggunakan nama rute yang unik dan menetapkan stasiun yang harus dimasukkan dalam rute tersebut dengan pameran yang relevan. Berikut adalah fungsi-fungsi yang tersedia dalam manajemen rute untuk administrasi transportasi kereta api.
Dalam desain aslinya mereka belum menyebutkan bahwa administrasi transportasi kereta api harus mengelola kereta melalui sistem tetapi sebagai fitur tambahan kami juga telah membuat antarmuka untuk mengelola kereta menggunakan nama kereta yang unik dan menetapkan kursi di kelas yang berbeda dari kereta tersebut dan menugaskannya rute dimana kereta akan beroperasi. Berikut adalah fungsi yang tersedia di Manajemen Kereta Api untuk administrasi transportasi kereta api.
Gambar_9: membuat keretaDalam desain aslinya disebutkan bahwa administrasi angkutan kereta api harus mampu menghasilkan laporan dengan memproses rincian reservasi. Jadi kami telah menambahkan fitur untuk menghasilkan laporan bulanan dan tahunan untuk pendapatan yang dihasilkan oleh setiap kereta. Setelah itu kami menerapkan dua tampilan sebagai Pie Chart dan Bar Chart untuk tampilan laporan. Berikut adalah fungsi-fungsi yang tersedia dalam Manajemen Laporan untuk administrasi transportasi kereta api.
Jika Anda mendapatkan error seperti di bawah ini, itu bukan kesalahan layanan back-end. Hal ini terjadi karena beberapa aplikasi penjaga virus memblokir layanan email “nodemailer”.
{ Error: self signed certificate in certificate chain
at TLSSocket . < anonymous > ( _tls_wrap . js : 1105 : 38 )
at emitNone ( events . js : 106 : 13 )
at TLSSocket . emit ( events . js : 208 : 7 )
at TLSSocket . _finishInit ( _tls_wrap . js : 639 : 8 )
at TLSWrap . ssl . onhandshakedone ( _tls_wrap . js : 469 : 38 ) code: 'ESOCKET' ,
command : 'CONN' }
Ini adalah masalah umum pada antivirus Avast, masalah ini tidak akan terjadi di ESET dan Kaspersky.
Saya juga menanyakan masalahnya di https://stackoverflow.com. Mereka juga menyarankan untuk menonaktifkan pelindung virus saat menjalankan layanan back-end.
Jika Anda mendapatkan kesalahan seperti ini, nonaktifkan pelindung virus dan coba lagi. Bagaimanapun, proses reservasi tidak akan dibatalkan meskipun terjadi kesalahan.
Jika Anda mendapatkan error seperti di bawah ini, itu terjadi karena saya menggunakan uji coba gratis Twilio dan nomor ponsel yang dimasukkan harus divalidasi melalui dashboard Twilio sebelum mengirim pesan ke nomor tersebut. Jika Anda memiliki akun Twilio berbayar, harap tambahkan detail akun di file back-end “config.json”.
{ [Error: The number +94777123456 is unverified . Trial accounts cannot send messages to unverified numbers ; verify + 94777123456 at twilio . com / user / account / phonenumbers / verified , or purchase a Twilio number to send messages to unverified numbers .]
status : 400 ,
message : 'The number +94777123456 is unverified. Trial accounts cannot send messages to unverified numbers; verify +94777123456 at twilio.com/user/account/phonenumbers/verified, or purchase a Twilio number to send messages to unverified numbers.' ,
code : 21608 ,
moreInfo : 'https: //www.twilio.com/docs/errors/21608',
detail: undefined }
Saat ini kami telah menerapkan solusi tersebut pada Kereta Api, namun kami berencana untuk memperluas solusi ini agar tersedia juga untuk digunakan di Bus.
Kami memiliki ide untuk menerapkan sistem pelacakan langsung untuk Kereta Api dan Bus sehingga Penumpang dapat mengetahui waktu pasti Bus dan Kereta akan tiba di stasiun sehingga menghemat waktu penumpang.
Saat ini solusi isi ulang tunai yang disebutkan dalam spesifikasi tidak praktis untuk diterapkan.
(C) Guru Tenusha 2019
tenusha.wordpress.com