Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
26c7c0d
Add index.html but can not show quantity
Jun 12, 2014
c604087
Add devise and boostrap
Jun 13, 2014
08c7a71
Add navbar and login/logout
Jun 13, 2014
dd1987b
Add carrierwave
Jun 13, 2014
935969d
Add sinple_form
Jun 13, 2014
d7e9ad1
Todo List
Jun 13, 2014
387f076
git ignore
Jun 13, 2014
e2e0c16
整理縮排
Jun 13, 2014
41e9105
update todo list
Jun 13, 2014
c9022da
用第一周解答來寫第二周課堂內容
Jun 20, 2014
ee22f33
add cart to navbar
Jun 20, 2014
ab8e233
add cart/cart_item
Jun 20, 2014
4bb7f5c
使用者可以將產品加入購物車
Jun 20, 2014
7eee55c
生成訂單
Jun 20, 2014
00f1356
填寫寄送資訊
Jun 20, 2014
5538474
aasm
Jun 20, 2014
e14324a
清空購物車
Jun 20, 2014
3933c1d
remove item(s) from cart
Jun 20, 2014
496ec73
增加購物車商品數量
Jun 20, 2014
6f5583e
增加訂單的商品數量
Jun 20, 2014
9b60758
購物車必須有商品才可以生成訂單
Jun 21, 2014
4dc0446
回家作業3
Jun 21, 2014
3208a9d
回家作業4 可檢視狀態,變更狀態尚未完成
Jun 21, 2014
34878ef
改錯字
Jun 21, 2014
99c5c19
隨訂單減少庫存
Jun 21, 2014
295a6f0
add mailer OrderMailer
Jun 22, 2014
84a3640
instal letter_opener and roadie
Jun 25, 2014
88cad8a
下單成功時寄信給使用者
Jun 25, 2014
d6d38ea
信用卡付款成功後寄信且附上訂單網址
Jun 25, 2014
c2208d1
use Stripe
Jun 25, 2014
9c29bd6
use mailgun
Jun 25, 2014
c7b5841
SettingsLogic
Jun 25, 2014
6326a64
order service object
Jun 26, 2014
d5fb8be
add searchbar
Jun 26, 2014
8d6d209
提示查無項目
Jun 26, 2014
f901f63
charge card object service
Jun 27, 2014
9afb517
用annotate看一下現在資料表
Jun 27, 2014
8545156
增加搜尋結果頁面
Jun 27, 2014
bbd1f20
fixed aasm bug
Jun 27, 2014
8296183
stripe debug
Jun 28, 2014
2521bae
git ignore rvmrc && stripe object debug
Jun 29, 2014
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,10 @@
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp

public/uploads
cofig/database.yml
.DS_Store
/config/application.yml
.rvmrc

17 changes: 17 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ gem 'sdoc', '~> 0.4.0', group: :doc
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring', group: :development


gem "devise"
gem "aasm"
gem 'letter_opener'
gem 'roadie'
gem 'stripe'
gem 'settingslogic'

gem "bootstrap-sass"
gem "simple_form", "3.1.0rc1"
gem 'carrierwave'
gem "mini_magick"
gem 'ransack'

group :development do
gem "annotate"
end
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

Expand Down
77 changes: 73 additions & 4 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
GEM
remote: https://rubygems.org/
specs:
aasm (3.2.1)
actionmailer (4.1.0)
actionpack (= 4.1.0)
actionview (= 4.1.0)
Expand All @@ -27,32 +28,64 @@ GEM
minitest (~> 5.1)
thread_safe (~> 0.1)
tzinfo (~> 1.1)
addressable (2.3.6)
annotate (2.6.5)
activerecord (>= 2.3.0)
rake (>= 0.8.7)
arel (5.0.1.20140414130214)
bcrypt (3.1.7)
bootstrap-sass (3.1.1.1)
sass (~> 3.2)
builder (3.2.2)
carrierwave (0.10.0)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
json (>= 1.7)
mime-types (>= 1.16)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.7.0)
css_parser (1.3.5)
addressable
devise (3.2.4)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
thread_safe (~> 0.1)
warden (~> 1.2.3)
erubis (2.7.0)
execjs (2.2.0)
hike (1.2.3)
i18n (0.6.9)
jbuilder (2.0.8)
jbuilder (2.1.1)
activesupport (>= 3.0.0, < 5)
multi_json (~> 1.2)
jquery-rails (3.1.0)
jquery-rails (3.1.1)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.1)
launchy (2.4.2)
addressable (~> 2.3)
letter_opener (1.2.0)
launchy (~> 2.2)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.25.1)
minitest (5.3.4)
mini_magick (3.7.0)
subexec (~> 0.2.1)
mini_portile (0.6.0)
minitest (5.3.5)
multi_json (1.10.1)
nokogiri (1.6.2.1)
mini_portile (= 0.6.0)
orm_adapter (0.5.0)
polyamorous (1.0.0)
activerecord (>= 3.0)
polyglot (0.3.5)
rack (1.5.2)
rack-test (0.6.2)
Expand All @@ -73,8 +106,21 @@ GEM
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.3.2)
ransack (1.2.3)
actionpack (>= 3.0)
activerecord (>= 3.0)
activesupport (>= 3.0)
i18n
polyamorous (~> 1.0.0)
rdoc (4.1.1)
json (~> 1.4)
rest-client (1.6.7)
mime-types (>= 1.16)
roadie (2.4.3)
actionmailer (> 3.0.0, < 5.0.0)
css_parser (~> 1.3.4)
nokogiri (> 1.5.0)
sprockets
sass (3.2.19)
sass-rails (4.0.3)
railties (>= 4.0.0, < 5.0)
Expand All @@ -84,6 +130,10 @@ GEM
sdoc (0.4.0)
json (~> 1.8)
rdoc (~> 4.0, < 5.0)
settingslogic (2.0.9)
simple_form (3.1.0.rc1)
actionpack (~> 4.0)
activemodel (~> 4.0)
spring (1.1.3)
sprockets (2.11.0)
hike (~> 1.2)
Expand All @@ -95,6 +145,11 @@ GEM
activesupport (>= 3.0)
sprockets (~> 2.8)
sqlite3 (1.3.9)
stripe (1.14.0)
json (~> 1.8.1)
mime-types (~> 1.25)
rest-client (~> 1.4)
subexec (0.2.3)
thor (0.19.1)
thread_safe (0.3.4)
tilt (1.4.1)
Expand All @@ -105,21 +160,35 @@ GEM
coffee-rails
tzinfo (1.2.1)
thread_safe (~> 0.1)
uglifier (2.5.0)
uglifier (2.5.1)
execjs (>= 0.3.0)
json (>= 1.8.0)
warden (1.2.3)
rack (>= 1.0)

PLATFORMS
ruby

DEPENDENCIES
aasm
annotate
bootstrap-sass
carrierwave
coffee-rails (~> 4.0.0)
devise
jbuilder (~> 2.0)
jquery-rails
letter_opener
mini_magick
rails (= 4.1.0)
ransack
roadie
sass-rails (~> 4.0.3)
sdoc (~> 0.4.0)
settingslogic
simple_form (= 3.1.0rc1)
spring
sqlite3
stripe
turbolinks
uglifier (>= 1.3.0)
59 changes: 59 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@

購物:
✔ 身為消費者,我要在前台能夠找到商品並加到購物車 @done (14-06-20 22:15)
✔ 身為消費者,我要在前台能夠將多樣商品加到購物車,並生成一張訂單 @done (14-06-20 22:15)
✔ 身為消費者,當系統生成一張訂單後,我可以填寫寄送資訊,並且用信用卡結帳 @done (14-06-20 22:15)
☐ 身為消費者,當我用信用卡結帳後,我的信箱要能收到一張訂單確認信

Admin 管理訂單:
✔ 身為管理者,可以在後台看訂單,訂單狀態分為未結帳、已結帳、出貨中、已出貨、辦理退貨 @done (14-06-21 12:38)
☐ 身為管理者,我可以在後台對單張訂單做狀態改變
☐ 身為管理者,當我在將商品設為已出貨時,消費者應該收到一張已出貨的通知信

☐ 身為商家,當消費者確定購物結帳後,該商品的庫存必須按照數量減少


Admin:
✔ Admin Should able to see admin panel link in dropdown menu @done (14-06-13 01:59)
Product:
✔ Refine with Product List with table @done (14-06-13 02:14)
✔ should able update image when create product @done (14-06-13 04:09)
☐ should able to upload image after update

其他:
✔ 套 Bootstrap 版 @done (14-06-12 18:33)
✔ Login / Logout using bootstrap nav @done (14-06-12 18:33)
✔ SimpleForm with Bootstrap @done (14-06-13 02:39)
✔ 安裝 Carrierwave @done (14-06-13 03:21)
☐ Search function ( using Ransack )

有空想做的:
☐ 重新整理登入 / 登出畫面
☐ 加入 Facebook Login


--- ✄ -----------------------

身為商家的管理者,我要能夠在後台上架我的東西,並設定能夠販賣:
✔ 管理者必須要有一個後台 @done (14-06-12 17:56)
✔ 後台必須要可以新增產品 @done (14-06-12 17:56)
✔ 產品內容必須要有標題、文字、數量 @done (14-06-12 18:02)
✔ 產品必須要有價格 @done (14-06-13 03:21)
✔ 產品內容必須要有圖片 @done (14-06-13 03:21)

身為商家的管理者,我要能夠在後台設定權限,權限分成管理者以及消費者:
✔ 身為管理者,才可以進入後台 @done (14-06-13 03:39)
✔ 身為管理者,必須要登入且是 admin @done (14-06-13 03:39)
✔ 管理者身份必須要被分為 admin / user @done (14-06-13 03:39)


任何使用者都要能看到首頁:
✔ 首頁應該要能夠看到所有商品 @done (14-06-13 03:39)
✔ 任何使用者都要能看到首頁 @done (14-06-13 03:39)



任何使用者都要能看到產品頁:
✔ 產品頁應該能要看到標題 @done (14-06-13 04:09)
✔ 產品頁應該要能看到敘述 @done (14-06-13 04:09)
✔ 產品頁應該要能看到圖片 @done (14-06-13 04:09)

3 changes: 3 additions & 0 deletions app/assets/javascripts/account/orders.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
3 changes: 3 additions & 0 deletions app/assets/javascripts/admin/orders.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
3 changes: 3 additions & 0 deletions app/assets/javascripts/admin/products.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
5 changes: 3 additions & 2 deletions app/assets/javascripts/application.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require bootstrap/dropdown
//= require bootstrap/alert
//= require orders
31 changes: 31 additions & 0 deletions app/assets/javascripts/card_charges.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
jQuery ($) ->
$("#payment-form").submit (event) ->
$form = $(this)

# Disable the submit button to prevent repeated clicks
$form.find("button").prop "disabled", true
Stripe.createToken $form, stripeResponseHandler

# Prevent the form from submitting with the default action
false

return

stripeResponseHandler = (status, response) ->
$form = $("#payment-form")
if response.error

# Show the errors on the form
$form.find(".payment-errors").text response.error.message
$form.find("button").prop "disabled", false
else

# token contains id, last4, and card type
token = response.id

# Insert the token into the form so it gets submitted to the server
$form.append $("<input type=\"hidden\" name=\"stripeToken\" />").val(token)

# and submit
$form.get(0).submit()
return
3 changes: 3 additions & 0 deletions app/assets/javascripts/cart_items.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
3 changes: 3 additions & 0 deletions app/assets/javascripts/carts.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
31 changes: 31 additions & 0 deletions app/assets/javascripts/orders.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
jQuery ($) ->
$("#payment-form").submit (event) ->
$form = $(this)

# Disable the submit button to prevent repeated clicks
$form.find("button").prop "disabled", true
Stripe.createToken $form, stripeResponseHandler

# Prevent the form from submitting with the default action
false

return

stripeResponseHandler = (status, response) ->
$form = $("#payment-form")
if response.error

# Show the errors on the form
$form.find(".payment-errors").text response.error.message
$form.find("button").prop "disabled", false
else

# token contains id, last4, and card type
token = response.id

# Insert the token into the form so it gets submitted to the server
$form.append $("<input type=\"hidden\" name=\"stripeToken\" />").val(token)

# and submit
$form.get(0).submit()
return
3 changes: 3 additions & 0 deletions app/assets/javascripts/products.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/account/orders.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the account::orders controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/admin/orders.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the admin::orders controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/admin/products.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the admin::products controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
16 changes: 15 additions & 1 deletion app/assets/stylesheets/application.css
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,20 @@
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
* file per style scope.
*
*= require_tree .
*= require_self
*= require bootstrap
*= require products
*/



.group:before, .group:after {
content: "";
display: table;
}
.group:after {
clear: both;
}
.group {
zoom: 1; /* IE6&7 */
}
3 changes: 3 additions & 0 deletions app/assets/stylesheets/card_charges.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the card_charges controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/cart_items.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the cart_items controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
3 changes: 3 additions & 0 deletions app/assets/stylesheets/carts.css.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Place all the styles related to the carts controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
Loading