Tahun lalu, tim kami beruntung dapat mengambil bagian dalam pengembangan perangkat lunak untuk proyek yang signifikan secara sosial - sebuah sistem untuk memasukkan data arsip dari komisaris militer Wilayah Khabarovsk selama Perang Patriotik Besar. Singkatnya, ketika dia dipanggil, ke mana dia pergi dan informasi terkait lainnya - untuk mendigitalkan dan memberikan siapa pun kesempatan untuk mencari data ini. Pada tahun 2018, Pusat Teknologi Sosial Far Eastern, dengan dukungan Dana Hibah Kepresidenan, mengimplementasikan proyek “Remember Everyone”. Dan kami telah mengembangkan aplikasi pada produk open source kami, IONDV. Kerangka kerja Aplikasi terakhir sekarang tersedia di bawah lisensi GPLv3.
Kami berbagi keputusan dan pengalaman kami dalam proyek ini.

Spoiler, beberapa detail teknis.
IONDV. Kerangka kerjaIONDV. Framework -
framework open source pada node.js untuk membuat aplikasi web berbasis metadata tingkat tinggi, yang tidak memerlukan keterampilan pemrograman yang serius.
Dasar dari fungsionalitas aplikasi adalah data registry - modul Register. Ini adalah modul kunci yang dirancang khusus untuk bekerja dengan data berdasarkan pada struktur metadata - termasuk yang untuk mengelola proyek, program, acara, dll. Proyek ini juga menggunakan modul portal untuk menampilkan templat data yang sewenang-wenang - ini mengimplementasikan bagian depan registri file arsip.
MongoDb digunakan untuk DBMS - ia juga menyimpan pengaturan aplikasi, metadata, dan data itu sendiri.
Selama pengembangan, kami membuat aplikasi web, dengan arsip Perang nama perusahaan, untuk menyimpan, mengelompokkan, dan mendemonstrasikan dokumen arsip tentang Perang Patriotik Hebat. Kami bekerja secara aktif dari Januari hingga Maret 2018 dan dalam prosesnya kami memperbaiki bug kerangka kerja - karena kami memiliki pengalaman pertama dengan begitu banyak pemindaian.
Hasil proyek "Ingat Semua Orang" adalah data register dengan catatan 25k (sekarang 35k). Pada bulan April tahun ini, Far Eastern Center for Social Technologies menerbitkan kode sumber aplikasi di bawah lisensi GPLv3 di
GitHub . Dalam repositori Anda akan menemukan metadata, templat desain, dan utilitas khusus - semua yang membentuk dasar aplikasi untuk IONDV. Kerangka kerja Kerangka itu sendiri didistribusikan di bawah lisensi Apache 2.0 dan juga tersedia di
GitHub , bersama dengan modul yang sudah jadi.
Juga digunakan
aplikasi demo . Uji permintaan untuk mencari "Ivanov Ivan." Anda dapat melihat kantor belakang di
sini . Login - demo, kata sandi - demo ion. Omong-omong, Anda bisa mendapatkan
gambar buruh pelabuhan yang sudah jadi .
Detail Proyek
Tujuan dari proyek "Ingat Semua Orang" adalah untuk melestarikan memori orang-orang dari masa Perang Dunia Kedua dengan menyediakan akses gratis ke dokumen-dokumen tahun-tahun itu. Maria Stepko, direktur Far Eastern Center for Social Technologies pernah berkata: "Pelestarian dan analisis data di masa lalu adalah tugas yang diperlukan untuk memodelkan masa depan."
Relawan dari proyek ini mendigitalkan 10 ribu halaman dokumen dan memasukkan data ke dalam daftar Far Easterners, peserta dalam Perang Patriotik Hebat. Dalam database Anda dapat menemukan informasi tentang pangkat yang dipanggil, tentang bagian, tanggal, penyebab kematian dan tempat pemakaman. Selain itu, sumber rekaman digital tersedia yang menunjukkan jumlah inventaris, kasing, lembar sesuai dengan penomoran arsip negara. Contoh pemindaian dokumen.

Kami sangat berterima kasih atas kesempatan ini dan atas umpan balik atas pekerjaan kami:
“Solusi teknis yang dibuat oleh perusahaan pengembangan Timur Jauh IONDV masuk ke distribusi gratis. Sistem ini cocok untuk LSM, warga inisiatif, museum, arsip. Ini akan membantu menghemat sumber daya dan melakukan perbuatan baik untuk orang-orang. Pemrogram di wilayah kami tahu apa itu "perangkat lunak bebas". Bersama-sama, kita akan membuat perangkat lunak ini lebih fungsional.
Penempatan dan Hasil Uji
Kemarin kami selesai mentransfer proyek ke Yandex. Cloud dibuat tersedia di alamat baru
dvarchive.ru .
Pada saat yang sama, kami melakukan stress testing, yang juga ingin kami bagikan.
Sumber daya server minimal, karena dibayar oleh perusahaan penggalangan dana: 2 CPU dengan prioritas 20% dan memori 2Gb.
Reaksi khas terhadap beban kecil terlihat seperti ini - 2% dari beban CPU dan 36% dari beban memori.
Kami menguji permintaan pengguna tanpa file statis, hanya permintaan data dan kami menyukai hasilnya.

Ternyata aplikasi dalam wadah buruh pelabuhan memproses 400 permintaan per detik (tanpa statika). Dan pada saat yang sama hanya memuat satu prosesor, yang khas ketika memulai hanya satu instance dari node.js. Yang kedua menangani sisa tugas (DBMS, nginx, pemantauan).
Bahkan tidak perlu pengelompokan. Ada margin besar untuk beban kerja proyek sosial yang biasa, meskipun sumber daya minimum.
Ringkasan
Bagi kami, ini adalah pengalaman pertama berpartisipasi dalam pekerjaan pada sebuah proyek yang berkaitan dengan memori Perang Patriotik Besar dan Timur Jauh.
Selain itu, kami bangga bahwa hasil ini, dikembangkan di Timur Jauh, wilayah yang tidak terlalu aktif di bidang TI, dapat digunakan oleh siapa saja yang terlibat dalam proyek-proyek tersebut, terutama sesuai dengan model open source.