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.

  1. Економіка підприємства /За загальною редакцією Й. М. Петровича — Київ 2000.

  2. Економіка підприємства / За загальною редакцією С. Ф. Покропивного — Львів: Видавництво "Магнолія плюс" / Видавець В. М. Піча, 2004.

  3. Управління економічними та соціальними процесами підприємства: Монографія Харків: Вид. ХДЕУ, 2002.

  4. Модели адаптивного управление предприятием / Стасюк В. П.

  5. Управление предприятием /Дж. Обер-Крис — Сирин 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 %>











<% for line_item in @cart.line_items %>











<% end %>









ПозиціяЦіна
<%= line_item.product.name (http://line_item.product.name) %><%= number_to_currency line_item.price %><%= link_to "Видалити", remove_from_cart_path(line_item), :method => :post %>
Загалом:<%= number_to_currency @cart.total_price %>





<%= 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 account




Unhappy? <%= 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 picture







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

скачати

© Усі права захищені
написати до нас