วันพฤหัสบดีที่ 29 มิถุนายน พ.ศ. 2560

แก้ไขเพิ่มเติม

จากการ present ครัังล่าสุดได้มีการแนะนำจาก SPN ให้นำหน้าเว็บบางหน้าออกไปเพราะจะทำให้คลิกเยอะเกินไป ทางผมก็ได้ทำการแก้ไขนำเอา แล้วก็ลองใช้ web app และแก้ไขเพิ่มเติมดังนี้


ก็ได้ทำเพิ่มมาสอง commit อันแรกก็จะเป็นปุ่ม back ในหน้าแก้ไข ซึ่งได้พบว่าลืมใส่เอาไว้ เลยไม่สามารถกลับไปที่หน้าหลักได้

commit ถัดไปก็ได้นำหน้า Home ออกไปเพราะว่าจาก คำแนะนำของ SPN ก็ได้เข้าใจว่า มันก็มีหน้า Homepage ที่ไว้สำหรับลิงค์ไปหา App ต่างๆแล้ว หน้านี้ก็คงไม่จำเป็นเพราะจะทำให้เกิดการคลิก ที่เยอะจนเกินไปครับ 

หน้านี้ก็จะหายไป

จะกลายมาเป็นหน้านี้แทน

    ในส่วนนี้ก็จะขอชี้แจ้งเพียงเล็กน้อยก็คือ version control ตอนนี้ใช้ Bitbucket ครับ  https://bitbucket.org/thanut_suwannawong/

โดย commit จะหายไปบางส่วนเนื่องจากมีการนำไฟล์มา push กับ repository ตัวใหม่ แล้วเผลอลบ repository บน cloud อันเก่าไปด้วย โดยลืมคิดเรื่อง commit ไป commit ในส่วนของการสร้าง web app ก็จะหายไปบางส่วน ครับผม และสาเหตุที่ต้องสร้าง repository ก็เพราะว่าต้องการที่จะใช้ในการ pull ลง pythonanywhere ได้ง่าย เลยแยก repository ไว้เก็บเป็น repo ละ app ครับผม

วันศุกร์ที่ 19 พฤษภาคม พ.ศ. 2560

วันอาทิตย์ที่ 30 เมษายน พ.ศ. 2560

Random_food (v.1.0)

    ในตอนนี้ฟังก์ชั่นการทำงานของ app Random_food นั้นสามารถที่จะ
 - สุ่มอาหารได้
 - เพิ่มเมนูที่จะสุ่มอาหารได้
 - ลบเมนูอาหารได้

    ในส่วนนี้จะไม่ขออธิบายโค้ด แต่จะอธิบายการทำงานเฉยๆพร้อมกับรูปประกอบเล็กน้อย


    หน้าแรกก็จะเป็นดังนี้


    ก็สามารถเลือกหมวดอาหารที่จะสุ่มได้ ได้ที่ต้องการแล้วกด สุ่มเลย แต่หากต้องการที่จะแก้ไข หรือ เพิ่มเมนูในคลิกปุ่มด้านล่าง



    เมื่อกดเข้ามาแล้ว ให้กดเลือกหมวดที่จะแก้ไข แล้วก็กด 'Edit'


    ด้านบนจะเลือกเพื่อที่จะลบรายการส่วนด้านล่าง จะเป็นการแอดเมนูอาหารให้กับหมวดๆนั้น

ปัญหาที่พบ
ยังไม่เจอปัญหาร้ายแรง ส่วนใหญ่จะเป็นการลืมนู้นนี้ซะส่วนใหญ่



วันพุธที่ 19 เมษายน พ.ศ. 2560

Random_food : User story

# Mr.Wick want to have dinner
# he goes to restaurant
# he don't know what to eat
# he've heard about new app "Random_food"
# app will random food for the one who doesn't know what to have for that meal
# he goes in to website
# then he see its homepage and
# he sees message "Just click" and a button
# he clicks on it
# he sees many options and he decide to choose "หมวดข้าวจานเดียว"
# the website shows the result, it's "ข้าวกะเพราะหมูกรอบ"
# he feels okay with that then he closes website.

วันอาทิตย์ที่ 16 เมษายน พ.ศ. 2560

AS2 : Random_food

    ในช่วงพักหยุดช่วงสงกราต์ SPN ได้ให้นักศึกษาไปทำงาน AS2 โดยหัวข้อที่จะให้ทำนั้น นศ. เป็นคนกำหนดเอง โดยหลักการคือนำปัญหาที่พบในปัจจุบัน มาทำเป็นโปรแกรมเพื่อทำการช่วยแก้ปัญหานั้นๆ โดยปัญหาของผมนั้นนึกไม่ออกว่าจะทานอะไร จึงเป็นที่มาของ App สุ่มเมนูอาหาร โดยได้ทำงาน ไปส่วนนึงแล้วสามารถที่จะสุ่มอาหารแล้วบอกแคลลอรี่ได้ โดยอาจจะทำเพิ่ม extra เพิ่มเติมทีหลัง แต่ที่หลักๆคิดว่า SPN เน้นไปที่เรื่อง TDD ซะเป็นส่วนใหญ่

    นี้เป็นการ commit ทั้งหมด ในตอนนี้ โดยจะมาอธิบายอีกภายหลังครับผม


วันอาทิตย์ที่ 26 มีนาคม พ.ศ. 2560

Selenium pt.2

    ใน Tutorial บทที่ 1 จะไม่ค่อยมีอะไรมากแค่สอนวิธีการใช้ Django สร้าง project แล้วก็การรัน test อย่างง่ายๆ ซึ่งจะเป็น FT (functional test) เพราะฉะนั้นจะขอข้ามไปบทที่ 2 เลย

    ในบทนี้ก็จะเป็นการสอนการทำ function test ต่อ โดยโค้ดจะมีหน้าตาดังนี้

from selenium import webdriver
import unittest

class NewVisitorTest(unittest.TestCase):  #1

    def setUp(self):  #2
        self.browser = webdriver.Firefox()
        self.browser.implicitly_wait(3)


    def tearDown(self):  #3
        self.browser.quit()

    def test_can_start_a_list_and_retrieve_it_later(self):  #4
        # Edith has heard about a cool new online to-do app. She goes
        # to check out its homepage
        self.browser.get('http://localhost:8000')

        # She notices the page title and header mention to-do lists
        self.assertIn('To-Do', self.browser.title)  #5
        self.fail('Finish the test!')  #6

        # She is invited to enter a to-do item straight away
        #[...rest of comments as before]

if __name__ == '__main__':  #7
    unittest.main(warnings='ignore')  #8

โดย #1 มีการสืบทอด unittest

#2 จะเป็นการ set up โดยจะเปิดเป็น browser firefox

#3 เมื่อ test เสร็จก็จะออก browser ให้อัตโนมัติ

#4 พวก function หรือ method ที่ขึ้นตันด้วย test_ จะเป็นการ test ทั้งสิ้น

#5 โดยใน function นี้จะเรียก url localhost:8000 และก็จะเช็ค โดยใช้คำสั่ง assertIn(a,b) คือจะทำการเช็คว่ามี a อยู่ใน b หรือไม่

#6 เป็นการบังคับ fail แล้วให้ขึ้นข้อความว่า "Finish the test"

#7 & #8 ขอข้ามไปก่อนครับผม