Quepid menjadikan peningkatan hasil penelusuran aplikasi Anda sebagai proses rekayasa yang dapat diulang dan andal yang dapat dipahami oleh seluruh tim. Ini berkaitan dengan tiga masalah:
Kolaborasi kita buruk. Membuat kemajuan holistik dalam penelusuran memerlukan kolaborasi lintas fungsi yang mendalam. Menembak email atau melacak persyaratan pencarian di spreadsheet tidak akan berhasil.
Pengujian penelusuran itu sulit Perubahan penelusuran bersifat lintas sektoral: sebagian besar perubahan akan menimbulkan masalah. Pengujiannya sulit: Anda tidak dapat menjalankan ratusan penelusuran setelah setiap perubahan relevansi.
Iterasinya lambat Melangkah ke depan tampaknya mustahil. Untuk menghindari kemunduran, kemajuannya lambat. Banyak yang menyerah begitu saja dalam pencarian, sehingga membuat pengguna kehilangan sarana untuk menemukan informasi penting.
Untuk mempelajari lebih lanjut, silakan kunjungi situs web Quepid dan wiki Quepid.
Jika Anda siap untuk langsung terjun, Anda dapat menggunakan layanan Hosted Quepid sekarang atau ikuti langkah-langkah instalasi untuk menyiapkan instance Quepid Anda sendiri.
Di bawah ini adalah informasi terkait pengembangan proyek sumber terbuka Quepid, terutama bagi orang-orang yang tertarik untuk memperluas apa yang dapat dilakukan Quepid!
Penyediaan dari mesin yang sudah dibuat membutuhkan waktu sekitar 3 - 4 menit. Penyediaan dari awal membutuhkan waktu sekitar 20 menit.
Pastikan Anda telah menginstal Docker. Buka di sini https://www.docker.com/community-edition#/download untuk petunjuk instalasi. Dan aplikasi Docker diluncurkan.
Untuk menginstal menggunakan brew ikuti langkah-langkah berikut:
brew cask install docker
brew cask install docker-toolbox
CATATAN: Anda mungkin mendapat peringatan tentang mempercayai Oracle pada percobaan pertama. Buka System Preferences > Security & Privacy, klik tombol Allow Oracle, lalu coba lagi untuk menginstal docker-toolbox
Jalankan skrip pengaturan berbasis Ruby lokal untuk mengatur image Docker Anda:
bin/setup_docker
Jika Anda ingin membuat beberapa kasus yang memiliki 100 dan 1000 kueri, lakukan:
bin/docker r bundle exec thor sample_data:large_data
Ini berguna untuk stress test Quepid! Terutama aplikasi front end!
Terakhir, untuk menjalankan notebook Jupyter, Anda perlu menjalankan:
bin/setup_jupyterlite
Sekarang jalankan Quepid secara lokal di http://localhost:
bin/docker server
Diperlukan waktu hingga satu menit bagi server untuk merespons saat server mengkompilasi semua aset ujung depan pada panggilan pertama.
Kami telah membuat skrip pembantu untuk menjalankan dan mengelola aplikasi melalui buruh pelabuhan yang membungkus perintah docker-compose
. Anda perlu menginstal Ruby. Anda masih dapat menggunakan docker compose
secara langsung, namun untuk hal dasar Anda dapat menggunakan yang berikut ini:
bin/docker server
atau bin/docker s
bin/docker bash
atau bin/docker ba
bin/docker console
atau bin/docker c
bin/docker run [COMMAND]
atau bin/docker r [COMMAND]
bin/docker daemon
atau bin/docker q
bin/docker destroy
atau bin/docker d
bin/docker r rails test:frontend
bin/docker r rails test
Saat menjalankan aplikasi di bawah mandor, Anda hanya akan melihat log permintaan, untuk pencatatan log yang lebih detail, jalankan perintah berikut:
tail -f log/development.log
Ada tiga jenis tes yang dapat Anda jalankan:
Pengujian ini menjalankan pengujian dari sisi Rails (terutama pengontrol dan model API):
bin/docker r rails test
Jalankan satu file pengujian melalui:
bin/docker r rails test test/models/user_test.rb
Atau bahkan satu pengujian dalam file pengujian dengan memasukkan nomor baris!
bin/docker r rails test test/models/user_test.rb:33
Jika Anda perlu mengatur ulang pengaturan basis data pengujian Anda, jalankan:
bin/docker r bin/rake db:drop RAILS_ENV=test
bin/docker r bin/rake db:create RAILS_ENV=test
Lihat log yang dihasilkan selama pengujian set config.log_level = :debug
di test.rb
dan kemudian ikuti file log melalui:
tail -f log/test.log
Untuk memeriksa sintaks JS:
bin/docker r rails test:jshint
Menjalankan tes untuk sisi Angular. Ada dua mode untuk ujian karma:
bin/docker r rails karma:run
bin/docker r bin/rake karma:start
Catatan: Pengujian karma memerlukan aset untuk dikompilasi sebelumnya, sehingga menambah banyak waktu untuk menjalankan pengujian. Jika Anda hanya membuat perubahan pada file pengujian/spesifikasi, disarankan agar Anda menjalankan pengujian dalam mode tontonan ( bin/docker r bin/rake karma:start
). Peringatannya adalah setiap kali Anda membuat perubahan pada file aplikasi, Anda harus memulai ulang prosesnya (atau menggunakan mode single run).
Untuk memeriksa sintaks Ruby:
bin/docker r bundle exec rubocop
Rubocop sering kali dapat melakukan koreksi otomatis terhadap banyak masalah lint yang dialaminya melalui --autocorrect-all
:
bin/docker r bundle exec rubocop --autocorrect-all
Jika ada "Cop" baru sebagaimana mereka menyebut aturannya yang tidak kita sukai, Anda dapat menambahkannya ke file ./rubocop.yml
.
Jika Anda ingin menjalankan semua pengujian sekaligus (sebelum Anda melakukan commit dan push misalnya), jalankan saja dua perintah berikut:
bin/docker r rails test
bin/docker r rails test:frontend
Untuk beberapa alasan kami tidak dapat menjalankan keduanya dengan satu perintah, meskipun kami seharusnya bisa! .
Jika Anda ingin membuat BANYAK kueri untuk pengguna untuk pengujian, jalankan
bin/docker r bin/rake db:seed:large_cases
Anda akan memiliki dua pengguna, [email protected]
dan [email protected]
untuk diuji.
Jika Anda ingin menguji notebook Jupyterlite, atau bekerja dengan case dan buku "asli", jalankan
bin/docker r bundle exec thor sample_data:haystack_party
Anda akan memiliki banyak data pengguna dari buku dan kasus pihak pemeringkat Haystack untuk dikerjakan. Data ini bersumber dari kasus publik https://app.quepid.com/case/6789/try/12?sort=default dan https://app.quepid.com/books/25
Men-debug ruby biasanya tergantung pada situasinya, cara paling sederhana adalah dengan mencetak objek ke STDOUT:
puts object # Prints out the .to_s method of the object
puts object . inspect # Inspects the object and prints it out (includes the attributes)
pp object # Pretty Prints the inspected object (like .inspect but better)
Di aplikasi Rails Anda dapat menggunakan logger untuk keluaran:
Rails . logger object . inspect
Jika itu tidak cukup dan Anda ingin menjalankan debugger, permata debug
disertakan untuk itu. Lihat https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem.
Selain itu, kami memiliki permata derailed
yang membantu Anda memahami masalah memori.
bin/docker r bundle exec derailed bundle:mem
Saat menjalankan aplikasi, Anda dapat men-debug javascript menggunakan alat favorit Anda, seperti yang selalu Anda lakukan.
File javascript akan digabungkan menjadi satu file, menggunakan pipeline aset Rails.
Anda dapat mematikannya dengan mengaktifkan tanda berikut di config/environments/development.rb
:
# config.assets.debug = true
config . assets . debug = false
ke
config . assets . debug = true
# config.assets.debug = false
Karena ada terlalu banyak file Angular JS dalam aplikasi ini, dan dalam mode debug
Rails akan mencoba memuat setiap file secara terpisah, yang memperlambat aplikasi, dan menjadi sangat mengganggu dalam mode pengembangan untuk menunggu skrip dimuat. Itu sebabnya ini dinonaktifkan secara default.
PS: Jangan lupa restart server saat mengubah konfigurasi.
Harap perhatikan juga bahwa file secure.js
, application.js
, dan admin.js
digunakan untuk memuat semua dependensi JavaScript dan CSS melalui pipeline Rails Asset. Jika Anda men-debug Bootstrap, Anda memerlukan file individual. Jadi ganti //= require sprockets
dengan //= require bootstrap-sprockets
.
docker-compose.override.yml.example
dapat disalin ke docker-compose.override.yml
dan menggunakannya untuk mengganti variabel lingkungan atau bekerja dengan salinan lokal perpustakaan JS splainer-search selama pengembangan yang ditentukan dalam docker-compose.yml
. Contoh disertakan. Cukup perbarui jalur ke splainer-search
dengan pembayaran lokal Anda! https://docs.docker.com/compose/extends/
Aplikasi ini memiliki dua cara menjalankan skrip: rake
& thor
.
Rake sangat bagus untuk tugas-tugas sederhana yang bergantung pada lingkungan aplikasi, dan tugas-tugas default yang datang secara default dengan Rails.
Sedangkan Thor adalah alat yang lebih ampuh untuk menulis skrip yang menerima argumen jauh lebih baik daripada Rake.
Untuk melihat tugas rake apa yang tersedia, jalankan:
bin/docker r bin/rake -T
Catatan : penggunaan bin/rake
memastikan bahwa versi rake
yang berjalan adalah versi yang dikunci pada Gemfile.lock
aplikasi (untuk menghindari konflik dengan versi lain yang mungkin diinstal pada sistem Anda). Ini setara dengan bundle exec rake
.
Tugas menyapu umum yang mungkin Anda gunakan:
# db
bin/docker r bin/rake db:create
bin/docker r bin/rake db:drop
bin/docker r bin/rake db:migrate
bin/docker r bin/rake db:rollback
bin/docker r bin/rake db:schema:load
bin/docker r bin/rake db:seed
bin/docker r bin/rake db:setup
# show routes
bin/docker r bin/rails routes
# tests
bin/docker r rails test
bin/docker r rails test:frontend
bin/docker r bin/rake test:jshint
Lihat tugas yang tersedia:
bin/docker r bundle exec thor list
Dokumentasi tambahan ada di Dokumentasi Pengoperasian.
Anda perlu mengonfigurasi Elasticsearch untuk menerima permintaan dari browser menggunakan CORS. Untuk mengaktifkan CORS, tambahkan yang berikut ke file konfigurasi elasticsearch. Biasanya, file ini terletak di dekat elasticsearch yang dapat dieksekusi di config/elasticsearch.yml
.
http.cors :
enabled : true
allow-origin : /https?://localhost(:[0-9]+)?/
Lihat detail selengkapnya di wiki di https://github.com/o19s/quepid/wiki/Troubleshooting-Elasticsearch-and-Quepid
Biasanya Anda cukup melakukan:
bin/docker r yarn add foobar
atau
bin/docker r yarn upgrade foobar
yang akan menginstal/meningkatkan modul Node, dan kemudian menyimpan ketergantungan itu ke package.json
.
Kemudian periksa file package.json
dan yarn.lock
yang diperbarui.
Gunakan bin/docker r yarn outdated
untuk melihat paket apa yang dapat Anda perbarui!!!!
Biasanya Anda cukup melakukan:
bin/docker r bundle add foobar
yang akan menginstal Permata baru, dan kemudian menyimpan ketergantungan itu ke Gemfile
.
Anda juga dapat mengupgrade permata yang tidak memiliki versi spesifik di Gemfile
melalui:
bin/docker r bundle update foobar
Anda dapat menghapus permata melalui:
bin/docker r bundle remove foobar
Kemudian periksa file Gemfile
dan Gemfile.lock
yang telah diperbarui. Untuk ukuran yang baik, jalankan bin/setup_docker
.
Untuk memahami jika Anda memiliki permata yang sudah kedaluwarsa:
bin/docker r bundle outdated --groups
Batalkan komentar di docker-compose.yml
pengaturan - RAILS_RELATIVE_URL_ROOT=/quepid-app
lalu buka http://localhost:3000/quepid-app.
Langkah-langkah tersebut akan membuat Anda siap dan menjalankan versi produksi Quepid secara lokal (versus versi pengembang).
docker build -t o19s/quepid -f Dockerfile.prod .
Ini bisa terjadi kesalahan saat pertama kali dijalankan. Coba lagi jika itu terjadi
docker tag o19s/quepid o19s/quepid:$QUEPID_VERSION
docker compose up -d mysql
docker compose run --rm app bin/rake db:setup
Perbarui file docker-compose.prod.yml Anda untuk menggunakan gambar Anda dengan memperbarui versi gambar di image: o19s/quepid:10.0.0
Jalankan aplikasi sebagai Daemon (-d) atau sebagai container aktif
docker compose up [-d]
Ada direktori .ssl
yang berisi file kunci dan sertifikat yang digunakan untuk SSL. Ini adalah sertifikat yang dibuat sendiri dan ditandatangani sendiri untuk digunakan dalam pengembangan SAJA!
Kunci/sertifikat dibuat menggunakan perintah berikut:
openssl req -new -newkey rsa:2048 -sha1 -days 365 -nodes -x509 -keyout .ssl/localhost.key -out .ssl/localhost.crt
PS: Tidak perlu dilakukan lagi.
File docker-compose.yml
berisi proksi terbalik nginx yang menggunakan sertifikat ini. Anda dapat mengakses Quepid di https://localhost atau http://localhost. (Quepid akan tetap tersedia melalui http pada port 80.)
Tambahkan dokumen pengembang di sini!
Penyebaran pengembang kredensial konsol Admin Keycloak adalah admin
dan password
.
Berikut adalah contoh menghasilkan migrasi:
bin/docker r bundle exec bin/rails g migration FixCuratorVariablesTriesForeignKeyName
Diikuti oleh bin/docker r bundle exec rake db:migrate
Anda juga harus memperbarui data anotasi skema dengan menjalankan bin/docker r bundle exec annotations
saat Anda mengubah skema.
Ubah file Gemfile
lalu jalankan:
bin/docker r bundle install
Anda akan melihat Gemfile.lock
yang diperbarui, lanjutkan dan periksa dan Gemfile
ke Git.
Kami menggunakan Angular 1 untuk aplikasi interaktif inti, dan sebagai bagian dari itu kami menggunakan paket angular-ui-bootstrap
untuk semua komponen UI kami. Paket ini terikat dengan Bootstrap versi 3.
Kami mengimpor CSS Bootstrap 3 langsung melalui file bootstrap3.css
.
Untuk Quepid lainnya, kami menggunakan Bootstrap 5! Itu disertakan melalui package.json
menggunakan NPM. Lihat admin.js
untuk baris //= require bootstrap/dist/js/bootstrap.bundle
.
Saat ini kami menggunakan Rails Sprockets untuk mengkompilasi semuanya, tetapi kami memiliki impian untuk pindah ke Propshaft, dan mungkin js-bundling.
Bentuk font yang paling menarik berasal dari FontSquirrel, dan .ttf diubah menjadi format .woff2.
Jalankan ./bin/setup_jupyterlite
untuk memperbarui file arsip ./jupyterlite/notebooks.gz
. Ini juga mengatur file statis di direktori ./public/notebooks
. Namun, agar kami tidak memeriksa ratusan file, kami mengabaikan direktori tersebut dari Github. Pada waktu asset:precompile
kami membongkar file ./jupyterlite/notebooks.gz
sebagai gantinya. Ini berfungsi pada Heroku dan image produksi Docker.
Untuk memperbarui versi Jupyterlite, edit Dockerfile.dev
dan Dockerfile.prod
dan perbarui versi pip install
.
Pertanyaan? Apakah jupyterlite berfungsi di localhost????
Lihat postingan blog yang bagus ini: https://keygen.sh/blog/how-to-implement-api-key-authentication-in-rails-without-devise/.
Ada saluran penerapan kode ke situs http://quepid-staging.herokuapp.com yang dijalankan jika komitmen berhasil ke main
.
Jika Anda memiliki migrasi yang tertunda, Anda harus menjalankannya melalui:
heroku run bin/rake db:migrate -a quepid-staging
heroku restart -a quepid-staging
Akun berikut dibuat melalui proses bin/setup_docker
. Semuanya mengikuti format berikut:
email: quepid+[type]@o19s.com
password: password
di mana tipenya adalah salah satu dari berikut ini:
admin
: Akun adminrealisticActivity
: Pengguna dengan berbagai kasus yang mendemonstrasikan Quepid, termasuk kasus demo dan buku Haystack Rating Party dan merupakan anggota tim 'OSC'.100sOfQueries
: Pengguna dengan kasus Solr yang memiliki 100 kueri (biasanya dinonaktifkan)1000sOfQueries
: Pengguna dengan kasus Solr yang memiliki 1000 kueri (biasanya dinonaktifkan)oscOwner
: Pengguna yang memiliki tim 'OSC'oscMember
: Pengguna yang merupakan anggota tim 'OSC'Lihat file Pemetaan Data untuk informasi lebih lanjut tentang struktur data aplikasi.
Bangun kembali ERD melalui bin/docker r bundle exec rake erd:image
Lihat file Struktur Aplikasi untuk informasi lebih lanjut tentang bagaimana Quepid disusun.
Lihat file Dokumentasi Pengoperasian untuk informasi lebih lanjut bagaimana Quepid dapat dioperasikan dan dikonfigurasi untuk perusahaan Anda.
Quepid tidak akan mungkin terwujud tanpa kontribusi dari banyak individu dan organisasi.
Secara khusus kami ingin mengucapkan terima kasih kepada Erik Bugge dan orang-orang di Kobler yang mendanai fitur Satu-satunya Nilai yang dirilis di Quepid 6.4.0.
Quepid tidak selalu open source! Periksa kredit untuk daftar kontributor proyek.
Jika Anda ingin mendanai pengembangan fitur baru untuk Quepid, hubungi kami!