Membuat Aplikasi POS dengan Ruby on Rails 4 part 1

Pengelolaan keuangan adalah salah satu hal pokok yang harus diperhatikan oleh usaha kecil dan menengah (UKM). Untuk membantu memantau kondisi bisnis, kita membutuhkan software Point of Sales ( POS) sederhana yang dapat membantu mencatat aktivitas transaksi. Berikut beberapa fitur yang akan di bangun :
  1. Management Barang
  2. Management Penjualan
  3. Management User + Login

Persiapan

Pastikan di komputermu sudah terinstall:

  1. Ruby versi 2.x
  2. Rails versi 4.x
  3. Database Mysql 
  4. Mozila Firefox   
Kemudian berikut adalah Gems yang akan kita gunakan:
  1. Devise
  2. Cancan
  3. Nested Form
  4. Public Activity

Buat Project Baru 

  1. Membuat project baru dengan mysql
  2. $ rails new sales -d mysql 
    $ cd sales
  3. Edit gemfile tambahkan code baris berikut
  4.   gem 'devise'   
    gem "cancancan"
    gem "nested_form"
    gem 'public_activity'
    $ bundle install

Memasang Bootstraps

  1. Buka url http://getbootstrap.com/getting-started/#download
  2. Setelah download copy dan paste isinya ke dalam folder sales/app/assets
  3. Semua file di folder  css copy dan paste  di sale/app/stylesheets
  4. Semua file di folder js copy dan paste di sale/app/javascripts

Home

  1. kita buat controller dan foldernya view lewat comand
  2. rails g controller home 
  3. Buat file index di view/home
  4. Isi dengan <p>welcome</p>
  5. Edit config/routes.rb tambahkan kode berikut
  6.  root to: 'home#index'  

Memasang Devise

OK sampai sini bootstrap dan homenya sudah dibuat, sekarang kita akan buat login untuk user, berikut langkahnya
  1. Generate devise 
  2. $ rake db:create
    $ rails generate devise:install
    $ rails generate devise User
    $ rails generate model role name:string
    $ rails g migration addRoleIdToUser role_id:integer
  3. Setelah selesai lakukan migration database
  4. $ rake db:migrate
  5. Masuk ke folder app -> models kemudian Edit file model user dan role.rb
     class User < ActiveRecord::Base  
    belongs_to :role
    devise :database_authenticatable, :registerable,
    :recoverable, :rememberable, :trackable, :validatable
    end
  6.   
    class Role < ActiveRecord::Base
    has_many :users
    end
  7. Edit seed.rb di folder db
  8.  r1 = Role.create(:name => 'user')  
    r2 = Role.create(:name => 'admin')
    us1 = User.create(:email => 'user@gmail.com' , :password => 'q1w2e3r4', :role_id => r1.id)
    us2 = User.create(:email => 'admin@gmail.com' , :password => 'q1w2e3r4', :role_id => r2.id)
  9. Untuk memasukan data jalankan perintah berikut
    $ rake db:seed
  10. Untuk membuat user yang sign_up defautlnya adalah role user tambahkan code berikut di model user.rb
  11.   before_create :set_default_role  
    private
    def set_default_role
    self.role ||= Role.find_by_name('user')
    end
  12. Untuk menjalankan server ketikan code berikut di terminal 
  13. $ rails s
  14. Buka browser ketikan http://localhost:3000/users/sign_in maka akan tampil halaman seperti berikut 

Layout

Kita akan membuat desain utama aplikasi ini ,cukup mudah karena desainnya sangat sederhana
  1. Edit file application.html.erb
  2.   <!DOCTYPE html>   
    <html>
    <head>
    <title>Sale</title>
    <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
    <%= csrf_meta_tags %>
    </head>
    <body>
    <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container">
    <div class="navbar-header">
    <a class="navbar-brand" href="#">Sale</a>
    </div>
    <ul class="nav navbar-nav">
    </ul>
    <ul class="nav navbar-nav navbar-right">
    <% if user_signed_in? %>
    <li><%= link_to current_user.email, edit_user_registration_path %></li>
    <li><%= link_to "Log Out" , destroy_user_session_path, method: :delete %></li>
    <% else %>
    <li><%= link_to "Sign In", user_session_path %></li>
    <li><%= link_to "Register", new_user_registration_path %></li>
    <% end %>
    </ul>
    </div>
    </div>
    <div class="container">
    <% flash.each do |type, message| %>
    <div class="alert <%= flash_class type %> alert-dismissable">
    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
    <p><%= message %></p>
    </div>
    <% end %>
    <%= yield %>
    </div>
    </body>
    </html>
  3. Edit application_helper.rb
  4.  def flash_class(type)  
    case type
    when :alert
    "alert-danger"
    when :notice
    "alert-success"
    else
    "" end
    end
  5. Edit file aplication.css di folder app/assets/stylesheet
  6.  body {  
    padding-top: 70px;
    }
  7. Layoutnya nanti akan seperti gambar berikut

Generate Model dan Controller

Kita akan generate model dan controller, tujuannya agar tidak buat file satu persatu  
  1. Scaffold untuk generate view model dan controller  
  2. $ rails g scaffold product code:string name:string price:decimal user:belongs_to
    $ rails g scaffold sale name:string total:decimal user:belongs_to
  3. Model untuk generate model saja
  4. $ rails g model item product:belongs_to sale:belongs_to quantity:decimal total:decimal
  5.  Setelah selesai databasenya di migrate atau di reset ulang 
  6. $ rake db:migrate
  7. Masuk folder model pada file product tambahkan code berikut
  8.  has_many :items  
  9. Masuk folder model pada file sale tambahkan code berikut
  10.  has_many :items  
  11. Edit form partial _form.html.erb di folder view/products dan view/sales hapus baris code berikut
  12.   <div class="field">  
    <%= f.label :user_id %><br>
    <%= f.text_field :user_id %>
    </div>
  13. Edit file index.html.erb di folder view/products hapus baris code berikut
  14.  <th>User</th>  
     <td><%= product.user %></td>  
  15. Edit file index.html.erb di folder view/sales hapus baris code berikut
  16.  <th>User</th>  
     <td><%= sale.user %></td>  
  17. Untuk memasang tema bootstrap ke dalam tabel edit index.html.erb di folder products and sales perhatikan baris <table> dan tambahkan code berikut
  18.  <table class="table table-striped">  
  19. Edit aplication.html.erb di folder layout tambahkan baris code setelah tag <ul class="nav navbar-nav"> </ul>
  20.  <li><%= link_to "All Sales", sales_path %></li>  
    <li><%= link_to "All Products", products_path %></li>
  21. View tablenya akan seperti berikut


Untuk selanjutnya silahkan cek link ini: Membuat Aplikasi POS dengan Ruby on Rails 4 Part 2

    Comments

    Popular posts from this blog

    Seri Belajar Ruby on Rails Bagian 9 - Membuat Autentikasi dengan Devise

    Seri Belajar Ruby on Rails Bagian 6 - Membuat Table & Dummy Data

    Seri Belajar Ruby on Rails Bagian 8 - Membuat Validasi, Relasi dan Scope