Skip to content

lamngoctuu18/TTDN-16-01-N6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

140 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HỆ THỐNG QUαΊ’N LÝ TΓ€I SαΊ’N VΓ€ PHΓ’NG HỌP

AIoTLab Logo AIoTLab Logo DaiNam University Logo

AIoTLab Faculty of Information Technology DaiNam University


🎨 Project Poster

image

πŸ“– 1. Giα»›i thiệu

Platform ERP thΓ΄ng minh - GiαΊ£i phΓ‘p toΓ n diện cho học phαΊ§n Thα»±c tαΊ­p doanh nghiệp

Platform ERP được xΓ’y dα»±ng trΓͺn nền tαΊ£ng Odoo mΓ£ nguα»“n mở, tΓ­ch hợp cΓ‘c cΓ΄ng nghệ tiΓͺn tiαΊΏn nhΖ° AI, Chα»― kΓ½ sα»‘, vΓ  Tα»± Δ‘α»™ng hΓ³a quy trΓ¬nh. Hệ thα»‘ng cung cαΊ₯p giαΊ£i phΓ‘p quαΊ£n lΓ½ tΓ­ch hợp cho:


TΓ i sαΊ£n
QuαΊ£n lΓ½ vΓ²ng đời

Phòng họp
Đặt lα»‹ch thΓ΄ng minh

NhΓ’n sα»±
QuαΊ£n lΓ½ tα»• chα»©c

Văn bản
Luα»“ng phΓͺ duyệt

✨ Điểm nα»•i bαΊ­t

πŸ€– AI Assistant         β†’ TαΊ‘o biΓͺn bαΊ£n, gợi Γ½ thời gian họp tα»± Δ‘α»™ng
πŸ” Chα»― kΓ½ sα»‘            β†’ PhΓͺ duyệt Δ‘iện tα»­, xΓ‘c thα»±c người kΓ½
⚑ Tα»± Δ‘α»™ng hΓ³a          β†’ Quy trΓ¬nh phΓͺ duyệt, nhαΊ―c việc thΓ΄ng minh
πŸ”— TΓ­ch hợp Δ‘a nền tαΊ£ng β†’ Zoom, Google Calendar, Email

πŸ”§ 2. Tech Stack

LoαΊ‘i CΓ΄ng nghệ
Platform Odoo
Backend Python
Frontend JavaScript XML
Database PostgreSQL
AI OpenAI
DevOps Docker Ubuntu

🧩 3. Tα»•ng quan cΓ‘c Module

πŸ“¦ 3.1. Asset & Meeting Management (dnu_meeting_asset)

Module quαΊ£n lΓ½ tΓ i sαΊ£n vΓ  phΓ²ng họp vα»›i AI vΓ  tα»± Δ‘α»™ng hΓ³a

πŸ”Ή QuαΊ£n lΓ½ TΓ i sαΊ£n

Tính năng Mô tả
πŸ“‹ Danh mα»₯c QuαΊ£n lΓ½ danh mα»₯c, mΓ£ tΓ i sαΊ£n, vα»‹ trΓ­, trαΊ‘ng thΓ‘i
πŸ‘₯ GΓ‘n tΓ i sαΊ£n GΓ‘n cho nhΓ’n viΓͺn, theo dΓ΅i lα»‹ch sα»­ gΓ‘n
πŸ”„ Mượn/TrαΊ£ Quy trΓ¬nh phΓͺ duyệt tα»± Δ‘α»™ng, nhαΊ―c quΓ‘ hαΊ‘n
πŸ”§ BαΊ£o trΓ¬ TαΊ‘o yΓͺu cαΊ§u, phΓ’n cΓ΄ng kα»Ή thuαΊ­t viΓͺn, lα»‹ch Δ‘α»‹nh kα»³
πŸ“Š BΓ‘o cΓ‘o Dashboard tα»•ng quan, bΓ‘o cΓ‘o chi tiαΊΏt, thα»‘ng kΓͺ

πŸ”Ή QuαΊ£n lΓ½ PhΓ²ng họp

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Đặt lα»‹ch β†’ Kiểm tra xung Δ‘α»™t β†’ PhΓͺ duyệt tα»± Δ‘α»™ng      β”‚
β”‚     ↓              ↓                    ↓               β”‚
β”‚  Calendar      Zoom Link          Email thΓ΄ng bΓ‘o      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Tính năng Chi tiết
βœ… Smart Booking Kiểm tra xung Δ‘α»™t thời gian, gợi Γ½ phΓ²ng/khung giờ khΓ‘c
βœ… Approval Flow Tα»± Δ‘α»™ng tαΊ‘o vΔƒn bαΊ£n Δ‘αΊΏn β†’ PhΓͺ duyệt β†’ VΔƒn bαΊ£n Δ‘i
βœ… Check-in/out Tα»± Δ‘α»™ng cαΊ­p nhαΊ­t trαΊ‘ng thΓ‘i, theo dΓ΅i sα»­ dα»₯ng
βœ… Integration Zoom meeting, Google Calendar, Email notification

πŸ”Ή AI Assistant

AI Feature CΓ΄ng dα»₯ng
πŸ€– Meeting Minutes TαΊ‘o biΓͺn bαΊ£n cuα»™c họp tα»± Δ‘α»™ng tα»« thΓ΄ng tin booking
πŸ•’ Smart Scheduling Gợi Γ½ thời gian họp dα»±a trΓͺn lα»‹ch người tham dα»±
πŸ“ Agenda Generator TαΊ‘o chΖ°Ζ‘ng trΓ¬nh họp chi tiαΊΏt
πŸ’¬ AI Chat Trợ lΓ½ αΊ£o tΖ° vαΊ₯n quαΊ£n lΓ½ tΓ i sαΊ£n/phΓ²ng họp
πŸ“„ Document Flow Chuyển biΓͺn bαΊ£n AI thΓ nh vΔƒn bαΊ£n chΓ­nh thα»©c

πŸ‘₯ 3.2. Human Resource Management (nhan_su)

QuαΊ£n lΓ½ nhΓ’n sα»± vΓ  cαΊ₯u trΓΊc tα»• chα»©c

Tính năng chính

🏒 CαΊ₯u trΓΊc tα»• chα»©c

  • ĐƑn vα»‹/PhΓ²ng ban
  • Chα»©c vα»₯/Vα»‹ trΓ­
  • CαΊ₯p bαΊ­c quαΊ£n lΓ½

πŸ“‡ Hα»“ sΖ‘ nhΓ’n viΓͺn

  • ThΓ΄ng tin cΓ‘ nhΓ’n
  • Lα»‹ch sα»­ cΓ΄ng tΓ‘c
  • Chα»©ng chỉ/BαΊ±ng cαΊ₯p

πŸ” PhΓ’n quyền

  • Vai trΓ² người dΓΉng
  • Quyền truy cαΊ­p
  • Quy trΓ¬nh phΓͺ duyệt

πŸ“„ 3.3. Document Management (quan_ly_van_ban)

QuαΊ£n lΓ½ vΔƒn bαΊ£n vα»›i chα»― kΓ½ sα»‘ vΓ  quy trΓ¬nh phΓͺ duyệt tα»± Δ‘α»™ng

πŸ“₯ VΔƒn bαΊ£n Δ‘αΊΏn

graph LR
    A[TiαΊΏp nhαΊ­n] --> B[PhΓ’n loαΊ‘i]
    B --> C{LoαΊ‘i VB}
    C -->|PhΓͺ duyệt| D[Chờ kΓ½]
    C -->|Thông thường| E[Xử lý]
    D --> F[KΓ½ sα»‘]
    F --> G[Duyệt]
    G --> H[TαΊ‘o VB Δ‘i]
Loading
Chức năng Mô tả
πŸ“¨ TiαΊΏp nhαΊ­n PhΓ’n loαΊ‘i vΔƒn bαΊ£n Δ‘αΊΏn, gΓ‘n người xα»­ lΓ½
✍️ Chα»― kΓ½ sα»‘ KΓ½ Δ‘iện tα»­ vα»›i xΓ‘c thα»±c người kΓ½
πŸ“Š Theo dΓ΅i TrαΊ‘ng thΓ‘i: pending β†’ signed β†’ approved
πŸ”— LiΓͺn kαΊΏt KαΊΏt nα»‘i vα»›i booking/lending để phΓͺ duyệt

πŸ“€ VΔƒn bαΊ£n Δ‘i

Nguồn tẑo Quy trình
πŸ€– Tα»± Δ‘α»™ng Tα»« vΔƒn bαΊ£n Δ‘αΊΏn Δ‘Γ£ phΓͺ duyệt (mΓ£: PD/2026/xxxx)
✏️ Thα»§ cΓ΄ng SoαΊ‘n thαΊ£o, duyệt, phΓ‘t hΓ nh (mΓ£: YC/2026/xxxx)

πŸ”„ Workflow tΓ­ch hợp

Booking/Lending Request
         ↓
   Văn bản đến (YC/2026/xxxx)
         ↓
    KΓ½ sα»‘ + PhΓͺ duyệt
         ↓
   Văn bản đi (PD/2026/xxxx)
         ↓
   CαΊ­p nhαΊ­t trαΊ‘ng thΓ‘i nguα»“n

πŸ”— 3.4. Integration & Automation

TΓ­ch hợp liΓͺn thΓ΄ng giα»―a cΓ‘c phΓ’n hệ

SΖ‘ Δ‘α»“ tΓ­ch hợp

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   NhΓ’n sα»±   │────▢│  VΔƒn bαΊ£n    │◀────│  TΓ i sαΊ£n    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚                    β”‚                    β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚
                       β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
                       β”‚   AI    β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CΓ‘c luα»“ng tΓ­ch hợp

Luα»“ng MΓ΄ tαΊ£
🎯 Asset ↔ HR GΓ‘n tΓ i sαΊ£n cho nhΓ’n viΓͺn, lα»‹ch sα»­ gΓ‘n
πŸ“‹ Meeting ↔ Document Booking β†’ VΔƒn bαΊ£n Δ‘αΊΏn β†’ PhΓͺ duyệt β†’ VΔƒn bαΊ£n Δ‘i
πŸ€– AI ↔ Document BiΓͺn bαΊ£n AI β†’ VΔƒn bαΊ£n Δ‘αΊΏn β†’ KΓ½ duyệt
πŸ“§ Email Notification Tα»± Δ‘α»™ng gα»­i thΓ΄ng bΓ‘o cho cΓ‘c bΓͺn liΓͺn quan

πŸ“Έ 4. Screenshots & UI Preview

πŸ“Œ Giao diện trα»±c quan vΓ  thΓ’n thiện vα»›i người dΓΉng

🏒 Asset Management

πŸ“‹ Danh sΓ‘ch tΓ i sαΊ£n

  • Grid view vα»›i filters
  • Quick search & export
  • Status indicators

[Screenshot coming soon]

πŸ“ Chi tiαΊΏt tΓ i sαΊ£n

  • Full asset information
  • Assignment history
  • Maintenance logs

[Screenshot coming soon]

πŸ“… Meeting Room Management

πŸ—“οΈ Calendar View

  • Visual booking calendar
  • Conflict detection
  • Drag & drop support

[Screenshot coming soon]

βœ… Approval Workflow

  • Quick approve/reject
  • Digital signature
  • Status tracking

[Screenshot coming soon]

πŸ“„ Document Management

πŸ“₯ Incoming Documents

  • Document list with filters
  • Approval status
  • Digital signature widget

[Screenshot coming soon]

πŸ“€ Outgoing Documents

  • Auto-generated from approvals
  • Document code: YC/PD
  • Archive & search

[Screenshot coming soon]

πŸ€– AI Assistant Features

πŸ§™ AI Wizard

  • Meeting minutes generator
  • Smart scheduling
  • Agenda creator

[Screenshot coming soon]

πŸ’¬ AI Chat Interface

  • Natural language queries
  • Context-aware responses
  • History tracking

[Screenshot coming soon]


πŸ“Š 5. Business Flow Diagrams

πŸ’‘ SΖ‘ Δ‘α»“ nghiệp vα»₯ chi tiαΊΏt - Hiển thα»‹ trα»±c tiαΊΏp trΓͺn GitHub/GitLab

πŸ”„ 5.1. Asset Lifecycle

flowchart LR
    A[TαΊ‘o tΓ i sαΊ£n] --> B{TrαΊ‘ng thΓ‘i}
    B -->|SαΊ΅n sΓ ng| C[Sα»­ dα»₯ng nα»™i bα»™]
    C --> D[GΓ‘n cho nhΓ’n viΓͺn]
    D --> E[Thu hα»“i / LuΓ’n chuyển]
    E --> B
    B -->|Đang mượn| F[Mượn/Trả tài sản]
    F --> B
    B -->|BαΊ£o trΓ¬| G[TαΊ‘o yΓͺu cαΊ§u bαΊ£o trΓ¬]
    G --> H[Thα»±c hiện/HoΓ n thΓ nh]
    H --> B
    B -->|Thanh lΓ½| I[Đề xuαΊ₯t / PhΓͺ duyệt]
    I --> J[Thanh lΓ½ / Ghi nhαΊ­n]
    J --> K[Đã thanh lý]
    
    style A fill:#e1f5ff
    style K fill:#ffe1e1
    style B fill:#fff4e1
Loading

πŸ“ 5.2. Lending Process with Approval

flowchart TD
    U[πŸ‘€ Người dΓΉng tαΊ‘o phiαΊΏu mượn] --> V[πŸ“‹ Chọn tΓ i sαΊ£n + thời hαΊ‘n]
    V --> W{πŸ” TΓ i sαΊ£n khαΊ£ dα»₯ng?}
    W -->|❌ KhΓ΄ng| X[⚠️ ThΓ΄ng bΓ‘o khΓ΄ng khαΊ£ dα»₯ng]
    W -->|βœ… CΓ³| Y[πŸ“„ TαΊ‘o vΔƒn bαΊ£n Δ‘αΊΏn tα»± Δ‘α»™ng]
    Y --> Z[πŸ“€ Gα»­i Ban GiΓ‘m Δ‘α»‘c phΓͺ duyệt]
    Z --> AA{πŸ€” PhΓͺ duyệt?}
    AA -->|❌ Tα»« chα»‘i| AB[πŸ“§ ThΓ΄ng bΓ‘o tα»« chα»‘i]
    AA -->|βœ… ChαΊ₯p nhαΊ­n| AC[✍️ KΓ½ sα»‘ trΓͺn vΔƒn bαΊ£n]
    AC --> AD[πŸ“‹ TαΊ‘o vΔƒn bαΊ£n Δ‘i + CαΊ­p nhαΊ­t trαΊ‘ng thΓ‘i]
    AD --> AE[πŸ”„ Đang mượn]
    AE --> AF{πŸ“… Đến hαΊ‘n?}
    AF -->|βœ… Đúng| AG[⏰ Tα»± Δ‘α»™ng Δ‘Γ‘nh dαΊ₯u quΓ‘ hαΊ‘n + nhαΊ―c trαΊ£]
    AF -->|❌ Chưa| AE
    AE --> AH[πŸ”™ TrαΊ£ tΓ i sαΊ£n]
    AG --> AH
    AH --> AI[βœ… HoΓ n tαΊ₯t + cαΊ­p nhαΊ­t trαΊ‘ng thΓ‘i tΓ i sαΊ£n]
    
    style Y fill:#e3f2fd
    style AC fill:#f3e5f5
    style AI fill:#e8f5e9
Loading

πŸ”§ 5.3. Maintenance & Automation

flowchart TD
    M[⚠️ PhΓ‘t sinh sα»± cα»‘ / lα»‹ch Δ‘α»‹nh kα»³] --> N[πŸ“ TαΊ‘o yΓͺu cαΊ§u bαΊ£o trΓ¬]
    N --> O[πŸ‘· PhΓ’n cΓ΄ng kα»Ή thuαΊ­t viΓͺn]
    O --> P[βš™οΈ Đang xα»­ lΓ½]
    P --> Q{βœ… HoΓ n thΓ nh?}
    Q -->|❌ Chưa| P
    Q -->|βœ… CΓ³| R[πŸ“Š HoΓ n thΓ nh + cαΊ­p nhαΊ­t tΓ i sαΊ£n]
    S[πŸ€– Cron: NhαΊ―c lα»‹ch bαΊ£o trΓ¬] --> N
    T[πŸ€– Cron: NhαΊ―c quΓ‘ hαΊ‘n mượn] --> AG[πŸ“§ ThΓ΄ng bΓ‘o quΓ‘ hαΊ‘n]
    
    style S fill:#fff3e0
    style T fill:#fff3e0
    style R fill:#e8f5e9
Loading

πŸ“… 5.4. Meeting Booking + AI + Integrations

flowchart TD
    A1[πŸ‘€ Người dΓΉng tαΊ‘o booking] --> A2[πŸ“‹ Chọn phΓ²ng + thời gian + người tham dα»±]
    A2 --> A3{πŸ” Kiểm tra xung Δ‘α»™t}
    A3 -->|⚠️ CΓ³ xung Δ‘α»™t| A4[πŸ’‘ Gợi Γ½ phΓ²ng/khung giờ khΓ‘c]
    A4 --> A2
    A3 -->|βœ… KhΓ΄ng| A5[πŸ“„ TαΊ‘o vΔƒn bαΊ£n Δ‘αΊΏn tα»± Δ‘α»™ng]
    A5 --> A6[πŸ“€ Gα»­i Ban GiΓ‘m Δ‘α»‘c phΓͺ duyệt]
    A6 --> A7{πŸ€” PhΓͺ duyệt?}
    A7 -->|❌ Tα»« chα»‘i| A8[πŸ“§ ThΓ΄ng bΓ‘o tα»« chα»‘i + Hα»§y booking]
    A7 -->|βœ… ChαΊ₯p nhαΊ­n| A9[✍️ KΓ½ sα»‘ trΓͺn vΔƒn bαΊ£n]
    A9 --> A10[πŸ“‹ TαΊ‘o vΔƒn bαΊ£n Δ‘i + XΓ‘c nhαΊ­n booking]
    A10 --> A11[πŸ“§ Gα»­i email xΓ‘c nhαΊ­n]
    A10 --> A12[πŸ“… Đồng bα»™ sα»± kiện Calendar]
    A10 --> A13[πŸŽ₯ TαΊ‘o/Δ‘Γ­nh kΓ¨m Zoom meeting]
    A14[πŸ€– Sau cuα»™c họp: AI tαΊ‘o biΓͺn bαΊ£n] --> A15[πŸ“„ LΖ°u biΓͺn bαΊ£n lΓ m vΔƒn bαΊ£n Δ‘αΊΏn]
    A15 --> A6
    A16[βœ… Check-in/Check-out] --> A17[πŸ”„ CαΊ­p nhαΊ­t trαΊ‘ng thΓ‘i booking]
    
    style A9 fill:#f3e5f5
    style A14 fill:#e1f5fe
    style A12 fill:#f1f8e9
    style A13 fill:#f1f8e9
Loading

πŸ“„ 5.5. Document Flow with Digital Signature

flowchart TD
    D1[πŸ“₯ VΔƒn bαΊ£n Δ‘αΊΏn] --> D2[πŸ“‹ TiαΊΏp nhαΊ­n + phΓ’n loαΊ‘i]
    D2 --> D3{πŸ” LoαΊ‘i vΔƒn bαΊ£n}
    D3 -->|⚑ YΓͺu cαΊ§u phΓͺ duyệt| D4[πŸ“ Booking/Lending/Meeting Minutes]
    D3 -->|πŸ“„ VΔƒn bαΊ£n thường| D5[πŸ‘₯ PhΓ’n cΓ΄ng xα»­ lΓ½]
    D4 --> D6[⏳ Chờ phΓͺ duyệt - Pending]
    D6 --> D7{πŸ‘” Ban GiΓ‘m Δ‘α»‘c xα»­ lΓ½}
    D7 -->|✍️ KΓ½ sα»‘| D8[βœ… TrαΊ‘ng thΓ‘i: Signed]
    D8 --> D9[πŸ”„ PhΓͺ duyệt/Tα»« chα»‘i]
    D9 --> D10{❓ KαΊΏt quαΊ£}
    D10 -->|βœ… Approved| D11[πŸ“€ TαΊ‘o vΔƒn bαΊ£n Δ‘i + CαΊ­p nhαΊ­t nguα»“n]
    D10 -->|❌ Rejected| D12[πŸ“§ ThΓ΄ng bΓ‘o tα»« chα»‘i]
    D5 --> D13[πŸ“Š Theo dΓ΅i tiαΊΏn Δ‘α»™/nhαΊ―c việc]
    D13 --> D14[βœ… HoΓ n tαΊ₯t + lΖ°u trα»―]

    E1[πŸ“€ VΔƒn bαΊ£n Δ‘i] --> E2{πŸ” Nguα»“n tαΊ‘o}
    E2 -->|πŸ€– Tα»± Δ‘α»™ng tα»« phΓͺ duyệt| E3[πŸ“‹ NhαΊ­n nα»™i dung tα»« vΔƒn bαΊ£n Δ‘αΊΏn]
    E2 -->|✏️ SoαΊ‘n thαΊ£o thα»§ cΓ΄ng| E4[πŸ“ SoαΊ‘n thαΊ£o nα»™i dung]
    E3 --> E5[πŸ“¨ PhΓ‘t hΓ nh + lΖ°u trα»―]
    E4 --> E6[βœ… Duyệt/ban hΓ nh]
    E6 --> E5
    
    style D8 fill:#f3e5f5
    style D11 fill:#e8f5e9
    style D12 fill:#ffebee
Loading

πŸ‘₯ 5.6. HR Core Workflow

flowchart TD
    H1[🏒 TαΊ‘o Δ‘Ζ‘n vα»‹/phΓ²ng ban] --> H2[πŸ‘” TαΊ‘o chα»©c vα»₯]
    H2 --> H3[πŸ‘€ TαΊ‘o hα»“ sΖ‘ nhΓ’n viΓͺn]
    H3 --> H4[πŸ“‹ CαΊ­p nhαΊ­t lα»‹ch sα»­ cΓ΄ng tΓ‘c]
    H3 --> H5[πŸŽ“ QuαΊ£n lΓ½ chα»©ng chỉ/bαΊ±ng cαΊ₯p]
    H6[πŸ” PhΓ’n quyền người dΓΉng] --> H3
    H7[πŸ“„ NhΓ’n viΓͺn liΓͺn kαΊΏt vα»›i vΔƒn bαΊ£n] --> H8[✍️ PhΓͺ duyệt/kΓ½ vΔƒn bαΊ£n]
    H3 --> H7
    
    style H3 fill:#e3f2fd
    style H8 fill:#f3e5f5
Loading

πŸ€– 5.7. AI Workflow - Meeting Minutes

flowchart TD
    AI1[πŸ“… Cuα»™c họp diα»…n ra] --> AI2[πŸ§™ Mở AI Meeting Wizard]
    AI2 --> AI3[πŸ€– AI tαΊ‘o biΓͺn bαΊ£n tα»± Δ‘α»™ng]
    AI3 --> AI4{πŸ‘€ Người dΓΉng}
    AI4 -->|✏️ Chỉnh sα»­a| AI3
    AI4 -->|πŸ’Ύ LΖ°u lΓ m vΔƒn bαΊ£n Δ‘αΊΏn| AI5[πŸ“„ TαΊ‘o vΔƒn bαΊ£n Δ‘αΊΏn]
    AI5 --> AI6[πŸ“€ Gα»­i Ban GiΓ‘m Δ‘α»‘c]
    AI6 --> AI7[✍️ KΓ½ sα»‘ + PhΓͺ duyệt]
    AI7 --> AI8[πŸ“‹ TαΊ‘o vΔƒn bαΊ£n Δ‘i - BiΓͺn bαΊ£n chΓ­nh thα»©c]
    AI8 --> AI9[πŸ“§ Gα»­i cho cΓ‘c bΓͺn liΓͺn quan]
    
    style AI3 fill:#e1f5fe
    style AI7 fill:#f3e5f5
    style AI8 fill:#e8f5e9
Loading

⭐ 6. Key Features

πŸ”„ Automated Approval Workflow

Request β†’ Document β†’ Approve β†’ Execute
   ↓         ↓          ↓         ↓
 User    Auto-gen   E-sign    Update

Benefits:

  • βœ… GiαΊ£m thời gian xα»­ lΓ½ 80%
  • βœ… LoαΊ‘i bỏ sai sΓ³t thα»§ cΓ΄ng
  • βœ… Truy vαΊΏt Δ‘αΊ§y Δ‘α»§ lα»‹ch sα»­
  • βœ… ThΓ΄ng bΓ‘o real-time

πŸ” Digital Signature

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  ✍️  Draw Signature     β”‚
β”‚  ⏱️  Timestamp          β”‚
β”‚  πŸ‘€ User Authentication β”‚
β”‚  🏒 Department Link     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Features:

  • βœ… VαΊ½ chα»― kΓ½ trα»±c tiαΊΏp
  • βœ… XΓ‘c thα»±c người kΓ½
  • βœ… LΖ°u kΓ¨m timestamp
  • βœ… KhΓ΄ng thể chỉnh sα»­a

πŸ€– AI-Powered Assistant

AI Feature Use Case
πŸ“ Minutes TαΊ‘o biΓͺn bαΊ£n cuα»™c họp
πŸ• Scheduling Gợi Γ½ thời gian phΓΉ hợp
πŸ“‹ Agenda TαΊ‘o nα»™i dung chΖ°Ζ‘ng trΓ¬nh
πŸ’¬ Chatbot Trợ lΓ½ αΊ£o hα»— trợ 24/7

Powered by OpenAI GPT-4

⚑ Smart Automation

Automated Tasks:

# Auto reminders
βœ“ Maintenance schedule
βœ“ Overdue asset lending
βœ“ Document deadlines

# Auto updates
βœ“ Booking status
βœ“ Document workflow
βœ“ Email notifications

Cron Jobs: Every 1 hour

πŸ”— Multi-Platform Integration


Google Calendar
Sync events

Zoom
Auto meeting link

Email
SMTP notifications

OpenAI
GPT-4 integration

βš™οΈ 8. Installation Guide

πŸš€ HΖ°α»›ng dαΊ«n cΓ i Δ‘αΊ·t tα»« A-Z

πŸ“‹ 7.1. System Requirements

Component Requirement
OS Ubuntu 20.04+ / Debian 11+ / WSL2
Python 3.10
PostgreSQL 12+ (via Docker recommended)
RAM Minimum: 4GB | Recommended: 8GB+
Storage Minimum: 10GB free space
Browser Chrome 90+ / Firefox 88+ / Edge 90+

πŸ”§ 7.2. Quick Start

Step 1️⃣: Clone Repository

git clone https://gitlab.com/anhlta/odoo-fitdnu.git
cd odoo-fitdnu

Step 2️⃣: Install System Dependencies

sudo apt-get update && sudo apt-get install -y \
    libxml2-dev libxslt-dev libldap2-dev libsasl2-dev \
    libssl-dev python3.10-distutils python3.10-dev \
    build-essential libffi-dev zlib1g-dev python3.10-venv \
    libpq-dev wkhtmltopdf

Step 3️⃣: Setup Python Virtual Environment

# Create virtual environment
python3.10 -m venv ./venv

# Activate
source venv/bin/activate  # Linux/Mac
# or
.\venv\Scripts\activate   # Windows

# Install Python packages
pip3 install --upgrade pip
pip3 install -r requirements.txt

Step 4️⃣: Setup Database with Docker

# Install Docker (if not installed)
sudo apt-get install docker.io docker-compose
sudo systemctl start docker
sudo systemctl enable docker

# Start PostgreSQL container
sudo docker-compose up -d

# Verify container is running
sudo docker ps
πŸ“¦ Docker Compose Configuration
version: '3'
services:
  postgres:
    image: postgres:14
    environment:
      POSTGRES_USER: odoo
      POSTGRES_PASSWORD: odoo
      POSTGRES_DB: postgres
    ports:
      - "5431:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Step 5️⃣: Configure Odoo

# Copy configuration template
cp odoo.conf.template odoo.conf

Edit odoo.conf:

[options]
addons_path = addons
db_host = localhost
db_password = odoo
db_user = odoo
db_port = 5431
xmlrpc_port = 8069
limit_time_cpu = 600
limit_time_real = 1200
workers = 2

Step 6️⃣: Initialize Database

# First time setup - Install base modules
./odoo-bin -c odoo.conf -d fitdnu_db \
  -i base,nhan_su,quan_ly_van_ban,dnu_meeting_asset

# Wait for installation to complete...

Step 7️⃣: Start Odoo Server

# Normal mode
./odoo-bin -c odoo.conf

# Development mode (with auto-reload)
./odoo-bin -c odoo.conf --dev=all

Step 8️⃣: Access System

🌐 URL:      http://localhost:8069
πŸ’Ύ Database: fitdnu_db
πŸ‘€ Username: admin
πŸ”‘ Password: admin

πŸ”Œ 7.3. Configure Integrations

πŸ€– OpenAI Integration

  1. Login to Odoo as admin
  2. Go to Settings β†’ Technical β†’ OpenAI Configuration
  3. Enter your OpenAI API Key
  4. Select model: gpt-4 or gpt-3.5-turbo
  5. Click Save and Test Connection
# Get API key from: https://platform.openai.com/api-keys
OPENAI_API_KEY = "sk-..."

πŸ“… Google Calendar Integration

  1. Go to Settings β†’ Integrations β†’ Google Calendar
  2. Create OAuth2 credentials at Google Cloud Console
  3. Configure callback URL: http://localhost:8069/google_calendar/authentication
  4. Enter Client ID and Client Secret
  5. Click Connect and authorize

πŸŽ₯ Zoom Integration

  1. Create Zoom App at Zoom Marketplace
  2. Get API Key and API Secret
  3. In Odoo: Settings β†’ Integrations β†’ Zoom
  4. Enter credentials and activate

πŸ“§ Email Server Configuration

  1. Go to Settings β†’ Technical β†’ Outgoing Mail Servers
  2. Create new server with SMTP details:
SMTP Server: smtp.gmail.com
SMTP Port: 587
Security: TLS
Username: your-email@gmail.com
Password: app-password
  1. Click Test Connection

πŸ”„ 7.4. Update & Maintenance

# Update module after code changes
./odoo-bin -c odoo.conf -d fitdnu_db -u dnu_meeting_asset --stop-after-init

# Update multiple modules
./odoo-bin -c odoo.conf -d fitdnu_db \
  -u dnu_meeting_asset,quan_ly_van_ban --stop-after-init

# Clear cache
rm -rf ~/.local/share/Odoo/sessions/*

# Restart Odoo
# Press Ctrl+C to stop, then start again

πŸ“š 8. User Guide

πŸ’‘ HΖ°α»›ng dαΊ«n sα»­ dα»₯ng cΓ‘c tΓ­nh nΔƒng chΓ­nh

πŸ“… 8.1. Meeting Room Booking with Approval

Step-by-Step Guide

graph LR
    A[Create<br/>Booking] --> B[Auto<br/>Document]
    B --> C[Approve &<br/>Sign]
    C --> D[Confirmed]
    style A fill:#e3f2fd
    style C fill:#f3e5f5
    style D fill:#e8f5e9
Loading

Detailed Steps:

  1. Create Booking

    • Navigate to: Meeting Room β†’ Create Booking
    • Fill in: Room, Date/Time, Participants
    • Add meeting purpose and notes
  2. Automatic Process

    • System creates incoming document automatically
    • Sends notification to Board of Directors
    • Document code: YC/2026/xxxx
  3. Approval

    • Board accesses: Incoming Documents
    • Reviews booking details
    • Signs digitally and approves/rejects
  4. Confirmation

    • System creates outgoing document: PD/2026/xxxx
    • Updates booking status β†’ Confirmed
    • Sends email confirmation
    • Syncs with Google Calendar
    • Creates Zoom meeting link

πŸ€– 8.2. AI Meeting Minutes Generation

Using AI Assistant

  1. Open AI Wizard

    Meeting Room β†’ [Select Meeting] β†’ AI Meeting Wizard
    
  2. Generate Minutes

    • Select: "Create Meeting Minutes"
    • AI analyzes: participants, time, room, purpose
    • Generates complete minutes automatically
  3. Review & Edit

    • Review AI-generated content
    • Edit if needed
    • Add additional notes
  4. Save as Document

    • Click: "Save as Incoming Document"
    • Document sent to Board for approval
    • After approval β†’ Official document created

AI Features:

Feature Description
πŸ“ Smart Content AI understands context and generates appropriate content
🎯 Structured Format Follows official meeting minutes format
⚑ Fast Generates in seconds
πŸ”„ Editable Can be modified before saving

✍️ 8.3. Digital Signature

Signing Documents

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Draw your signature here       β”‚
β”‚                                  β”‚
β”‚   [Signature Canvas]             β”‚
β”‚                                  β”‚
β”‚   [Clear] [Save]                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

How to Sign:

  1. Open document requiring signature
  2. Click "Sign" button
  3. Draw signature using mouse/touchscreen
  4. Click "Save"
  5. Signature is saved with:
    • βœ… Timestamp
    • βœ… User authentication
    • βœ… Department linkage
    • βœ… Cannot be edited

πŸ“¦ 8.4. Asset Lending with Approval

Lending Process

Step Action System Response
1️⃣ Create lending request Check asset availability
2️⃣ Select asset & duration Auto-create document
3️⃣ Wait for approval Notification sent
4️⃣ Board approves Asset status β†’ "Lending"
5️⃣ Use asset Auto-reminder before due
6️⃣ Return asset Status β†’ "Available"

Auto-Reminders:

  • πŸ“§ 3 days before due date
  • πŸ“§ On due date
  • πŸ“§ After overdue (daily)

⚑ 8.5. Quick Approval

Approve from List View

For Bookings:

Meeting Room β†’ Bookings β†’ Filter: Pending
β†’ Click [Approve] or [Reject]
β†’ Enter reason (if rejecting)
β†’ Done!

For Lending:

Assets β†’ Lending Requests β†’ Filter: Pending
β†’ Click [Approve] or [Reject]
β†’ System updates automatically

Benefits:

  • ⚑ No need to open document
  • πŸš€ Batch approval possible
  • πŸ“Š Real-time status update
  • πŸ“§ Auto-notification

πŸ—οΈ 9. Project Structure

Business-Internship/
β”‚
β”œβ”€β”€ πŸ“ addons/                       # Custom Odoo Modules
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“¦ nhan_su/                  # HR Management Module
β”‚   β”‚   β”œβ”€β”€ models/                  # Python models
β”‚   β”‚   β”‚   β”œβ”€β”€ chuc_vu.py          # Position model
β”‚   β”‚   β”‚   β”œβ”€β”€ don_vi.py           # Department model
β”‚   β”‚   β”‚   β”œβ”€β”€ nhan_vien.py        # Employee model
β”‚   β”‚   β”‚   └── lich_su_cong_tac.py # Work history
β”‚   β”‚   β”œβ”€β”€ views/                   # XML views
β”‚   β”‚   β”œβ”€β”€ security/                # Access rights
β”‚   β”‚   β”‚   β”œβ”€β”€ ir.model.access.csv
β”‚   β”‚   β”‚   └── security.xml
β”‚   β”‚   └── data/                    # Master data
β”‚   β”‚
β”‚   β”œβ”€β”€ πŸ“¦ quan_ly_van_ban/          # Document Management
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   β”œβ”€β”€ van_ban_den.py      # Incoming documents + approval
β”‚   β”‚   β”‚   β”œβ”€β”€ van_ban_di.py       # Outgoing documents
β”‚   β”‚   β”‚   └── van_ban_task.py     # Task reminders
β”‚   β”‚   β”œβ”€β”€ wizards/
β”‚   β”‚   β”‚   └── van_ban_sign_wizard.py  # Digital signature wizard
β”‚   β”‚   β”œβ”€β”€ views/
β”‚   β”‚   β”‚   β”œβ”€β”€ van_ban_den_views.xml
β”‚   β”‚   β”‚   └── van_ban_di_views.xml
β”‚   β”‚   └── data/
β”‚   β”‚       └── sequence.xml         # Document numbering
β”‚   β”‚
β”‚   └── πŸ“¦ dnu_meeting_asset/        # Asset & Meeting Module
β”‚       β”œβ”€β”€ models/
β”‚       β”‚   β”œβ”€β”€ dnu_asset.py         # Asset management
β”‚       β”‚   β”œβ”€β”€ dnu_meeting_booking.py  # Meeting booking
β”‚       β”‚   β”œβ”€β”€ dnu_asset_lending.py    # Asset lending
β”‚       β”‚   β”œβ”€β”€ openai_service.py    # OpenAI integration
β”‚       β”‚   └── ai_history.py        # AI request logs
β”‚       β”œβ”€β”€ wizards/
β”‚       β”‚   └── ai_wizard.py         # AI assistant wizard
β”‚       β”œβ”€β”€ views/
β”‚       β”‚   β”œβ”€β”€ dnu_meeting_booking_views.xml
β”‚       β”‚   β”œβ”€β”€ dnu_asset_views.xml
β”‚       β”‚   └── ai_wizard_views.xml
β”‚       β”œβ”€β”€ data/
β”‚       β”‚   └── openai_data.xml      # OpenAI config
β”‚       β”œβ”€β”€ static/src/
β”‚       β”‚   β”œβ”€β”€ js/
β”‚       β”‚   β”‚   └── signature_widget.js  # Signature widget
β”‚       β”‚   └── css/
β”‚       β”‚       └── signature_widget.css
β”‚       └── security/
β”‚           β”œβ”€β”€ ir.model.access.csv
β”‚           └── security.xml
β”‚
β”œβ”€β”€ πŸ“ odoo/                         # Odoo Core Framework
β”œβ”€β”€ πŸ“ doc/                          # Official Documentation
β”œβ”€β”€ πŸ“ docs/                         # Project Documentation
β”‚   β”œβ”€β”€ logo/                        # Logos & Images
β”‚   └── projects/                    # Student Projects
β”‚       └── K15/                     # Year 2024 projects
β”‚
β”œβ”€β”€ πŸ“„ odoo-bin                      # Odoo Executable
β”œβ”€β”€ πŸ“„ odoo.conf                     # Configuration File
β”œβ”€β”€ πŸ“„ docker-compose.yml            # Docker PostgreSQL Setup
β”œβ”€β”€ πŸ“„ requirements.txt              # Python Dependencies
└── πŸ“„ README.md                     # This File

πŸ“¦ Module Dependencies

graph TD
    A[base] --> B[nhan_su]
    A --> C[quan_ly_van_ban]
    A --> D[dnu_meeting_asset]
    B --> C
    B --> D
    C --> D
    
    style A fill:#e3f2fd
    style B fill:#fff3e0
    style C fill:#f3e5f5
    style D fill:#e8f5e9
Loading

πŸ” 10. Access Control & Permissions

Asset & Meeting Management
Meeting User βœ… Create bookings
βœ… View own bookings
❌ Cannot approve
Meeting Manager βœ… All Meeting User rights
βœ… Manage all bookings
βœ… Configure meeting rooms
βœ… View reports
Asset User βœ… Create lending requests
βœ… View own assets
βœ… Return borrowed assets
❌ Cannot manage assets
Asset Manager βœ… All Asset User rights
βœ… Create/Edit assets
βœ… Assign assets to employees
βœ… Manage maintenance
βœ… View all reports
Document Management
Document User βœ… View documents
βœ… Search & filter
❌ Cannot create/edit
Document Manager βœ… All Document User rights
βœ… Create/Edit documents
βœ… Assign tasks
βœ… Manage document flow
❌ Cannot approve
Document Approver
(Board of Directors)
βœ… All Document Manager rights
βœ… Digital Signature
βœ… Approve/Reject requests
βœ… Create outgoing documents
Human Resource Management
HR User βœ… View employee information
βœ… View departments
❌ Cannot edit
HR Manager βœ… All HR User rights
βœ… Create/Edit employees
βœ… Manage departments
βœ… Manage positions
βœ… Work history tracking
βœ… Certificate management

πŸ”‘ Special Permissions

Permission Required Role Description
Digital Signature Document Approver Only Board members can sign
AI Features All Users Anyone can use AI assistant
Auto Document Creation System Triggered by booking/lending
Email Notifications System Auto-sent to relevant users

πŸ§ͺ 11. Testing & Quality Assurance

πŸ” Testing Approval Workflow

# 1. Start test database
./odoo-bin -c odoo.conf -d test_db --test-enable

# 2. Test scenarios

Test Cases:

# Scenario Expected Result
1 Create booking Auto-create incoming document
2 Approve booking Create outgoing document + update status
3 Reject booking Send rejection notification
4 Create lending Check asset availability
5 Overdue lending Auto-reminder sent
6 AI meeting minutes Generate content successfully

πŸ€– Testing AI Features

Steps:

  1. Configure OpenAI API key
  2. Go to: Settings β†’ Technical β†’ OpenAI Configuration
  3. Click "Test Connection"
  4. Try each AI feature:
    • βœ… Meeting minutes generation
    • βœ… Smart scheduling
    • βœ… Agenda creation
    • βœ… AI chat
  5. Check AI History for logs

Verify:

# Check AI service status
Settings β†’ Technical β†’ AI History
β†’ View request/response logs
β†’ Check success rate

✍️ Testing Digital Signature

  1. Open incoming document
  2. Click "Sign" button
  3. Draw signature
  4. Save and verify:
    • βœ… Signature image saved
    • βœ… Timestamp recorded
    • βœ… User info linked
    • βœ… Cannot edit after saving

πŸ› 12. Troubleshooting

❌ Common Issues & Solutions

πŸ”΄ Database Connection Failed

# Check PostgreSQL container
sudo docker ps

# Expected output:
CONTAINER ID   IMAGE         STATUS
xxxxx          postgres:14   Up 10 minutes

# If not running:
sudo docker-compose up -d

# Check port:
sudo netstat -tulpn | grep 5431

πŸ”΄ Module Not Loading

# Option 1: Upgrade module
./odoo-bin -c odoo.conf -d your_db -u module_name --stop-after-init

# Option 2: Clear cache
rm -rf ~/.local/share/Odoo/sessions/*
rm -rf ~/.local/share/Odoo/filestore/*

# Option 3: Reinstall
./odoo-bin -c odoo.conf -d your_db -i module_name --stop-after-init

πŸ”΄ OpenAI Not Working

Checklist:

  • βœ… API key configured correctly
  • βœ… Internet connection available
  • βœ… API key has credits
  • βœ… Model name correct (gpt-4 or gpt-3.5-turbo)
# Test API key manually
curl https://api.openai.com/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"

# Check Odoo logs
tail -f /var/log/odoo/odoo.log | grep -i "openai"

πŸ”΄ Digital Signature Not Showing

# Clear browser cache
Ctrl + Shift + Delete

# Check JavaScript console
F12 β†’ Console β†’ Look for errors

# Upgrade module
./odoo-bin -c odoo.conf -d your_db -u quan_ly_van_ban --stop-after-init

# Check static files
ls -la addons/dnu_meeting_asset/static/src/js/

πŸ”΄ Email Not Sending

Check:

  1. SMTP server configured: Settings β†’ Technical β†’ Outgoing Mail Servers
  2. Test connection in Odoo
  3. Check firewall: port 587 or 465 open
  4. Gmail users: Use app password, not regular password

πŸ“Š Performance Optimization

Database Optimization

-- Connect to PostgreSQL
sudo docker exec -it postgres_container psql -U odoo

-- Reindex database
REINDEX DATABASE your_db_name;

-- Vacuum analyze
VACUUM ANALYZE;

-- Check database size
SELECT pg_database.datname, 
       pg_size_pretty(pg_database_size(pg_database.datname)) AS size
FROM pg_database;

Odoo Configuration for Production

# odoo.conf - Production settings
[options]
workers = 4                      # CPU cores * 2
max_cron_threads = 2
limit_memory_hard = 2684354560   # 2.5 GB
limit_memory_soft = 2147483648   # 2 GB
limit_time_cpu = 600
limit_time_real = 1200
db_maxconn = 64

Performance Tips:

  • βœ… Use workers > 0 for production
  • βœ… Set memory limits to prevent crashes
  • βœ… Regular database vacuum
  • βœ… Monitor logs for slow queries
  • βœ… Use PostgreSQL 14+ for better performance

🀝 13. Contributing Guide

🎯 HΖ°α»›ng dαΊ«n Δ‘Γ³ng gΓ³p cho dα»± Γ‘n

πŸ“ Coding Standards

Python (PEP 8)

# Good βœ…
class AssetLending(models.Model):
    _name = 'dnu.asset.lending'
    _description = 'Asset Lending'
    
    def action_approve(self):
        """Approve lending request"""
        self.state = 'approved'

JavaScript (ES6+)

// Good βœ…
const signatureWidget = {
    init() {
        this.canvas = document.getElementById('canvas');
        this.context = this.canvas.getContext('2d');
    },
    
    clear() {
        this.context.clearRect(0, 0, width, height);
    }
};

General Rules:

  • βœ… Use meaningful variable/function names
  • βœ… Add docstrings for Python functions
  • βœ… Comment complex logic
  • βœ… Follow existing code style
  • βœ… Write modular, reusable code

πŸ”„ Git Workflow

gitGraph
    commit id: "main"
    branch feature/booking-approval
    checkout feature/booking-approval
    commit id: "Add booking model"
    commit id: "Add approval logic"
    commit id: "Add tests"
    checkout main
    merge feature/booking-approval
    commit id: "Release v1.1"
Loading

Steps:

# 1. Create feature branch
git checkout -b feature/your-feature-name

# 2. Make changes and commit
git add .
git commit -m "feat: add new feature description"

# 3. Push to remote
git push origin feature/your-feature-name

# 4. Create Merge Request on GitLab
# Go to: https://gitlab.com/anhlta/odoo-fitdnu
# Click: "Create Merge Request"

πŸ’¬ Commit Message Convention

We follow Conventional Commits standard:

<type>(<scope>): <subject>

<body>

<footer>

Types:

Type Description Example
feat New feature feat(asset): add lending approval
fix Bug fix fix(booking): resolve conflict check
docs Documentation docs(readme): update install guide
style Code formatting style: apply PEP8 formatting
refactor Code restructuring refactor(meeting): optimize query
test Add tests test(lending): add approval tests
chore Dependencies, configs chore: update requirements.txt
perf Performance improvement perf(asset): optimize search

Examples:

# Good βœ…
git commit -m "feat(ai): add meeting minutes generator"
git commit -m "fix(signature): resolve canvas size issue"
git commit -m "docs: update API documentation"

# Bad ❌
git commit -m "update"
git commit -m "fix bug"
git commit -m "changes"

πŸ§ͺ Testing Before Commit

Checklist:

# 1. Check Python syntax
python -m py_compile addons/your_module/**/*.py

# 2. Test module installation
./odoo-bin -c odoo.conf -d test_db -i your_module --stop-after-init

# 3. Test module upgrade
./odoo-bin -c odoo.conf -d test_db -u your_module --stop-after-init

# 4. Check for errors
tail -f odoo.log | grep -i error

# 5. Test in browser
# - Clear cache (Ctrl + Shift + Delete)
# - Test functionality
# - Check JavaScript console (F12)

πŸ“¦ Pull Request Guidelines

PR Title Format:

[Module] Brief description

Example:
[dnu_meeting_asset] Add AI meeting minutes generation
[quan_ly_van_ban] Implement digital signature

PR Description Template:

## Description
Brief description of what this PR does

## Changes
- Added feature X
- Fixed bug Y
- Updated documentation Z

## Screenshots
(If applicable, add screenshots)

## Testing
- [ ] Tested locally
- [ ] Module installs correctly
- [ ] No console errors
- [ ] All features working

## Related Issues
Closes #123

🎨 Code Review Checklist

For Reviewers:

  • Code follows style guidelines
  • Changes are well documented
  • No hardcoded values
  • Security: no SQL injection risks
  • Performance: no N+1 queries
  • i18n: strings are translatable
  • Tests pass successfully
  • Documentation updated

πŸ“ž 14. Support & Community

🌟 Get Help & Stay Connected


Email
aiotlab@dainam.edu.vn

Facebook
AIoTLab DNU

Website
DaiNam University

GitLab
odoo-fitdnu

πŸ“š Resources

Resource Link
Odoo Documentation πŸ“– docs.odoo.com
Python 3.10 Docs πŸ“– docs.python.org
PostgreSQL Guide πŸ“– postgresql.org
OpenAI API πŸ“– platform.openai.com

πŸ› Report Issues

Found a bug? Have a suggestion?

  1. Check existing issues
  2. If not found, create new issue
  3. Provide details:
    • Steps to reproduce
    • Expected vs actual behavior
    • Screenshots if applicable
    • Environment (OS, Python version, etc.)

πŸ’Ό For Students

Internship Opportunities:

  • πŸ“§ Contact: aiotlab@dainam.edu.vn
  • πŸ“… Duration: 12 weeks
  • 🎯 Topics: ERP Development, AI Integration, Business Process

Requirements:

  • Basic Python & JavaScript knowledge
  • Interest in ERP systems
  • Willing to learn Odoo framework

πŸ“œ 15. License & Copyright

Copyright Β© 2024 AIoTLab
Faculty of Information Technology
DaiNam University

All rights reserved.

License Information:

  • This project is proprietary software for educational purposes
  • Based on Odoo Community Edition (LGPL v3)
  • Custom modules are property of DaiNam University
  • For commercial use, contact: aiotlab@dainam.edu.vn

πŸ™ 16. Acknowledgments

Special Thanks To:

  • πŸŽ“ DaiNam University - For providing resources and support
  • πŸ‘₯ Faculty of Information Technology - For guidance and mentorship
  • πŸ§‘β€πŸ’» Odoo Community - For the amazing open-source platform
  • πŸ€– OpenAI - For GPT-4 API integration
  • πŸ‘¨β€πŸŽ“ Students - For testing and feedback

⭐ Star This Project

If you find this project helpful, please give it a ⭐ on GitLab!

GitLab


Made with ❀️ by AIoTLab - DaiNam University

Last Updated: January 2026