The system to facilitate the distribution and accession of the faculty's announcement

ระบบควบคุมในการกระจายและเข้าถึงข่าวสาร การประกาศ

วันพุธที่ 24 กุมภาพันธ์ พ.ศ. 2559

Adviser meeting 25/02/2559

ไม่มีความคิดเห็น :
สิ่งที่ดำเนินการไปแล้ว
2.ศึกษาและทดลองออกแบบ EER diagram ด้วยโปรแกรม MySQL workbench แต่ยังไม่เสร็จเนื่องจากยังสับสนกับการจัดความสัมพันธ์อยู่
3.วางแผน module ที่สร้างเอง
ปัญหาที่พบ
1.ทำการทดลอง Remote เข้า Raspberry pi2 ด้วยโปรแกรม Xming ไม่ได้ พบปัญหาที่ยังแก้ไขไม่ได้ จะทดลองเปลี่ยนเวอร์ชั่น OS เป็น wheezie
2.ยังคงไม่สามารถลง Chromium บน Raspberry pi2 ได้
3.ปัญหาการทดลองอัพแอพขึ้นเซิฟเวอร์ของรุ่นพี่
สิ่งที่จะดำเนินการต่อ
1. ยกเลิกตัวอักษรวิ่ง เปลี่ยนเป็นการแสดงผลนิ่งๆ
2. usecase search ถ้ามีเวลาทำ
3. เขียนผลการ deploy ขึ้น docker app ที่ใช้ทั้ง django cms และ django app
4. สรุปสิ่งที่ดำเนินการไปแล้วประจำเดือนตั้งแต่ปีใหม่
5. video 15 นาที รายงานความคืบหน้าโปรเจ็ค
6. ให้ข้อมูลแสดงเวลาประกาศและหน้าจอที่จะประกาศอยู่ในข้อมูลของประกาศ
7. หา module ที่สร้างเอง
8. message กำหนดเวลาแสดงได้
9. ติดต่อพี่เพื่อหาวิธี deploy app

module ที่ใช้สำหรับโปรเจ็ค

ไม่มีความคิดเห็น :
แบ่งตาม user

admin
1. login( ) ใช้พิสูจน์ตัวตนของ admin
2. สร้างประกาศประเภทต่าง ได้แก่ text, pdf, video, รูปภาพ และ message แบ่งเป็นฟังก์ชันย่อย ดังนี้
  2.1 create_text( ) สร้างข้อความประกาศเป็น text
  2.2 create_message สร้างข้อความสำหรับแสดงบนหน้าจอในแถบ message
  2.3 upload_announce( ) อัพโหลดไฟล์ประกาศ ได้แก่ pdf, รูปภาพ และ video
3. แก้ไขเนื้อหาประกาศ
  3.1 edit_text( ) แก้ไข text
  3.2 edit_message( ) แก้ไขข้อความในแถบ message
4. delete_announce( ) ลบประกาศออกจากฐานข้อมูล
5. setting_announce( ) ตั้งค่าเวลาเริ่มต้น เวลาหยุดแสดงของประกาศ กำหนดหน้าจอที่จะแสดง


อาจารย์ นักศึกษา
1. login( ) พิสูจน์ตัวตนของอาจารย์หรือนักศึกษา
2. create_message( ) สร้างข้อความสำหรับแสดงบนหน้าจอในแถบ message


วันพุธที่ 17 กุมภาพันธ์ พ.ศ. 2559

Adviser meeting 18/02/2559

ไม่มีความคิดเห็น :
สิ่งที่ดำเนินการไปแล้ว
1. ศึกษาเรื่อง Extending toolbar
2. ศึกษาเรื่อง Extending the navigation menu
3. ศึกษาเรื่อง Namespaced Apphooks
4. หาความเร็วอักษรวิ่งภาษาไทย รายละเอียดดูได้จาก http://anounceprojectcpre55.blogspot.com/2016/02/blog-post.html
5. แก้ไขรายละเอียด usecase ดูได้จาก http://anounceprojectcpre55.blogspot.com/2016/02/scope-description-by-use-case.html
6. ทดลองติดตั้ง chromium บน Raspberry pi2

ปัญหาที่พบ
1.หลังจากติดตั้ง chromium แล้วเข้าหน้า desktop ของ raspberry pi ไม่ได้ รายละเอียดดูได้จาก http://anounceprojectcpre55.blogspot.com/2016/02/video-steamming-2.html

สิ่งที่จะดำเนินการต่อ
1. จำกัดความยาวการแสดงผล ไม่ใช้ตัวอักษรวิ่ง
2. usecase ตัดคำว่าสามารถ  ระบุเป็นข้อๆเน้นให้เห็นภาพ ระบุขั้นตอน
3. usecase search ถ้ามีเวลาทำ
4. แก้ไข diagram ใส่ browser ให้ดูเข้าใจ ใส่จุดให้สื่อมามีหลายหน้าจอ

วันอังคารที่ 16 กุมภาพันธ์ พ.ศ. 2559

การทดลอง video steamming #2

ไม่มีความคิดเห็น :
  เราทำการติดตั้ง Raspbian jessie เป็นระบบปฏิบัติการบน Raspberry pi2 จากนั้นก็ทดลองติดตั้ง chromium browser ตามวิธีจากเว็บ http://conoroneill.net/running-the-latest-chromium-45-on-debian-jessie-on-your-raspberry-pi-2/ แต่ติดปัญหาคือหลังจากติดตั้งไปแล้ว ทำการรีบูต Raspberry pi จากนั้นก็ไม่สามารถเข้าหน้า desktop ของ Raspbian ได้อีกเลย  ทดลองรีบูตใหม่ก็ยังไม่สามารถเข้าหน้า desktop ได้  วิธีแก้ปัญหาเบื้องต้นคือทำการลงระบบปฏิบัติการใหม่  เหตุผลที่เราต้องหาวิธีลง chromium browser ใหม่จากเว็บดังกล่าวเพราะว่าหลังจากใช้คำสั่ง sudo apt-get update แล้วตามด้วยคำสั่ง sudo apt-get install chromium-browser แล้วก็ยังไม่สามารถติดตั้งได้  คิดว่าหลังจากลง Raspbian ใหม่แล้วจะหาวิธีการใหม่มาติดตั้ง chromium browser

วันจันทร์ที่ 15 กุมภาพันธ์ พ.ศ. 2559

django cms #8 Namesapced Apphooks

ไม่มีความคิดเห็น :
  คือการตั้งค่า Namespace สำหรับ Apphook โดยที่เราใช้หลาย instant ที่ใช้งาน app เดียวกันในคนละ page กัน หลักการคือเราทำงานอยู่ใน page ไหน การตั้งค่าต่างๆก็จะมีผลกับ page นั้น เช่น เราเขียนกระดาษแผ่นหนึ่งเราเขียนด้านหน้ากับเขียนด้านหลังมันก็จะมีเฉพาะกับด้านนั้นๆโดยที่เป็นกระดาษแผ่นเดียวกัน ไม่ใช่ว่าเราเขียนกระดาษด้านหน้าแล้วจะไปมีผลกับด้านหลัง

ขั้นตอนการสร้างเป็นดังนี้
  สร้าง app โดยใช้คำสั่ง python manage.py startapp faq

  เข้าไปในไดเรกทอรี fag สร้างไฟล์ models.py ดังนี้ 

from aldryn_apphooks_config.fields import AppHookConfigField
from aldryn_apphooks_config.managers import AppHookConfigManager
from django.db import models
from faq.cms_appconfig import FaqConfig


class Entry(models.Model):
    app_config = AppHookConfigField(FaqConfig)
    question = models.TextField(blank=True, default='')
    answer = models.TextField()

    objects = AppHookConfigManager()

    def __unicode__(self):
        return self.question

    class Meta:
        verbose_name_plural = 'entries'

  ในไดเรกทอรีเดิม สร้างไฟล์ cms_appcinfig.py ดังนี้

from aldryn_apphooks_config.models import AppHookConfig
from aldryn_apphooks_config.utils import setup_config
from app_data import AppDataForm
from django.db import models
from django import forms
from django.utils.translation import ugettext_lazy as _


class FaqConfig(AppHookConfig):
    paginate_by = models.PositiveIntegerField(
        _('Paginate size'),
        blank=False,
        default=5,
    )


class FaqConfigForm(AppDataForm):
    title = forms.CharField()
setup_config(FaqConfigForm, FaqConfig)

  เข้าไปใน admin.py แล้วแก้ไขโค้ดเป็นดังนี้

from django.contrib import admin
from .cms_appconfig import FaqConfig
from .models import Entry
from aldryn_apphooks_config.admin import ModelAppHookConfig, BaseAppHookConfig


class EntryAdmin(ModelAppHookConfig, admin.ModelAdmin):
    list_display = (
        'question',
        'answer',
        'app_config',
    )
    list_filter = (
        'app_config',
    )
admin.site.register(Entry, EntryAdmin)


class FaqConfigAdmin(BaseAppHookConfig, admin.ModelAdmin):
    def get_config_fields(self):
        return (
            'paginate_by',
            'config.title',
        )
admin.site.register(FaqConfig, FaqConfigAdmin)

  สร้างไฟล์ cms_apps.py

from aldryn_apphooks_config.app_base import CMSConfigApp
from cms.apphook_pool import apphook_pool
from django.utils.translation import ugettext_lazy as _
from .cms_appconfig import FaqConfig


class FaqApp(CMSConfigApp):
    name = _("Faq App")
    urls = ["faq.urls"]
    app_name = "faq"
    app_config = FaqConfig

apphook_pool.register(FaqApp)

  แก้ไขไฟล์ views.py ดังนี้

from aldryn_apphooks_config.mixins import AppConfigMixin
from django.views import generic
from .models import Entry


class IndexView(AppConfigMixin, generic.ListView):
    model = Entry
    template_name = 'faq/index.html'

    def get_queryset(self):
        qs = super(IndexView, self).get_queryset()
        return qs.namespace(self.namespace)

    def get_paginate_by(self, queryset):
        try:
            return self.config.paginate_by
        except AttributeError:
            return 10

  สร้างไดเรกทอรี templates/faq แล้วสร้างไฟล์ index.html ดังนี้

{% extends 'base.html' %}

{% block content %}
    <h1>{{ view.config.title }}</h1>
    <p>Namespace: {{ view.namespace }}</p>
    <dl>
        {% for entry in object_list %}
            <dt>{{ entry.question }}</dt>
            <dd>{{ entry.answer }}</dd>
        {% endfor %}
    </dl>

    {% if is_paginated %}
        <div class="pagination">
            <span class="step-links">
                {% if page_obj.has_previous %}
                    <a href="?page={{ page_obj.previous_page_number }}">previous</a>
                {% else %}
                    previous
                {% endif %}

                <span class="current">
                    Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.
                </span>

                {% if page_obj.has_next %}
                    <a href="?page={{ page_obj.next_page_number }}">next</a>
                {% else %}
                    next
                {% endif %}
            </span>
        </div>
    {% endif %}
{% endblock %}

  สร้างไฟล์ urls.py ดังนี้

from django.conf.urls import patterns, url
from . import views


urlpatterns = patterns('',
    url(r'^$', views.IndexView.as_view(), name='index'),
)

  เพิ่ม faq ใน INSTALLED_APPS แล้วใช้คำสั่ง

 python manage.py makemigrations faq
 python manage.py migrate faq

 ทดลองสร้าง page 2 หน้าแล้วตั้งค่า namespace ที่แตกต่างกัน (อย่าลืม publish page ด้วย)ได้ผลดังนี้




เข้า Advanced setting เลือกใช้ faq app แล้วกดเพิ่ม Namesapce (กดเครื่องหมาย +) แล้วใส่ค่าที่ต้องการลงไป

ค่า INSTANCE NAMESPACE และ TITLE ที่เราเขียนไว้ จะปรากฏขึ้นมา





 

วันอาทิตย์ที่ 14 กุมภาพันธ์ พ.ศ. 2559

django cms #7 Extending the nevigation menu

ไม่มีความคิดเห็น :
  เราจะสร้าง menu สำหรับแสดงรายชื่อทุก poll โดยแต่ละชื่อของแต่ละ polls จะนำทางไปยัง poll นั้นๆด้วย มีวิธีการสร้าง ดังนี้
  สร้างไฟล์ cms_menus.py ในไดเรกทอรี poll-plugin แล้วเขียนโค้ด ดังนี้


from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _

from cms.menu_bases import CMSAttachMenu
from menus.base import NavigationNode
from menus.menu_pool import menu_pool

from polls.models import Poll


class PollsMenu(CMSAttachMenu):
    name = _("Polls Menu")  # give the menu a name this is required.

    def get_nodes(self, request):
        """
        This method is used to build the menu tree.
        """
        nodes = []
        for poll in Poll.objects.all():
            node = NavigationNode(
                title=poll.question,
                url=reverse('polls:detail', args=(poll.pk,)),
                id=poll.pk,  # unique id for this node within the menu
            )
            nodes.append(node)
        return nodes

menu_pool.register_menu(PollsMenu)

อธิบายโค้ดแต่ละส่วน
  สร้าง class PollsMenu แล้ว register ให้ใช้งาน
  กำหนดชื่อ Polls Menu ไว้ถูกเรียกใช้
  ใน get_nodes() ทำการเข้าถึงทุก poll แล้วนำมาแสดงใน menu

ถึงขั้นนี้ทำการเปิดไฟล์ cms_apps.py แล้วเพิ่มโค้ด
   from polls_plugin.cms_menus import PollsMenu
ในส่วนบนของโค้ดและเพิ่ม
   menus = [PollsMenu]
 ใน class PollsApphook

ทดลอง runserver จะพบว่ามี list ของ poll ขึ้นมาให้เราเลือก




django cms #6 Extending toolbar

ไม่มีความคิดเห็น :
   toolbar คือแถบเครื่องมือสำหรับใช้งานใน django cms ที่เราจะเห็นก็ต่อเมื่อเราเพิ่มคำว่า ?edit ต่อท้าย url ที่ให้เรา login ก่อนจึงจะใช้งานได้  ในบทนี้เราจะทำการสร้าง extending toolbar คือสร้าง toolbar ขึ้นมาใช้งานเอง โดยเราจะสร้างให้ใช้งานสำหรับ polls app

ให้เราสร้างไฟล์ cms_toolbars.py ในไดเรกทอรี polls_plugin แล้วเขียนโค้ด ดังนี้

from django.utils.translation import ugettext_lazy as _
from cms.toolbar_pool import toolbar_pool
from cms.toolbar_base import CMSToolbar
from cms.utils.urlutils import admin_reverse
from polls.models import Poll


@toolbar_pool.register
class PollToolbar(CMSToolbar):
    supported_apps = (
        'polls',
        'polls_plugin',
    )
    watch_models = [Poll,]

    def populate(self):
        if not self.is_current_app:
            return

        menu = self.toolbar.get_or_create_menu('poll-app', _('Polls'))

        menu.add_sideframe_item(
            name=_('Poll list'),
            url=admin_reverse('polls_poll_changelist'),
        )

        menu.add_modal_item(
            name=_('Add new poll'),
            url=admin_reverse('polls_poll_add'),
        )

อธิบายโค้ดแต่ละส่วน
  มีการอ้างถึง CMSToolbar subclass
  ให้ใช้งานด้วยคำสั่ง @toolbar_pool_register
  ให้ populate เป็น method สำหรับเพิ่ม item ลงไปใน menu
  supported_apps ใส่ชื่อ apps ที่ใช้งาน toolbar นี้
  watch_models ใส่ model ของ app
  การทำงานของ populate() เริ่มต้นจะตรวจสอบก่อนว่า user อยู่นหน้าที่ support กับ toolbar นี้หรือไม่ จากนั้นค่อยสร้าง menu ของ toolbar นี้ ในที่นี้สร้าง sideframe ชื่อ Poll list สำหรับดู list polls และ modal ชื่อ Add new poll สำหรับสร้าง poll ใหม่

ทดลอง run server ใหม่แล้วสังเกตผล
ทดลองใช้ url polls จะเห็น menu Polls ปรากฏใน toolbar


ทดลองเข้าหน้า Poll page ก็ใช้งานได้ เช่นกัน



 ลองดูจะเห็นมามีคำสั่ง Poll list กับ Add new poll


ทดลองเลือก Poll list จะแสดงหน้า list ของ poll ที่เราสร้าง แต่ถ้าเลือก Add new poll จะมีหน้าต่างขึ้นมาให้เราสร้าง poll ใหม่

วันพุธที่ 10 กุมภาพันธ์ พ.ศ. 2559

สรุปสิ่งที่ดำเนินการไปแล้ว 10/2/2559

ไม่มีความคิดเห็น :
1.ศึกษาเรื่อง apphooks
2.ศึกษาเรื่อง Integration a third-party application
3. ทดลอง video streamming
4. ทดลอง deploy app ขึ้น Docker-app แต่ยังไม่สำเร็จ
5. ซื้อ SD card สำหรับใช้ทดลองใน Raspberry pi
6. ออกแบบ diagram ของโปรเจ็ค
7. เพิ่มรายละเอียด usecase

Scope description by use case

ไม่มีความคิดเห็น :

แบ่ง Scope ออกตาม use case ดังนี้

1.Administrator


  • ตรวจสอบข้อมูลย้อนหลัง 

    1.เข้า URL สำหรับแสดงข้อมูลย้อนหลัง จะมีการแสดงข้อมูลข่าวสารและหมวดหมู่ข้อมูลข่าวสาร

    2.เลือกหมวดหมู่ข้อมูลข่าวสารที่ต้องการเพื่อกรองการแสดงข้อมูลข่าวสารให้เหลือเพียงหมวดหมู่ข่าวสารที่สนใจ โดยการคลิกที่ชื่อหมวดหมู่

    3.คลิกหัวข้อข่าวสารที่ต้องการตรวจสอบรายละเอียดเพิ่มเติม จะเกิดการ Link ไปยังหน้าแสดงรายละเอียดของข้อมูลข่าวสารนั้นๆ

  • ล๊อคอิน 

    1.กรอกข้อมูล ID, PASSWORD ที่มุมขวาบนของ webpage
    2.ทำการกดปุ่ม submit


  • ตรวจสอบการอัพโหลดข่าวสารเพื่อนำไปจัดลำดับการแสดงบน monitor
    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู ตรวจสอบการอัพโหลดข้อมูลการแสดงผลบน monitor จะทำการเข้าไปในหน้าแสดงข้อมูลที่ user กลุ่มอื่นทำการอัพโหลดขึ้นมา

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

    5.แก้ไขข้อมูลบาง field ได้ เพื่อความเหมาะ เช่น เวลาการแสดงผล หรือรายละเอียดบางอย่าง

    6.ทำการเลือกว่าจะอนุมัติให้นำไปแสดงผลบน monitor โดยการคลิกที่ปุ่ม อนุมัติหรือไม่อนุมัติก็ให้ทำการคลิกที่ปุ่ม cancel เพื่อยกเลิกการตรวจสอบแล้วกลับไปหน้าเลือกหัวข้อ
    หรือทำการลบได้ด้วยการคลิกที่ปุ่ม delete ก็จะทำการลบข้อมูลที่ตรวจสอบอยู่ออกไป และทำการกลับไปหน้าเลือกหัวข้อ

  • ตรวจสอบข้อมูลตัวอักษรนิ่งที่มีการร้องขอเข้ามา เพื่อให้แสดงที่ด้านล่างของ monitor

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู ตรวจสอบข้อมูลตัวอักษรนิ่ง จะทำการเข้าไปในหน้าแสดงข้อมูลที่ user กลุ่มอื่นทำการ submit เข้ามา

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

    5.แก้ไขข้อมูลตัวอักษร และ เวลาการแสดงผล ได้ ด้วยการกรอกข้อมูลใหม่ เพื่อความเหมาะสม

    6.ทำการเลือกว่าจะอนุมัติให้นำไปแสดงผลบน monitor โดยการคลิกที่ปุ่ม อนุมัติ
    หรือไม่อนุมัติก็ให้ทำการคลิกที่ปุ่ม cancel เพื่อยกเลิกการตรวจสอบแล้วกลับไปหน้าเลือกหัวข้อ
    หรือทำการลบได้ด้วยการคลิกที่ปุ่ม delete ก็จะทำการลบข้อมูลที่ตรวจสอบอยู่ออกไป และทำการกลับไปหน้าเลือกหัวข้อ

  • แก้ไขลำดับเวลาการแสดงผล

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู จัดการข้อมูลการแสดงผลบน monitor จะทำการเข้าไปในหน้าแสดงข้อมูลเป็นตาราง ซึ่งทำการแสดงข้อมูลที่แสดงในช่วงเวลาต่างๆ

    4.คลิกที่ ปุ่มแก้ไขรายละเอียด ที่ข้อมูลที่ต้องการแก้ไขเวลาการแสดง แล้วจะทำการเข้าไปยังหน้าสำหรับการแก้ไขรายละเอียด

    5.เลือกเวลาใหม่ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    6.กดปุ่ม submit เพื่อยืนยันการเปลี่ยนแปลง หลังจากกดแล้วจะทำการกลับไปยังหน้าแสดงข้อมูลเป็นตาราง

  • ลบข้อมูล

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู จัดการข้อมูลการแสดงผลบน monitor จะทำการเข้าไปในหน้าแสดงข้อมูลเป็นตาราง ซึ่งทำการแสดงข้อมูลที่แสดงในช่วงเวลาต่างๆ

    หลังจากนั้นมี 2 วิธี
    1.คลิกที่ปุ่ม ลบข้อมูล ที่ข้อมูลที่ต้องการทำการลบ

    2.1.คลิกที่ปุ่มแก้ไขรายละเอียด ที่ข้อมูลที่ต้องการทำการลบ แล้วจะทำการเข้าไปยังหน้าสำหรับการแก้ไขรายละเอียด
    2.2.คลิกที่ปุ่ม ลบข้อมูล


  • เพิ่มข้อมูล file เอกสารต่างๆ picutre(jpg png), pdf, video

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู จัดการข้อมูลการแสดงผลบน monitor จะทำการเข้าไปในหน้าแสดงข้อมูลเป็นตาราง ซึ่งทำการแสดงข้อมูลที่แสดงในช่วงเวลาต่างๆ

    4.คลิกที่เมนู เพิ่มเอกสาร ซึ่งเมนูนี้จะอยู่นอกตารางแสดงผล หลังจากคลิกแล้วจะไปยังหน้าการเพิ่มเอกสาร ซึ่งมีรายละเอียดต่างๆให้กรอก

    5.browse เอกสารที่ต้องการอัพโหลดขึ้น server เพื่อนำไปประกาศ / หรือทำการคลิกที่ปุ่มสร้างเอกสาร เพื่อสร้างเอกสารด้วยฟีเจอร์ของเว็บ แล้วจะทำการเข้าไปยังหน้าสำหรับการสร้างเอกสาร

    5.1.เมื่อทำการสร้างเอกสารเสร็จแล้วทำการกด submit เพื่อกลับมายังหน้าการกรอกรายละเอียดของข้อมูล

    6.กรอกรายละเอียดเพิ่มเติมสำหรับเอกสารหรือข้อมูล ที่ทำการอัพโหลด

    7.เลือกเวลาที่ต้องการแสดงข้อมูล ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    8.เลือกหมวดหมู่ของข้อมูลโดยการติ๊กหมวดหมู่ที่ตรงกับข้อมูลที่อัพโหลดโดยจะเป็น checkbox

    9.กดปุ่ม submit

  • เพิ่มข้อมูลตัวอักษรนิ่ง

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการข้อมูล ในหน้าหลักของ web

    3.คลิกที่เมนู จัดการข้อมูลการแสดงผลบน monitor จะทำการเข้าไปในหน้าแสดงข้อมูลเป็นตาราง ซึ่งทำการแสดงข้อมูลที่แสดงในช่วงเวลาต่างๆ

    4.คลิกที่เมนู เพิ่มตัวอักษรนิ่ง ซึ่งเมนูนี้จะอยู่นอกตารางแสดงผล หลังจากคลิกแล้วจะไปยังหน้าการเพิ่มข้อมูล ซึ่งมีรายละเอียดต่างๆให้กรอก

    5.กรอกข้อมูล ที่ต้องการนำไปแสดงผลในส่วนล่างของหน้าจอ monitor

    6.เลือกเวลาที่ต้องการแสดงข้อมูล ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    7.เลือกหมวดหมู่ของข้อมูลโดยการติ๊กหมวดหมู่ที่ตรงกับข้อมูลที่อัพโหลดโดยจะเป็น checkbox

    8.กดปุ่ม submit

  • สั่งปิด/เปิดเสียงของ monitor ผ่านทาง web browser ได้

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู การจัดการ monitor ในหน้าหลักของ web จะทำการเข้าไปหน้าที่มี monitor ให้เลือก

    3.คลิกที่ปุ่มเปิด/ปิดเสียง ใต้monitor ที่ต้องการเปิด/ปิดเสียง

2.Teacher

  • ตรวจสอบข้อมูลย้อนหลัง 

    1.เข้า URL สำหรับแสดงข้อมูลย้อนหลัง จะมีการแสดงข้อมูลข่าวสารและหมวดหมู่ข้อมูลข่าวสาร

    2.เลือกหมวดหมู่ข้อมูลข่าวสารที่ต้องการเพื่อกรองการแสดงข้อมูลข่าวสารให้เหลือเพียงหมวดหมู่ข่าวสารที่สนใจ โดยการคลิกที่ชื่อหมวดหมู่

    3.คลิกหัวข้อข่าวสารที่ต้องการตรวจสอบรายละเอียดเพิ่มเติม จะเกิดการ Link ไปยังหน้าแสดงรายละเอียดของข้อมูลข่าวสารนั้นๆ

  • ล๊อคอิน 

    1.กรอกข้อมูล ID, PASSWORD ที่มุมขวาบนของ webpage
    2.ทำการกดปุ่ม submit

  • อัพข้อมูลข่าวสารขึ้น server เพื่อนำไปให้ Admin ตรวจสอบก่อนการนำไปแสดงบน monitor

    1.ทำการล๊อคอิน

    2.คลิกที่เมนู อัพโหลดเอกสาร ในหน้าหลักของ web หลังจากคลิกแล้วจะไปยังหน้าการอัพโหลดเอกสาร ซึ่งมีรายละเอียดต่างๆให้กรอก

    3.browse เอกสารที่ต้องการอัพโหลดขึ้น server เพื่อนำไปประกาศ / หรือทำการคลิกที่ปุ่มสร้างเอกสาร เพื่อสร้างเอกสารด้วยฟีเจอร์ของเว็บ แล้วจะทำการเข้าไปยังหน้าสำหรับการสร้างเอกสาร

    3.1.เมื่อทำการสร้างเอกสารเสร็จแล้วทำการกด submit เพื่อกลับมายังหน้าการกรอกรายละเอียดของข้อมูล

    4.กรอกรายละเอียดเพิ่มเติมสำหรับเอกสารหรือข้อมูล ที่ทำการอัพโหลด

    5.เลือกเวลาที่ต้องการแสดงข้อมูล ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    6.เลือกหมวดหมู่ของข้อมูลโดยการติ๊กหมวดหมู่ที่ตรงกับข้อมูลที่อัพโหลดโดยจะเป็น checkbox

    7.กดปุ่ม submit
    ข้อมูลจะไปอยู่บน server รอการอนุมัติข้อง admin

  • อัพข้อมูลการขอแสดงข้อมูลตัวอักษรนิ่ง

    1.ทำการล๊อคอิน


    2.คลิกที่เมนู อัพโหลดข้อมูลตัวอักษรนิ่ง ในหน้าหลักของ web หลังจากคลิกแล้วจะไปยังหน้าการเพิ่มข้อมูล ซึ่งมีรายละเอียดต่างๆให้กรอก

    3.กรอกข้อมูล ที่ต้องการนำไปแสดงผลในส่วนล่างของหน้าจอ monitor

    4.เลือกเวลาที่ต้องการแสดงข้อมูล ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    5.เลือกหมวดหมู่ของข้อมูลโดยการติ๊กหมวดหมู่ที่ตรงกับข้อมูลที่อัพโหลดโดยจะเป็น checkbox

    6.กดปุ่ม submit

    ข้อมูลจะไปอยู่บน server รอการอนุมัติข้อง admin






3.Student

  • ตรวจสอบข้อมูลย้อนหลัง 

    1.เข้า URL สำหรับแสดงข้อมูลย้อนหลัง จะมีการแสดงข้อมูลข่าวสารและหมวดหมู่ข้อมูลข่าวสาร

    2.เลือกหมวดหมู่ข้อมูลข่าวสารที่ต้องการเพื่อกรองการแสดงข้อมูลข่าวสารให้เหลือเพียงหมวดหมู่ข่าวสารที่สนใจ โดยการคลิกที่ชื่อหมวดหมู่

    3.คลิกหัวข้อข่าวสารที่ต้องการตรวจสอบรายละเอียดเพิ่มเติม จะเกิดการ Link ไปยังหน้าแสดงรายละเอียดของข้อมูลข่าวสารนั้นๆ

  • ล๊อคอิน 

    1.กรอกข้อมูล ID, PASSWORD ที่มุมขวาบนของ webpage
    2.ทำการกดปุ่ม submit

  • อัพข้อมูลการขอแสดงข้อมูลตัวอักษรนิ่ง

    1.ทำการล๊อคอิน


    2.คลิกที่เมนู อัพโหลดข้อมูลตัวอักษรนิ่ง ในหน้าหลักของ web หลังจากคลิกแล้วจะไปยังหน้าการเพิ่มข้อมูล ซึ่งมีรายละเอียดต่างๆให้กรอก

    3.กรอกข้อมูล ที่ต้องการนำไปแสดงผลในส่วนล่างของหน้าจอ monitor

    4.เลือกเวลาที่ต้องการแสดงข้อมูล ซึ่งจะเป็น field ที่ทำการคลิกแล้วจะมี เวลา/วัน/เดือน/ปี ขึ้นมาให้เลือก

    5.เลือกหมวดหมู่ของข้อมูลโดยการติ๊กหมวดหมู่ที่ตรงกับข้อมูลที่อัพโหลดโดยจะเป็น checkbox

    6.กดปุ่ม submit

    ข้อมูลจะไปอยู่บน server รอการอนุมัติข้อง admin
โดย priority ของการร้องขอของ Teacher จะสำคัญกว่าของ Student




ตัวอย่างการตรวจสอบข้อมูลข่าวสาร โดยการแยกประเภทของข้อมูล
http://news.playpark.com/th/index/all/promotion/11

กรณีของบุคคลภายนอก หากต้องการเพิ่มข้อมูล จำเป็นต้องติดต่อกับทางเจ้าหน้าที่ที่เกี่ยวข้องเอง

Adviser meeting 11/02/2559

ไม่มีความคิดเห็น :
คำถาม
1. ใช้วิธีอัพเดต web browser ให้ support html5 แก้ปัญหา flash ใน video streaming ได้หรือไม่ หรือมีวิธีอื่นที่ดีกว่า
2. diagram มีส่วนไหนไม่ชัดเจนหรือไม่ ถ้าไม่ชัดเจนส่วนไหนไม่ชัดเจนหรือไม่สื่อความหมาย

สิ่งที่ดำเนินการไปแล้ว
1. แก้ไข diagram ดังนี้

3. ทดลอง deploy app โดยใช้ docker app ได้แต่ไม่สามารถเข้าหน้าเว็บได้
4. เพิ่มรายละเอียด scope งานของแต่ละ usecase ตรวจสอบได้จากลิงค์ด้านล่าง
http://anounceprojectcpre55.blogspot.com/2016/02/scope-description-by-use-case.html
5. หาข้อมูลความเร็วของตัวอักษรวิ่ง ได้ผลสรุปว่าคนทั่วไปอ่านได้ 40 ตัวอักษรต่อวินาที

สิ่งที่จะดำเนินการต่อ
1. ใส่ข้อมูล video ที่ทดลอง ใส่ที่อยู่ video ที่ใช้อ้างอิง
2. แก้ไขผลการ steaming video
3. ลองจับเวลาอักษรวิ่งจากรายการโทรทัศน์ที่เค้าใช้จริง
4. แก้ไข diagram แยกส่วน user กับ ระบบโดยรวม ลบตาดูกับข้อมูลประกาศ แก้ไขเป็น Raspberry pi ต่อกับหน้าจอหลายๆชุด และมี device ที่ต่อกับ internet ได้
5. แก้ไข scope ตาม usecase ใส่รายละเอียดขั้นตอนการทำงานเพิ่ม เช่น การเพิ่มข้อมูลข่าวสาร ต้องทำการกรอกอะไรบ้างหลังจากกรอกแล้วต้องกดอะไรบ้าง
6. ทดลอง video ความละเอียด hd ไปก่อน
7. ทดลองทั้งแบบสายแลนกับแบบ wifi

วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559

ความสัมพันธ์การอ่านของมนุษย์กับความเร็วตัวอักษรวิ่งบนหน้าจอ

ไม่มีความคิดเห็น :
    มีงานวิจัยเกี่ยวกับการตอบสนองข้อมูลบนหน้าจอ อักษรวิ่ง โดยใช้การบันทึกการเคลื่อนไหวของม่านตาในการเพิ่ง  ทดลองโดยการจับการเคลื่อนไหวของดวงตาตอนที่กำลังอ่านตัวอักษรบนหน้าจอ  ได้ผลสรุปออกมาว่าความเร็วเฉลี่ยในการอ่านของบุคคลทั่วไปคือ 40 ตัวอักษรต่อ 1 วินาที
  อ้างอิงจาก https://docs.google.com/viewer?url=patentimages.storage.googleapis.com/pdfs/US6577329.pdf

  แต่การทดลองจากงานวิจัยดังกล่าวเป็นอักษรภาษาอังกฤษเราเลยใช้วีดิโอตัวอย่างจาก youtube เป็นข่าวมาสังเกตตัวอักษรภาษาไทยที่วิ่งแล้วนับจำนวนตัวอักษรมาหารด้วยเวลา สรุปได้ผลคือ
 78 ตัวอักษร หาร 8 วินาที ได้ความเร็วของอักษรวิงคือ 9.75 ตัวอักษรต่อวินาทีหรือประมาณ 10 ตัวอักษรต่อวินาที

วีดิโออ้างอิงจาก https://www.youtube.com/watch?v=LAAMQmKIHDk

วันพุธที่ 3 กุมภาพันธ์ พ.ศ. 2559

การทดลอง video steamming

ไม่มีความคิดเห็น :
  ในขั้นแรกทดลองโดยการเตรียมโปรเจ็คที่มี video ไว้สำหรับทดลอง  จากนั้นใช้คอมพิวเตอร์ของเราเปิด VM VirtualBox แล้วรัน server ในนั้น   โดยกำหนดค่าการเชื่อมต่อเป็น brigde network ทำให้เสมือนว่าคอมพิวเตอร์เรากับ VM VirtualBox เป็นคอมพิวเตอร์คนละเครื่องที่กำลังเชื่อมต่อกันอยู่  สังเกตได้ว่ามีการใช้ ip address คนละตัวกัน

ใน VM VirtualBox ทดลองรัน server โดยกำหนด ip ให้ของ VM VirtualBox ด้วยคำสั่ง
python manage.py runserver {หมายเลข ip address}:{หมายเลข port}

 ทดลองใช้ browser เป็น google chrome ได้ผลคือสามารถดูวีดิโอได้ โดยเราเก็บไฟล์วีดิโอไว้ในคอมพิวเตอร์แล้วให้หน้าเว็บเรียกใช้ไฟล์วีดิโอนั้น




ภาพวีดิโอแสดงบนหน้าเว็บ

Adviser meeting 4/2/2559

ไม่มีความคิดเห็น :
สิ่งที่ดำเนินการไปแล้ว
1.ศึกษาเรื่อง apphooks
2.ศึกษาเรื่อง Integration a third-party application
3. ทดลองแนวคิด video streamming
4. ทดลอง deploy app ขึ้น Docker-app
5. ซื้อ SD card สำหรับใช้ทดลองใน Raspberry pi

ปัญหาที่พบ
1. การทดลองแนวคิด video streamming ใน Raspberry pi ไม่สามารถติดตั้ง Flash player ได้และไม่สามารถติดตั้ง chromium browser ด้วยวิธีเดิมที่เคยทดลองได้
แต่ได้พบวิธีติดตั้งอีกวิธี
https://www.raspberrypi.org/forums/viewtopic.php?t=121195
โดยจะเริ่มทำการติดตั้งใน SD card ที่ทำการซื้อมาเอง
2. deploy app ขึ้น Docker-app ไม่สำเร็จ

สิ่งที่จะดำเนินการต่อ
1. ศึกษาเรื่อง  Extending the toolbar
2. ศึกษาเรื่อง Extending the nevigation menu
3. ศึกษาเรื่อง Namespaced apphooks
4. แก้ไขการทดลอง video streamming โดยการใช้ Rasbian jessie สำหรับ Raspberry pi เพื่อลองติดตั้ง chromium browser และ Flash player
5. หาวิธี steamming video ที่ไม่ใช้งาน flash player
6. ลองติดตั้ง firefox browser บน Raspberry pi
7. ทดลอง deploy app ช่วงคนน้อยๆ
8. ลอง deploy app django app python3 helloworld หรือโปรเจ็คที่ใช้ python3
9. ตามงานเก่าแก้ไข usecase, diagram
10. นึกคำถามออกก็โพสลง blog

การทดลอง deploy django cms บน Docker-app

ไม่มีความคิดเห็น :
  ทดลองโดยการเตรียม source code ของโปรเจ็คที่เราจะนำไปทดลอง deploy บน Docker-app

 ทำการสร้าง user ใหม่โดยกดปุ่ม Join us แล้วกรอกข้อมูลลงไป โดยกำหนดให้รหัสผ่านไม่น้อยกว่า 8 ตัวอักษร





ทำการ login หลังจากนั้นจะพบหน้าไว้ใส่ชื่อโปรเจ็คกับ url ของโปรเจ็คซึ่งเป็น url ที่ใช้ clone project จาก bitbucket


จากการทดลองเรากรอกข้อมูลไป ดังนี้



จากนั้นเกิด error ดังนี้

ต่อมาเราทำการสร้างโปรเจ็คตัวอย่างอีกหนึ่งตัวแต่ใช้ mercurial เป็น version control แทนโปรเจ็คตัวอย่างอันเก่าที่ใช้ git ผลออกมาคือยัง deploy ไม่สำเร็จ และแสดง error ขึ้นมา ดังนี้

หลังจากนี้เราจึงไปสร้างโปรเจ็คอันใหม่มาโดยใช้ mercurial เป็น version control เราลองสร้างตัวอย่างโปรเจ็คที่เป็น python2.7 และ python3.4 เราสร้าง djangocms project ด้วย python2.7 โดยการติดตั้ง
  pip install --upgrade ndg-httpsclient
และ
  pip install urllib3 
อ้างอิงจาก https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning
และ https://urllib3.readthedocs.org/en/latest/security.html#disabling-warnings