Sunday, May 6, 2018

AUTO SEND TO EMAIL

** จะใช้ได้เมื่อเป็น USER ที่สมัครสมาชิกเท่านั้น **

         ได้ใช้ CronJob ในการจับเวลา ทุกๆ 5 นาทีจะทำการเช็ค ว่ามี Email ที่จะส่งหรือไม่ ถ้ามีจะทำการส่งวันที่แข่ง เลาแข่ง ชื่อทีม จะส่งไปให้ใน email (จะส่งก่อนเวลาแข่ง 1 ชม.) 
         ได้ใช้ Nodemailer ในการส่ง Email 


จากรูป จะเห็นว่ามีการติ้กถูกที่หลังการแข็งขัน

         เมื่อถึงเวลาที่กำหนด(ก่อนการแข่งขัน หรือ น้อยกว่า 1 ชม.) จะเห็น Email แจ้งเตือนในกล่องข้อความ

จากรูป จะเห็นว่ามีการ Email ของ Esport-Kmutnb ส่งมา และ เวลาที่ได้รับ


จากรูป เมื่อส่งเสร็จแล้วกลับไปดูหน้าเพจ User จะไม่มีการติ้กถูก ที่ช่อง Match ที่ส่ง Email ไปแล้ว


จากรูป เมื่อเวลาแข่งเริ่ม User จะไม่เห็น Match ที่กำลังแข่งบน เว็บเพจ

References
             cron-job : https://www.npmjs.com/package/cron
             nodemailer : https://nodemailer.com/about/
             adminMode hetoku : https://desolate-sierra-83623.herokuapp.com/



INSERT & UPDATE

        ได้ทำการสร้าง แบบฟอร์ม สำหรับ ADD ข้อมูล หรือ UPDATE ข้อมูล ลงในฐานข้อมูล



จากรูป เป็นหน้าแสดงข้อมูลการแข็งขันของแต่ละ Match 

   สามารากด ปุ่ม Add หรือ Edit ได้
         - เมื่อกด Add จะย้ายไปเพจ add match
         - เมื่อกด Edit จะย้ายไปเพจ update match
          


จากรูป  เป็นหน้า Add จะมีแบบฟอร์มสำหรับกรอกข้อมูลการแข็งขันของแต่ละ Match 


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


จากรูป  เป็นหน้า Update จะเห็นข้อมูลบางส่วน และ สามรถ Update ได้

LOGIN

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


ได้ทำการสร้าง page ห้า Login เพื่อเข้าไป แก้ข้อมูลในระบบได้


สามารถสมัคเพื่อทำให้ Login ได้


ได้ใช้ express session ในการเก็บ email ที่ใช้ login เข้ามา


เป็นข้อมูลที่อยู่ใน session จะเห็นว่ามี email ที่ Login อยู่

Relate Info/link/reference





Tuesday, April 3, 2018

example of normalization 1NF, 2NF, 3NF

First Normal Form (1NF) :
        1. ไม่ควรเป็น Multivalued attribute
        2. แต่ละ attribute ควรใส่ค่าให้ตรงประเภท
        3. แต่ละ attribute ชื่อไม่ซ้ำกัน
        4. ไม่ต้องเรียงลำดับ


Second Normal Form (2NF) :
        1. ทำแบบ 1NF มาก่อน
        2. ไม่ควรมี Partial Dependency

เป็น Partial Dependency

Subject table และ Score Table เป็น Second Normal Form (2NF) ไม่เป็น Partial Dependency

Third Normal Form (3NF) :
         1. ทำแบบ 2NF มาก่อน
         2. ไม่เป็น Transitive Dependency

      ใน Score Table  : attribute Total_marks ขึ้นอยู่กับ exam_name ซึ้งไม่เป็น Primary key(PK)
จึงเป็น Transitive Dependency

Exam table และ Score Table เป็น Third Normal Form (3NF) ไม่เป็น Transitive Dependency



















Tuesday, March 27, 2018

Guideline 4


  - ออกแบบ schemas ของความสัมพันธ์ของตารางทีสามารถ joined กันได้ ด้วยเงื่อนไข attributes  ต้องมีความเท่าเทียม (เพื่อให้แน่ใจว่าจะไม่มี tuple ที่ไม่ถูกต้อง

 - หลีกเลี่ยงความสัมพันธ์ที่มีการจับคู่ attributes ซึ่งไม่ใช่ foreign key และ primary key รวมอยู่ 


ที่มา: - http://comet.lehman.cuny.edu/jung/cmp420758/chapter15.pdf

Tuesday, February 27, 2018

INSERT Data To DBMS

           ผมได้รับมอบหมาย จากเพื่อให้ลองใช้ Database Management System (DBMS) คือ MySQL กับการทดสอบในครั้งนี้

Image result for mysql


           ผมได้ลองการ Query  โดยการ INSERT ข้อมูลจำนวนมาก ตอนแรกช้ามากเลยใช้ การ LOAD
คือ 
   LOAD DATA LOCAL INFILE 'loaction file' INTO TABLE table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ; 


            ลองกลับไปแก้โค้ด แก้ในส่วน commit โดยปกติโค้ดจะต้องเข้า function และสร้าง object connect mysql ที่เป็นแบบ local variable เพื่อติดต่อกับ DMBS เลยแก้ให้ สร้าง object connect mysql  เป็นแบบ global variable แทนเพราะจะทำการ commit ในตอนจบ ครั้งเดียว

รูป โค้ด INSERT แบบเก่า

รูป โค้ด INSERT แบบใหม่

100 row
1k row
10k row
Old insert
7.3 s
87.2 s
> 30 min
New insert
0.23 s
2.62 s
59.82 s
รูป ตารางเปรียบเทียบโค้ด

Problem/Solution

             การ INSERT ช้ามาก

Decision

แก้โค้ดโดยการสร้าง object connect mysql  เป็นแบบ global variable เพื่อ commit ตอนจบโปรแกรม ครั้งเดียว

Wednesday, February 14, 2018



Entity Relationship Diagram (ERD)

          ได้ลองศึกษาการออกแบบ Entity Relationship Diagram โดยดูจากตัวอย่าง
ในตัวอย่างจะอธิบายการใช้ สัญลักษณ์ ในการวาด และ ยกตัวอย่างความสัมพันธ์ของ
entity 

รูปภาพ สัญลักษณ์ ในการวาด Diagram

Problem/Solution

- ไม่รู้ว่าสัญลักษณ์ ERD มีอะไรบ้าง แก้ปัญหาโดยศึกษาจากเว็บต่างๆ

            - ไม่มีเครื่องมือวาด ERD   แก้ปัญหาโดยใช้ google slide หรือ www.draw.io

Decision

- ใช้ docs oracle ในการศึกษา ERD และได้ใช้ตัวอย่างมานำเสนอ

รูปภาพ ERD Purchase Order

            ในรูปภาพจะเห็น ความสัมพันธ์ ต่างๆ เช่น Customer มีความสัมพันธ์แบบ one to many กับ Purchase Order (ลูกค้า 1 คน สามารถสั่งใบสังซื้อสินค้าได้หลายครั้ง ทางกลับกับ 1 ใบสังซื้อสินค้า
สามารถมีลูกค้าได้เพียง 1 คนเท่านั้น จึงมีความสัมพันธ์แบบ one to many)

Related Info/link/reference





AUTO SEND TO EMAIL ** จะใช้ได้เมื่อเป็น USER ที่สมัครสมาชิกเท่านั้น **          ได้ใช้ CronJob ในการจับเวลา ทุกๆ 5 นาทีจะทำการเช็ค ...