Click here for English version.
Repo ini berisi kode untuk website Kontes Terbuka Olimpiade Matematika yang bisa diakses di https://ktom-tomi.or.id. Website ini dibuat oleh dua anggota KTO Matematika:
- Herbert Ilhan Tanujaya (@donjar)
- Jonathan Mulyawan Woenardi (@woenardi)
Website ini awalnya dibuat dengan tujuan pembelajaran. Namun, website ini terus berkembang hingga menjadi cukup besar.
Catatan: panduan di bawah ini dibuat untuk Ubuntu 20.04 LTS. Untuk sistem operasi lainnya, pengaturan awal akan sedikit berbeda. VirtualBox bisa digunakan untuk menjalankan Ubuntu di dalam sistem operasi lain.
Mohon unduh dan install paket-paket di bawah ini sebelum memulai:
software-properties-common, paket ini dipakai oleh beberapa paket di bawahpostgresqldanlibpq-devuntuk databasetexliveuntuk menjalankan berbagai fungsi LaTeX yang diperlukan. Kami menyarankan untuk memasangtexlive-fullyang mencakup keseluruhan texlive; kalau ruang disk Anda terbatas,texlive-basecukup memadai untuk sebagian besar pengolahan LaTeX yang diperlukannodejssebagai runtime JavaScript
Anda bisa menggunakan apt untuk memasang paket-paket di atas dengan perintah
sudo apt install <nama paket>Untuk empat paket di atas:
sudo apt update
sudo apt install software-properties-common postgresql libpq-dev texlive nodejsTerakhir dites: 2025-12-15 (Ubuntu 20.04)
- Pastikan bahwa paket-paket di atas telah di-install
- Unduh semua file dalam repositori ini, menggunakan
git cloneatau dengan cara lainnya - Website ini menggunakan
ruby, dan untuk memudahkan manajemen versirubyyang digunakan, Anda boleh memakairvmataurbenv. Kami akan menunjukkan cara setuprvmdalam panduan ini, diadaptasi dari panduan instalasi untuk Ubuntu:- Tambah PPA ke dalam komputer, dan install
rvm:sudo apt-add-repository -y ppa:rael-gc/rvm sudo apt-get update sudo apt-get install rvm
- Masukkan user Anda ke dalam grup rvm (ganti
<username>dengan nama user Anda):sudo usermod -a -G rvm <username>
- Ubah terminal untuk menjalankan perintah sebagai login shell. Untuk
mengubah aturan ini secara manual, jalankan perintah
/bin/bash --login; jika Anda menggunakan terminal GNOME, Anda bisa mengubah peraturan ini dari setting terminal:- Klik menu hamburger (3 garis horizontal) dalam terminal.
- Klik Preferences
- Cari profil Anda di sidebar, di bawah Profile
- Pilih tab Command
- Centang Run command as login shell
- Reboot komputer Anda.
- Nyalakan gemset lokal dengan perintah
rvm user gemsets
- Sekarang Anda bisa meng-install
ruby. Website KTOM sekarang menggunakan ruby versi 2.5.0 (cek file Gemfile jika kurang yakin - versi ruby yang digunakan akan tertulis dalam file tersebut), dan untuk meng-install versi 2.5.0, gunakan perintahJikarvm install 2.5.0
rubysudah tersedia dalam komputer Anda sebelum instalasi ini, Anda dapat mengubah versi default dengan perintahdiikuti dengan menutup dan membuka kembali terminal.rvm --default use 2.5.0
- Tambah PPA ke dalam komputer, dan install
- Cek bahwa versi
rubyyang telah di-install benar (versi 2.5.0) denganruby --version
- Dari dalam direktori repositori yang telah diunduh, jalankan
untuk meng-install gem-gem yang dibutuhkan.
bundle install
- Setelah gem-gem yang diperlukan tersedia, Anda harus membuat dan memodifikasi
database untuk website ini:
- Buat file bernama
database.ymldalam folderconfig. Anda bisa melihat filedatabase.yml.defaultsebagai contoh. - Buat user di postgres dengan username dan kata sandi yang tertera di
database.yml. Untuk petunjuk di bawah, username yang digunakan adalahubuntu, dan kata sandi yang digunakan adalahpassword- Jalankan perintah
sudo -u postgres psqluntuk masuk kedalam shell postgres - Buat user baru:
create user ubuntu with encrypted password 'password'; - Jadikan user tersebut sebagai superuser:
alter user "ubuntu" with superuser; - Keluar dari shell postgres dengan perintah
\q
- Jalankan perintah
- Buat database dengan perintah
bundle exec rake db:setup - Jalankan semua migrasi dengan
bundle exec rake db:migrate
- Buat file bernama
- Buat
.envfile di root directory dan pindahkan isi dari.env.defaultkedalam.env. Setiap variabel di dalam.envdiisi sesuai dengan yang dibutuhkan. - Setup awal untuk menjalankan server selesai. Untuk menjalankan server lokal, gunakan
bundle exec rails s - Sekarang, Anda bisa membuat admin di dalam website yang telah dibuat:
- Dalam browser, buka alamat website versi lokal (default:
0.0.0.0:3000) - Buat akun seperti biasa
- Anda tidak akan mendapat email, dan harus mengaktivasi akun secara manual.
Buka konsol rails (perintah:
bundle exec rails c) dan jalankanUser.first.enable - Untuk membuat akun tersebut sebagai admin, jalankan dua perintah di bawah ini:
User.first.add_role :panitia User.first.add_role :admin
- Dalam browser, buka alamat website versi lokal (default:
Selamat, Anda telah selesai melakukan setup awal.
Ayok fork :D