Product:
<%=@product.name %>
<%=@product.description%>
Ціна: <%=@product.price %> $
<%= link_to "Замовити", add_to_cart_path(@product.id) %>
1 2 3 4 5 6 7 8 9 10 Ім'я файлу: магіст-Данещук-фініш-АПДЕЙТ.docx Розширення: docx Розмір: 1908кб. Дата: 18.11.2021 скачати Пов'язані файли: 2 diplom - гаврилов.doc ВИСНОВКИВ ході виконання даної дипломної роботи магістра було проаналізовано актуальність систем керування підприємством з допомогою інтернет-додатків в сучасному світі та наведено їх переваги для бізнесу. Наразі, офлайн-керування чим далі тим більше відходить на другий план, більшість людей намагаються купляти онлайн, хоча є і скептики. В роботі було розглянуто історію технологій створення веб-додатків та проаналізовано загальні принципи їх побудови, можливості використання систем керування вмістом, які в рази спрощують роботу з веб-додатком, проаналізовані сучасні технології створення. Для розробки власного інтернет-додатку, було обрано мову програмування Ruby on Rails. Завдяки тому, що вона набагато полегшує розробку, розгортання і обслуговування веб-додатків та є однією з популярних мов для створення різного роду веб-додатків. Саме через такі її характеристики наш вибір зупинився саме на ній. В результаті було розроблено інтернет-додаток, який являється не лише зрозумілим користувачеві, а ще й простим у адмініструванні, що відіграє важливу роль для такого роду веб-додатку. Головною ціллю під час виконання було налаштування адмін-панелі таким чином, щоб для її використання не потрібно було особливих знань в галузі програмування, достатньо базового рівня володіння комп’ютером. Підсумовуючи всю роботу, слід підкреслити, що незважаючи на кількість інформації та матеріалу, які були використані при складанні цієї роботи, тема створення та просування електронної системи керування далеко не вичерпана. Навпаки, на першому плані є мінливі технології, які невпинно розвиваються, знання та досвід, опираючись на який потрібно вибрати найбільш відповідні для конкретного проекту способи створення. СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ТА ІНТЕРНЕТ ДЖЕРЕЛ1. Платформа для розробників [Електронний ресурс] – Режим доступу до ресурсу : https://stackoverflow.com; 2. Довідник з HTML/CSS розробки [Електронний ресурс] – Режим доступу до ресурсу : https://www.w3schools.com; 3. Linux Tutorials [Електронний ресурс] – Режим доступу до ресурсу : https://www.howtoforge.com; 4. Платформа для розробників [Електронний ресурс] – Режим доступу до ресурсу : https://github.com; 5. Документація по розробці Ruby [Електронний ресурс] – Режим доступу до ресурсу : https://www.ruby-lang.org/ru/documentatio; 6. Michael Hart l «Ruby on Rails Tutorial (Rails 5)Learn Web Development with Rails» 7. Інформація по Bootstrap [Електронний ресурс] – Режим доступу до ресурсу : https://wikipedia.org/wiki/Bootstrap; 8. Документація по фреймворку Ruby on Rails [Електронний ресурс] – Режим доступу до ресурсу : http://rusrails.ru/; 9. Документація по JavaScript [Електронний ресурс] – Режим доступу до ресурсу : https://javascript.info/; 10. Документація по Ruby on Rails [Електронний ресурс] – Режим доступу до ресурсу : https://web-creator.ru/articles/about_ruby_on_rails; 11. Інформація про SEO [Електронний ресурс] – Режим доступу до ресурсу : https://css.in.ua/article/shcho-treba-znaty-veb-rozrobnyku-pro-seo_13; 12. Інформація про пошукові системи [Електронний ресурс] – Режим доступу до ресурсу : https://uk.wikipedia.org/wiki/; 13. Документація по Active Admin [Електронний ресурс] – Режим доступу до ресурсу https://activeadmin.info/; 14. Платформа для розробників [Електронний ресурс] – Режим доступу до ресурсу : https://habr.com/ru/; 15. Економіка підприємства/ Підручник /За загальною редакцією д. ен. проф. Л. Г. Мельника – Суми: ВТД "Університецька книга" 2004. Економіка підприємства /За загальною редакцією Й. М. Петровича — Київ 2000. Економіка підприємства / За загальною редакцією С. Ф. Покропивного — Львів: Видавництво "Магнолія плюс" / Видавець В. М. Піча, 2004. Управління економічними та соціальними процесами підприємства: Монографія Харків: Вид. ХДЕУ, 2002. Модели адаптивного управление предприятием / Стасюк В. П. Управление предприятием /Дж. Обер-Крис — Сирин 1998г. / Перевод с французкого Окуневич Ф. Р., Сизов А. П. ДОДАТОКorders.rb ActiveAdmin.register Order do menu :priority => 4 actions :index, :show filter :total_price filter :checked_out_at scope :all, :default => true scope :in_progress scope :complete index do column("Order", :sortable => :id) {|order| link_to "##{order.id} ", admin_order_path(order) } column("Date", :checked_out_at) column("Customer", :model, :sortable => :model_id) column("Total") {|order| number_to_currency order.total_price } end show do panel "Invoice" do table_for(order.line_items) do |t| t.column("Product") {|item| auto_link item.product } t.column("Price") {|item| number_to_currency item.price } tr :class => "odd" do td "Total:", :style => "text-align: right;" td number_to_currency(order.total_price) end end end end sidebar :customer_information, :only => :show do attributes_table_for order.model do row("Model") { auto_link order.model } row :email end end end admin_controller.rb class AdminController < ApplicationController before_action :require_admin def require_admin unless current_user.admin? redirect_to root_path end end end cart_controller.rb class CartController < ApplicationController before_action :authenticate_model! before_action :find_cart def add @cart.save if @cart.new_record? session[:cart_id] = @cart.id product = Product.find(params[:id]) LineItem.create! :order => @cart, :product => product, :price => product.price @cart.recalculate_price! flash[:notice] = "Item added to cart!" redirect_to '/cart' end def remove item = @cart.line_items.find(params[:id]) item.destroy @cart.recalculate_price! flash[:notice] = "Item removed from cart" redirect_to '/cart' end def checkout @cart.checkout! session.delete(:cart_id) flash[:notice] = "Thank you for your purchase! We will ship it shortly!" redirect_to "/" end protected def find_cart @cart = session[:cart_id] ? Order.find(session[:cart_id]) : current_model.orders.build (http://current_model.orders.build) end end] categories.rb class CategoriesController < ApplicationController def show @category=Category.find(params[:id]) @products=Product.where(category_id: @category.id) if current_admin_user !=nil @orders=[] @products.each do |product| end else @orders=nil end end def edit @category=Category.find(params[:id]) end def update @category=Category.find(params[:id]) @category.update(cat_params) end private def cat_params params.require(:category).permit(:name,:description,:image) end end products_controller.rb class ProductsController < ApplicationController def show @product=Product.find(params[:id]) @products = Product.all end def edit @product=Product.find(params[:id]) end def update @product=Product.find(params[:id]) @product.update(product_params) end private def product_params params.require(:product).permit(:name,:description,:image) end end admin_user.rb class AdminUser < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable End order.rb class Order < ActiveRecord::Base has_many :line_items, :dependent => :destroy belongs_to :model scope :in_progress, ->{where("orders.checked_out_at IS NULL")} scope :complete, -> {where("orders.checked_out_at IS NOT NULL")} COMPLETE = "complete" IN_PROGRESS = "in_progress" def self.find_with_product(product) return [] unless product complete.joins(:line_items). where(["line_items.product_id = ?", product.id]). order("orders.checked_out_at DESC") end def checkout! self.checked_out_at = Time.now self.save end def recalculate_price! self.total_price = line_items.inject(0.0){|sum, line_item| sum += line_item.price } save! end def display_name ActionController::Base.helpers.number_to_currency(total_price) + " - Order ##{id} (#{model.email})" end end product.rb class Product < ActiveRecord::Base has_attached_file :image, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png" validates_attachment_content_type :image, content_type: /\Aimage\/.*\z/ belongs_to :category end show.html.erb Мій кошик:<% unless @cart.line_items.any? %> Ваш кошик порожній => <%= link_to "Магазин", shop_path %> <% end %>
<%= form_tag checkout_path, :style => "text-align: right" do |f| %> <%= link_to "Продовжити покупку!", root_path %> або <%= submit_tag "Підтвердити!" %> <% end %> edit.html.erb Edit <%= resource_name.to_s.humanize %><%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %> <%= devise_error_messages! %> <%= f.label :nickname %> <%= f.text_field :nickname, autofocus: true %> <%= f.label :email %> <%= f.email_field :email, autofocus: true %> <% if devise_mapping.confirmable? && resource.pending_reconfirmation? %> Currently waiting confirmation for: <%= resource.unconfirmed_email %> <% end %> <%= f.label :password %> (leave blank if you don't want to change it) <%= f.password_field :password, autocomplete: "off" %> <% if @minimum_password_length %> <%= @minimum_password_length %> characters minimum <% end %> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, autocomplete: "off" %> <%= f.label :current_password %> (we need your current password to confirm your changes) <%= f.password_field :current_password, autocomplete: "off" %> <%= f.submit "Update" %> <% end %> Cancel my accountUnhappy? <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete %> <%= link_to "Back", :back %> new.html.erb Sign up<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> <%= devise_error_messages! %> <%= f.label :email %> <%= f.email_field :email, validate: { presence: true } %> <%= f.label :password %> <% if @minimum_password_length %> (<%= @minimum_password_length %> characters minimum) <% end %> <%= f.password_field :password, autocomplete: "off" %> <%= f.label :password_confirmation %> <%= f.password_field :password_confirmation, autocomplete: "off" %> <%= f.submit "Sign up" %> <% end %> <%= render "devise/shared/links" %> show.html.erb Product: <%=@product.name %><%=@product.description%> Ціна: <%=@product.price %> $ <%= link_to "Замовити", add_to_cart_path(@product.id) %> 1 2 3 4 5 6 7 8 9 10 |