Website for Kontes Terbuka Olimpiade Matematika (Indonesian Online Math Contest).
Branch: production
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
db
lib
public
scripts
test
vendor/assets
.env.default
.gitignore
.rubocop.yml
.scss-lint.yml
.simplecov
.snyk
.travis.yml
Capfile
ENGLISH.md
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
Vagrantfile
config.ru

README.md

kontes-terbuka: Website Kontes Terbuka Olimpiade Matematika

Logo Kontes Terbuka Olimpiade Matematika Click here for English version. Build Status Coverage Status

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.

Setup, dengan Vagrant

Catatan: Setting Vagrant ini menggunakan 2 GB RAM. Jika dirasa terlalu banyak, edit saja di Vagrantfile: ganti vb.memory dari "2048" menjadi "1024" atau berapapun.

Install Vagrant dan VirtualBox:

Vagrant adalah sebuah virtual machine yang digunakan untuk menjalankan app. Keuntungannya, development environmentnya akan stabil di mesin manapun. Vagrant menggunakan VirtualBox untuk menjalankan virtual machinenya.

Install plugin Vagrant: vagrant plugin install vagrant-vbguest

Nyalakan Vagrant: vagrant up

Ini bisa memakan waktu 1 jam, karena Vagrant perlu mensetup segalanya dari awal, termasuk download Ubuntu (!), setup database, Ruby, dan Rails. Bersabarlah. :3

Sambil menunggu, ini adalah file-file yang dibutuhkan:

  • .env, ambil dari .env.default
  • config/database.yml, ambil dari config/database.yml.default
  • public/contest_files/certificates. File-file yang dibutuhkan (untuk membuat sertifikat): barra.png, frame.jpg, ilhan.png, logo.png
  • app/views/contests/certificate.tex.haml
  • config/initializers/line_targets.rb, ambil dari config/initializers/line_targets.rb.default. Ini adalah dictionary yang memetakan nickname ke MID LINEnya.

Setelah itu, masuk ke Vagrant: vagrant ssh

Moment of truth: bin/rails s dan buka localhost:3000 di browser.

Aduh, gagal? vagrant destroy dilanjutkan vagrant up lagi.

Rapikan sistem: (optional, ga penting, kadang bisa rusak malah)

sudo apt-get autoremove
sudo apt upgrade
sudo apt dist-upgrade

Import database

(Daily dump dilakukan dengan pg_dump kontes_terbuka_production yang di-pipe ke split)

Untuk import database dari daily dump yang sudah ada, masukkan file-file yang mau diimport ke folder import di root terlebih dahulu. Kemudian:

chmod u+x scripts/import.sh
./scripts/import.sh

Install LaTeX di Vagrant

LaTeX diinstall oleh TeX Live dengan profile yang sudah disediakan. Installasi ini seminimal mungkin untuk menjalankan berbagai fungsi LaTeX yang diperlukan. Jalankan:

chmod u+x scripts/tex.sh
./scripts/tex.sh

Kontribusi

Ayok fork :D