Thứ Bảy, 20 tháng 3, 2021

Giới thiệu ERPNext



Sau khoảng 8 tháng làm ERPNext mình quyết định tổng kết lại 1 số cái đã làm được bằng ERPNext.

Phần đầu tiên giới thiệu về cơ bản ERPNext. 



Thông thường ở tất cả các công ty đều sẽ có hệ thống quản lý: Kế toán tài chính, bán hàng, đơn hàng, nhân viên, lương, thuế, sản phẩm, quản lý dự án … Từng phần trong đó đều rất phức tạp, rất mất thời gian phát triển và hoàn thiện cho từng loại công ty có đặc thù khác nhau. Nắm được nhu cầu của người dùng (công ty) nên các công ty lớn bắt đầu tạo nên hệ thống gọi chung là ERP (Enterprise Resource Planning Systems) - Quản lý, lên kế hoạch sử dụng tài nguyên công ty.

Phần mềm ERP có những điểm mạnh phù hợp cho doanh nghiệp như tối ưu hóa hoạt động từng bộ phận, quy trình để tiết kiệm chi phí quản lý từ đó gia tăng lợi nhuận.

Hiện trên thị trường có rất nhiều phần mềm ERP, mã nguồn mở, ra đời từ lâu và mang lại nhiều thành công như ERP Odoo hay còn gọi là OpenERP, SAP (System Application Programing) công ty hàng đầu về triển khai, phát triển ERP, ERPNext

So sánh ERPNext với 2 đối thủ nặng kí vừa được gọi tên.

Bài viết sẽ tập trung vào ERPNext, được phát triển bởi Frappé Technologies Pvt. Ltd, ra đời phiên bản 1.0 từ 2010, hiện nay bản phát hành mới nhất là ERPNext ver 12, và đang beta bản ERPNext ver 13.

Yêu cầu với Server là phải có ram tối thiếu 4G để cài đặt,
Phần mềm ERPNext có 2 phần frappe framework Frappe và phần cấu hình dữ liệu ERPNext , trên trang chủ Erpnext có phần hướng dẫn cài đặt theo 3 cách:
1. Docker Installation
2. Easy Install Script
3. Manual Installation

Với việc cài đặt Manual sẽ giúp bạn hiểu hơn về ErpNext, về cơ bản trang web sẽ chạy sau khi cài xong Frappe framework, sau đó bạn sẽ git clone app erpnext về máy rồi install nó vào site.

Mỗi site là 1 phần riêng biệt và có thể cài những app khác nhau vào site, mỗi site có 1 database riêng biệt, có thể gắn với những Domain, cấu hình ở những app khác nhau sẽ dẫn đến Site khác nhau cho nhiều doanh nghiệp, nhưng đều này không khuyến khích bạn tạo Trang web của tất cả các khách hàng trên cùng 1 Server.

Cần đặt ErpNext ở chế độ phát triển (Development) để có thể vào sâu nhiều phần trong cấu hình, thay đổi chức năng hệ thống, sau khi hoàn thiện sản phẩm thì chuyển sang chế độ (Production) để chạy thật.

Ngôn ngữ viết nên ERPNext là Python ở Backend, Javascript(VueJS) ở Frontend, mặc định Database là MariaDB, ngoài ra có lựa chọn dùng PostgreSQL thì mình chưa thử.


Developer Cheatsheet trong Frappe Framework



Giao diện sau khi cài đặt và đăng nhập.

Phần quản lý dữ liệu lưu vào Database là các Doctype:


Các kiểu dữ liệu cho các field trong Erpnext, tương đối đầy đủ theo nhu cầu của mình, chưa cần bổ sung gì thêm.

Ngoài ra Doctype, còn có kiểu dữ liệu WebForm có thể cho người dùng không cần đăng nhập hoặc đăng nhập để sử dụng nhập dữ liệu và lưu trữ vào doctype sau đó.

Kiểu dữ liệu Page, thiết kế giao diện 1 trang cũng bằng các field tùy ý theo nhu cầu người dùng, trang này cũng không trực tiếp lưu dữ liệu qua Database mà lưu dữ liệu sang Doctype.


Kết cấu của mỗi doctype, webform hay page đều gồm các file JSON để lưu trữ cấu hình các field, file javascript chứ các lệnh, trigger để thao tác giữa các field hay người dùng thao tác, file python dùng để tạo các function có sẵn, dùng khi người dùng click vào giao diện hoặc các chức năng liên kết (CRUD) với Database.



Ngoài ra còn có thể đăng nhập ERPNext trên thiết bị di động bằng cách tải App ERPNext sau đó nhập link trang web của bạn và đăng nhập, rất hữu ích.

Thứ Sáu, 6 tháng 11, 2020

4 Tháng đi làm dev

 Sau khoảng 4 tháng đi làm thì mình vẫn còn giữ nguyên vị trí công việc, có vẻ ổn với người mới lập trình như mình.

May có team làm việc rất hòa đồng và đoàn kết, mấy anh làm chung thì rất giỏi và sẵn sàng huớng dẫn mình những cái mình không biết, chủ yếu code javascript và làm cho nó hoạt động :D


Hôm nay ăn đùi cừu ngon vãi, thứ vui chơi này thật khác so với mình xưa giờ.

Học thêm nhiều điều mới và phải cố gắng nhiều nữa.

Reivew lại mọi thứ thì thấy mình còn nhiều điểm kém thật, nên nỗ lực nhiều hơn.

Người nào có gia đình bên cạnh làm điểm tựa tốt thì khác, mình khác, ko có điểm tựa nàothì phải cố gắng nhiều để lo cho gia đình mình, xếp công việc hay gia đình quan trọng hơn thì mình nghĩ gia đình quan trọng hơn dù nếu phải chọn thì mình cũng chọn công việc.

Nên chọn công việc đủ 8 tiếng/ngày rồi phần còn lại sẽ học hỏi và giải trí. Nghỉ ngơi hoàn toàn thứ 7 và chủ nhật. Lúc làm thì nên thật sự cố gắng đừng lãng phí thời gian và sắp xếp tốt lịch để cho bản thân được nghỉ ngơi. Còn dành thời gian cho bản thân và những người quan trọng của mình, càng lúc mình càng thấy nợ nhiều người hơn. Nhưng cũng có nhiều người nợ mình. :)) chẳng gì cả cuộc sống mà đừng trốn là dc.

À phần học hỏi sẽ phải học nhiều hơn phần giải trí nhé. 

Học python, học js, giờ học html css cho chắc tí, xong học Vuejs và React làm full stack. Hoàn thiện phần django và tìm hiểu thêm Geo Django. rồi học thật giỏi DB là lên senior.

Python cũng phải học thêm vài lần chứ code vẫn còn ngu ngốc lắm, còn phải review cho các bạn để mau lên trình.

Chủ Nhật, 19 tháng 7, 2020

Đêm trước ngày đi làm đầu tiên làm developer

Sau khoảng 10 lần phỏng vấn thì cuối cùng mình cũng nhận được offer tốt đến từ 1 công ty Úc có trụ sở ở VN, lương ổn so với trình độ của 1 sinh viên mới ra trường như mình (dĩ nhiên là đi làm 2 năm ngành bản đồ) 
Ngày nhận việc mình thấy rất vui, các anh rất nhiệt tình và vui vẻ, hi vọng công việc sẽ cực kì hay ho, có cơ hội để phát triển thật nhiều và thành tài.
Dĩ nhiên mình còn rất nhiều phần phải học để hoàn thiện hơn.

Thứ Ba, 7 tháng 7, 2020

Kinh nghiệm phỏng vấn n + 2 lần

Sau 1 cơ số lần phỏng vấn, mình đã lên level 2, nhận ra có 1 số kinh nghiệm phỏng vấn nay chia sẻ lại cho mọi người, về cơ bản trên thị trường làm việc hiện nay có 2 loại công ty là outsource và product.
Mình thì pv cả 2.
Công việc đầu tiên thì nên là outsource mình thấy sẽ dễ dàng học được nhiều thứ, còn code product sẽ yêu cầu nhiều hơn và 1 khả năng làm việc cực kì chăm chỉ và khám phá cái mới.
Now mình đã nhận được việc, làm Python dev 1 framework của python. Rất hay ho và này nọ.
Cho bạn nào không có background về CNTT muốn theo ngành lập trình, thường thì sinh viên học mất 4 - 5 năm và thực tập làm luận văn để tốt nghiệp, mình chỉ học và phỏng vấn vỏn vẹn 11 tháng để đi làm với mức lương cao hơn các bạn mới ra trường, đồng nghĩa với việc mình phải cố gắng gấp 4 lần các bạn trẻ với thời gian giới hạn của 1 ngừoi đi làm chỉ code dc thứ 7 và chủ nhật, hằng đêm 2 -3 giờ, chưa kể phải bổ sung tiếng anh để career tốt hơn và nói chuyện với người nước ngoài.
Con đường đến với python cũng gian nan, chỉ cần không bỏ cuộc thì trước sau gì bạn cũng thành công, phỏng vấn cỡ 10 lần là được đó mà, duyên rồi cũng đến, nắm bắt và cố gắng nhiều hơn dĩ nhiên là phải chuẩn bị thật tốt với nhiều project trong CV để được gọi đi phỏng vấn. Sẵn PR 1 chút, mình học ở pymi.vn. Trung tâm python chất lương số 1 VN. Vào học đi rồi bạn sẽ được kể về các huyền thoại.

Thứ Ba, 23 tháng 6, 2020

Phỏng vấn lần n+1

Hôm nay hơi máu nên pv vs các anh hơi kì 1 chút :)).
Học được thêm cái mới thầy vừa dạy lại, for i in set thì sẽ nhanh hơn for i in list. độ phức tạp của for i in set là O 1 còn trong list là O n.
Nên khi lọc qua vòng for thì các phần từ trong set sẽ lọc nhanh hơn so với list. và ra kết quả ngay lập tức.
Sau này sẽ cố gắng bình tĩnh hơn với các anh để mong sống tốt hơn về sau haha.

Thứ Hai, 22 tháng 6, 2020

Phỏng vấn lần thứ n

Thầy mình dạy phỏng vấn là để đi học, cứ sau 10 lần phỏng vấn thì giống như chơi game sẽ up lên cấp 2 mà tiếp tục cày ải.
Hôm nay cũng gần được chục rồi mình không đếm nữa. Thấy bản thân cũng tự tin hơn khi nói chuyện với các sếp. Lần đầu tiên phỏng vấn bằng tiếng anh, cũng mấy tháng không xài may mà có thể dùng được để nói chuyện tương đối ổn, nhận ra người Úc thì nói chuyện rất dễ nghe so với các nước khác.
Hi vọng pass lần này vì công ty này có vẻ có tác phong rất tốt và nề nếp đúng chuản mình thích.
Lương thì cũng tương đối ổn, mình deal vừa tầm thôi chứ cũng không cao như mong đợi lúc đầu. Thôi chắc cũng không sao jobs python đầu tiên mà.
Chợt nhận ra là đi phỏng vấn ngoài chuyện giỏi về chuyên môn thì cũng còn cần phải may mắn và gặp đúng lúc đúng người và đúng việc, đừng vì fail vài lần mà nghĩ mình quá kém để rồi mất tự tin.
Main Skill của mình vẫn là python3 flask và sql, có lẽ phải rèn thêm nhiều hơn phần django vì sắp tới có vẻ cần làm nhiều web để bán cho bạn bè và kinh doanh phần này.
Mình sẽ đề cập phần học Django như thế nào ở 1 bài viết khác.
Lần đầu tiên viết blog nhiều vậy.
May mà đi sau nên có thầy chỉ dạy, viết blog suy cho cùng là viết cho người viết chứ không phải viết cho người đọc.
Những bài viết sau chắc chắn sẽ chất lượng hơn, hehe.

Giới thiệu ERPNext