/
Getting started for developer

Getting started for developer

Để bắt đầu làm việc với hệ thống EDC, developer nên có một số hiểu biết cơ bản về hệ thống trước khi bắt đầu với việc thực hiện chức năng, vá lỗi cho dự án

Hiểu biết cơ bản về hệ thống

Cấu trúc cơ bản của hệ thống

Hiểu được các khái niệm cơ bản của hệ thống

Administration moduleBuild studyStudy/Site
  • Users
  • Studies
  • Jobs
  • Study Configuration, Study Status
  • CRF
  • Visit Definition
  • Subject Group Classes
  • Rules
  • Create Sites
  • Assign Users
  • Subject
  • Study Subject
  • Visit
    • Visit CRF
      • Item
  • Discrepancy and Notes

Các chức năng và các chức năng chính của hệ thống

Nắm được các nhóm chức năng và đâu là chức năng chính của hệ thống(EDC\_docs\OECSTANDARD.xmind)

  • Administrative function
  • Setup study
  • Submit data
  • Manage data

Hiểu biết cơ bản về kiến trúc phần mềm

Các kiến thức căn bản về kiến trúc phần mềm - liên kết với những đối tượng trên hệ thống trong phần cấu trúc cở bản về hệ thống

  • Cấu trúc cơ sở dữ liệu (EDC\_docs\Schemaspy_DB\tables)
    • Biểu đồ ER 
    • thay đổi DB với liquidbase
      • Cách hoạt động (chạy khi nào, cấu hình ở đâu, ...)
  • Config hệ thống trong các file properties
    • Sự khác nhau giữa datainfo.properties và datainfo-dev.properties
    • extract.properties
    • Miêu tả nhiệm vụ và trình tự hoạt động của class CoreResource, và class SQLInitServlet.
  • Hoạt động của phần view
    • Kiến trúc phần view của freemarker
      • Configuration
      • SharedVariables (GlobalVariablesMap, FreeMarkerServletExtended)
      • Layouts
      • Marco, functions...
      • Trình tự load trang
    • Các view JSP được load như thế nào?
  • Luồng hoạt động theo kiến trúc cũ (servlet)
    • Hoạt động của servlet controller trong hệ thống
      • CoreSecureContrller
      • SecureController
    • DAO
      • Cách thức hoạt động
      • Cách load các lệnh query
    • Domain Objects
      • EntityBean
      • AuditableEntityBean
      • Cấu trúc packages
    • Cấu hình
      • web.xml
      • Page.java
    • I18n
      • Cách làm việc với i18n trên view truyền thống
    • Page Message
      • Cách hoạt động của page message trên view cũ
      • Cách hoạt động của page message khi thực hiện redirect đến controller của view cũ và mới.
    • Exceptions
      • OpenClinicaException
      • InconsistentStateException
      • InsufficientPermissionException
      • DataEntryException
  • Luồng hoạt động theo kiến trúc mới (spring)
    • Configurations
      • pages-servlet
      • applicationContext-security.xml
      • applicationContext-web-beans.xml
      • applicationContext-core-db.xml
      • applicationContext-core-email.xml
      • applicationContext-core-hibernate.xml
      • applicationContext-core-scheduler.xml
      • applicationContext-core-security.xml
      • applicationContext-core-service.xml
      • applicationContext-core-spring.xml
      • applicationContext-core-timer.xml
    • Spring controller
    • Beans
      • DomainObject
      • MutableDomainObject
      • CodedEnumType
        • org/akaza/openclinica/typedefs.hbm.xml
    • DAO
      • AbstractDomainDao
      • Tạo các DAO mới dựa trên AbstractDomainDao như thế nào?
      • ...
    • Services
      • com.oecsolution.standard.core.service
      • org.akaza.openclinica.service
    • I18n
      • Cách làm việc với i18n trên view của Spring Controller
    • Page Messages:
      • PageMessageUtils, MessageLevel
      • Cách hoạt động của page message khi thực hiện redirect đến controller của view cũ và mới.
    • Interceptors
      • Mô tả các interceptors trong com.oecsolution.standard.edc.interceptor
    • Ajax
      • Tham khảo cách viết ajax chuẩn ở package: com.oecsolution.standard.edc.controller.ajax.enterdata
      • AbstractAjaxResponse, AjaxResponse, AjaxStatus, DataTablesResponse (com.oecsolution.standard.edc.support.ajax)
      • Thống nhất cách viết các hàm Ajax.
    • SecureTargetObjects (com.oecsolution.standard.core.secure)
      • Cách hoạt động của nó.
      • Cách sử dụng
    • Exceptions
      • com.oecsolution.standard.core.exception
      • com.oecsolution.standard.edc.exception
  • Filters (trong module edc)
    • (package) com.oecsolution.standard.edc.filter
    • (class) org.akaza.openclinica.control.core.OCServletFilter
    • (class) org.akaza.openclinica.web.filter.LocaleFilter 

  • Loggings
    • Sử dụng loại logger nào?
    • Cấu hình ở đâu?
    • Cách tạo logger trong 1 class.
  • Lombok
    • Cách sử dụng....
  • Sử dụng test case
    • Các viết một unit test (tham khảo trong core/src/test/java)
  • Gulpfiles
    • Các task
    • sass for epro or edc.

Các hướng dẫn cơ bản để tiến hành làm việc với source của phần mềm

  • Các bước clone source và cấu hình trên IntelliJ IDEA
    • Cấu trúc thư mục (top level: _dist, docs, _libs, core, edc ...)
    • Mô tả các thư mục (top level: _dist, docs, _libs, core, edc ...)
  • Các bước setup cơ bản đê tiến hành khởi động phần mềm trên local server
    • Apache Tomcat 7
    • Postgresql 9.4
    • Maven
    • Node Modules
  • Cấu trúc cơ sở dữ liệu
    • Thêm mới bảng trong cơ sở dữ liệu
    • Thay đổi một bảng trong cơ sở dữ liệu
    • Liquibase
      • Cấu hình, sửa đổi changlog ở đâu? 
      • Quy tắc đặt tên file?
  • Tạo, sử dụng test case trong phần mềm
  • Tạo lập một lớp DAO - DTO để để thêm sửa xóa trong cơ sở dữ liệu qua test case
  • Tạo sửa đổi chức năng của một controller theo chuẩn cũ
  • Tạo một controller spring trả về view truyền thống
  • Tạo controller spring trả về dữ liệu JSON