CÔNG VIỆC CỦA CHÚNG TÔI

+ Đào tạo & hỗ trợ thi & Cấp chứng chỉ Ứng dụng CNTT cơ bản, nâng cao
+ Cung cấp dịch vụ Thiết kế - Lập trình web
+ Các giải pháp triển khai - quản trị hệ thống mạng doanh nghiệp
+ ĐÀO TẠO CHUYÊN NGHIỆP: LẬP TRÌNH (C, .Net, ASP.net, PHP, Thiết kế Đồ họa
Hướng dẫn Bootstrap responsive menu với sub-menu

Hướng dẫn Bootstrap responsive menu với sub-menu

Giới thiệu

Hôm nay mình xin chia sẻ đến các bạn cách tạo menu nhiều cấp (sub-menu) với Bootstrap. Mặc định thì trên bootstrap sẽ kết hợp navbar và dropdown để tạo menu dạng này, nhưng sẽ không tiện khi sử dụng, đồng thời tạo menu đa cấp bằng vòng lặp khi code cũng khá phiền phức.
Hiện cũng có khá nhiều thư viện jquery hỗ trợ cho việc này, tuy nhiên mình thấy đa số sử dụng khá phức tạp, đồng thời cũng để mọi người có thêm một lựa chọn.
bootstrap menu responsive on desktop
Giao diện trên máy tính

bootstrap menu responsive on mobile
Giao diện trên di động

Download

Download: Tại đây
Pass giải nén: saigonpixel.vn

Hướng dẫn sử dụng

Thêm đoạn css sau vào thẻ head
<link href="/dist/css/btr-menu.css" rel="stylesheet" />

Thêm đoạn javascript sau trước khi đóng thẻ body
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="/Theme/js/btr-menu.js"></script>
<script>
    $(document).ready(function () {
        $("#navbar").btrmenu();
    });
</script>

Trong đó #navbar là id của element chứa ul menu
Vd:
<nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="http://getbootstrap.com/examples/starter-template/#">Project name</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#">About</a>
            <ul>
                <li><a href="#">About sub 1</a></li>
                <li><a href="#">About sub 2</a>
                    <ul>
                        <li><a href="#">About sub 2-1</a></li>
                        <li><a href="#">About sub 2-2</a></li>
                        <li><a href="#">About sub 2-3</a>
                            <ul>
                                <li><a href="#">About sub 2-3-1</a></li>
                                <li><a href="#">About sub 2-3-2</a></li>
                                <li><a href="#">About sub 2-3-3</a></li>
                                <li><a href="#">About sub 2-3-4</a></li>
                            </ul>
                        </li>
                        <li><a href="#">About sub 2-4</a></li>
                    </ul>
                </li>
                <li><a href="#">About sub 3</a></li>
                <li><a href="#">About sub 4</a></li>
            </ul>
            </li>
            <li><a href="#">Contact</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>

Một số tùy biến

desktopsubmenuicon (true/false)
Bật tắt việc có hiện icon submenu trên giao diện desktop hay không
icon menu con

mobileiconpack (glyphicon / fa)
Sử dụng icon từ glyphicon hay font awesome (nếu dùng font awesome thì phải chèn thêm css tương ứng)

mobileopenicon (glyphicon-chevron-down)
Icon mở sub-menu trên giao diện di động, tương ứng với mobileiconpack đã dùng phía trên

mobilecloseicon (glyphicon-chevron-up)
Icon đóng sub-menu trên giao diện di động, tương ứng với mobileiconpack đã dùng phía trên

Vd:


$("#navbar").btrmenu({
   desktopsubmenuicon: true,
   mobileiconpack: "glyphicon",
   mobileopenicon: "glyphicon-chevron-down",
   mobilecloseicon: "glyphicon-chevron-up",
});
Tập các lệnh giám sát hệ thống Linux

Tập các lệnh giám sát hệ thống Linux

Danh sách 20 công cụ giám sát hiệu năng sau đây sẽ giúp quản trị hệ thống dễ dàng hơn trong việc quản lý và tìm ra nguyên nhân xử lý sự cố hệ thống Linux/Unix. Giám sát và gỡ rối (debug) các vấn đề về hiệu năng hệ thống Linux là một công việc hằng ngày của các quản trị hệ thống/mạng.
1. Top – Công cụ giám sát tiến trình Linux
Linux Top là một chương trình giám sát hiệu năng hay được sử dụng bởi rất nhiều quản trị hệ thống và nó có sẵn trong rất nhiều hệ điều hành Linux/Unix. Câu lệnh Top được sử dụng để hiển thị tất cả các tiến trình đang chạy và hoạt động thời gian thực dưới dạng danh sách và cập nhật thường xuyên. Thông tin hiển thị CPU usage, Memory usage, Swap Memory, Cache Size, Buffer Size, Process PID, User, Command… Câu lệnh Top giúp cho quản trị hệ thống giám sát và đưa ra hành động phù hợp.
# top
20 công cụ giám sát hiệu năng hệ thống Linux
2. VmStat – Công cụ giám sát và thống kê bộ nhớ ảo
Câu lệnh VmStat được sử dụng để hiển thị số liệu thống kê về virtual memory, kernerl threads, disks, system processes, I/O blocks, interrupts, CPU activity … Mặc định lệnh vmstat không có sẵn trên hệ thống Linux, người dùng cần cài đặt thêm gói sysstat
# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0
3. Lsof – Danh sách các tệp tin mở
Lệnh Lsof được sử dụng để hiển thị danh sách tất cả các tệp tin và tiến trình đang mở. Những tệp tin đang mở bao gồm disk files, network sockets, pipes, devices và processes. Một trong những công dụng chính của lệnh này là khi một ổ đĩa bị lỗi và hiển thị thông báo lỗi có tệp tin đang chạy hoặc đang được mở. Nhờ đó quản trị viên có thể dễ dàng xác định tệp nào đang dùng. Định dạng phổ biến nhất của lệnh lsof là:
# lsof

COMMAND     PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME
init          1      root  cwd       DIR      104,2     4096          2 /
init          1      root  rtd       DIR      104,2     4096          2 /
init          1      root  txt       REG      104,2    38652   17710339 /sbin/init
init          1      root  mem       REG      104,2   129900     196453 /lib/ld-2.5.so
init          1      root  mem       REG      104,2  1693812     196454 /lib/libc-2.5.so
init          1      root  mem       REG      104,2    20668     196479 /lib/libdl-2.5.so
init          1      root  mem       REG      104,2   245376     196419 /lib/libsepol.so.1
init          1      root  mem       REG      104,2    93508     196431 /lib/libselinux.so.1
init          1      root   10u     FIFO       0,17                 953 /dev/initctl
4. Tcpdump – Công cụ giám sát và phân tích gói tin mạng
Tcpdump là một trong những công cụ bắt gói tin hoặc phân tích gói tin mạng được gửi và truyền tải trên một giao diện mạng. Nó có khả năng lọc các gói tin TCP/IP và cung cấp tùy chọn để lưu gói tin đã bắt thành một tệp tin để dùng cho phân tích sau này. Tcpdump có sẵn trên hầu hết các bản phân phối Linux.
# tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
5. Netstat – Công cụ giám sát và thống kê mạng
Netstat là công cụ dòng lệnh giám sát số liệu thống kê các gói tin mạng vào/ra. Đây là công cụ giúp cho quản trị hệ thống giám sát hiệu năng mạng và khắc phục sự cố mạng.
# netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 *:mysql                     *:*                         LISTEN
tcp        0      0 *:sunrpc                    *:*                         LISTEN
tcp        0      0 *:realm-rusd                *:*                         LISTEN
tcp        0      0 *:ftp                       *:*                         LISTEN
tcp        0      0 localhost.localdomain:ipp   *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  *:*                         LISTEN
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42709 TIME_WAIT
tcp        0      0 localhost.localdomain:smtp  localhost.localdomain:42710 TIME_WAIT
tcp        0      0 *:http                      *:*                         LISTEN
tcp        0      0 *:ssh                       *:*                         LISTEN
tcp        0      0 *:https                     *:*                         LISTEN
6. Htop – Công cụ giám sát tiến trình
Htop là công cụ giám sát tiến trình Linux theo thời gian thực. Nó khá giống với lệnh TOP nhưng nhiều tính năng hơn như giao diện quản lý thân thiện, các phím tắt, trình bày các tiến trình theo hàng ngang hoặc hàng dọc. Htop là một công cụ bên thứ ba và không có sẵn trong hệ thống Linux, để sử dụng quản trị cần sử dụng công cụ quản lý gói YUM.
# htop
20 công cụ giám sát hiệu năng hệ thống Linux - HTOP
7. Iotop – Công cụ giám sát I/O ổ cứng
Iotop cũng rất giống với lệnh TOP và Htop nhưng tính năng chính của nó là giám sát và hiển thị tiến trình và Disk I/O theo thời gian thực. Công cụ này hữu ích trong việc tìm ra chính xác tiến trình nào đang thao tác đọc/ghi đĩa.
# iotop
20 công cụ giám sát hiệu năng hệ thống Linux - iotop
8. Iostat – Công cụ thống kê I/O
IoStat là công cụ đơn giản để thu thập và hiển thị số liệu input/oput của thiết bị lưu trữ. Công cụ này thường được sử dụng để lần vết các vấn đề liên quan tới hiệu năng lưu trữ bao gồm thiết bị, ổ đĩa cục bộ, ổ đĩa từ xa như NFS.
# iostat

Linux 2.6.18-238.9.1.el5 (tecmint.com)         09/13/2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.60    3.65    1.04    4.29    0.00   88.42

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       17.79       545.80       256.52  855159769  401914750
cciss/c0d0p1      0.00         0.00         0.00       5459       3518
cciss/c0d0p2     16.45       533.97       245.18  836631746  384153384
cciss/c0d0p3      0.63         5.58         3.97    8737650    6215544
cciss/c0d0p4      0.00         0.00         0.00          8          0
cciss/c0d0p5      0.63         3.79         5.03    5936778    7882528
cciss/c0d0p6      0.08         2.46         2.34    3847771    3659776
9. IPTraf – Công cụ giám sát mạng thời gian thực
IPTraf là một công cụ mã nguồn mở giám sát mạng (IP LAN) thời gian thực dành cho Linux. Nó thu thập rất nhiều thông tin như lưu lượng IP bao gồm thông tin về TCP flag, chi tiết ICMP, lưu lượng TCP/UDP không gửi được, gói tin kết nối TCP… Nó cũng thu thập các thông tin chung về giao diện mạng với các thông số TCP, UDP, IP, ICMP, non-IP, IP checksum errors, …
20 công cụ giám sát hiệu năng hệ thống Linux - IPTraf2
10. Psacct/Acct – Công cụ giám sát hoạt động người dùng
Công cụ psacct/acct rất hữu ích trong việc giám sát hoạt động mỗi người dùng trên hệ thống. Cả hai đều chạy dưới nền và giám sát tổng quan hành vi cũng như tài nguyên đang được sử dụng bởi người dùng. Quản trị có thể biết được người dùng đang làm gì, thực hiện câu lệnh nào, sử dụng bao nhiêu tài nguyên và thời gian hoạt động …
11. Monit – Công cụ giám sát dịch vụ và tiến trình Linux
Monit là một công cụ mã nguồn mở giao diện web dùng trong tự động giám sát và quản lý các tiến trình hệ thống, các chương trình, tệp tin, thư mục, phân quyền, kiểm tra lỗi và tệp tin hệ thống. Nó giám sát các dịch vụ như Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH … Trạng thái hệ thống có thể được xem tại giao diện dòng lệnh hoặc giao diện web.
20 công cụ giám sát hiệu năng hệ thống Linux - Monit-Monitoring
12. NetHogs – Công cụ giám sát tiến trình băng thông mạng
NetHogs là một phần mềm mã nguồn mở quản lý hoạt động các tiến trình mạng trong hệ thống. Nó cũng giám sát băng thông lưu lượng mạng đang được sử dụng trong thời gian thực của mỗi chương trình hoặc ứng dụng.
20 công cụ giám sát hiệu năng hệ thống Linux - NetHogs
13. iftop – Công cụ giám sát băng thông mạng
iftop là một phần mềm mã nguồn mở hiển thị danh sách các kết nối cùng băng thông sử dụng trên một giao diện mạng. 20 công cụ giám sát hiệu năng hệ thống Linux - iftop
14. Monitorix – Công cụ giám sát mạng và hệ thống
Monitorix là một công cụ miễn phí được thiết kế để giám sát hệ thống và tài nguyên mạng trên máy chủ Linux/Unix. Nó tích hợp HTTP web server dùng để thu thập thông tin về hệ thống và mạng rồi hiển thị dưới dạng biểu đồ. Monitorix giám sát system load average/usage, memory allocation, disk driver health, system services, network ports, mail statistics (Sendmail, Postfix, Dovecot, ….), MySQL statistics … Nó giúp phát hiện các vấn đề sự cố bất thường.
20 công cụ giám sát hiệu năng hệ thống Linux - Monitorix
15. Arpwatch – Công cụ giám sát hoạt động Ethernet
Arpwatch là chương trình được thiết kế nhằm giám sát phân giải địa chỉ (những thay đổi về địa chỉ MAC và IP) của một mạng Ethernet trên hệ thống Linux. Nó liên tục theo dõi và sinh ra log về những địa chỉ IP và Mac thay đổi cùng mốc thời gian. Arpwatch cũng cung cấp tính năng gửi và nhận email để cảnh báo đến người quản trị. Nó rất hữu ích trong việc phát hiện có tấn công ARP spoofing trong mạng.
16. Suricata – Công cụ bảo mật mạng
Suricata là phần mềm mã nguồn mở về bảo mật mạng, hệ thống giám sát phát hiện xâm nhập và ngăn chặn cho hệ điều hành Linux, FreeBSD và Windows. Nó được thiết kế và phát hành bởi tổ chức phi lợi nhuận OISF (Open Information Security Foundation).
17. VnStat PHP – Công cụ giám sát băng thông mạng
VnStat PHP là một ứng dụng web frontend dành cho công cụ mạng phổ biến “vnstat”. VnStat PHP giám sát lưu lượng mạng bằng giao diện thân thiện và hiển thị lưu lượng mạng ra/vào sử dụng với báo cáo hàng giờ, hàng ngày, hàng tháng và tổng hợp.
18. Nagios – Công cụ giám sát mạng/máy chủ
Nagios là công cụ mã nguồn mở hàng đầu về hệ thống giám sát cho phép quản trị xác định và giải quyết các vấn đề liên quan trước khi ảnh hưởng nghiêm trọng đến các tiến trình. Với hệ thống Nagios, quản trị có thể giám sát từ xa các hệ điều hành Linux, Windows, thiết bị chuyển mạch, thiết bị định tuyến và máy in chỉ trong một cửa sổ. Nó đưa ra các cảnh báo và xác định cấu hình sai trong mạng/máy chủ giúp quản trị viên có thể xử lý trước khi sự cố xảy ra.
19. Nmon – Công cụ giám sát hiệu năng
Nmon là công cụ giám sát tài nguyên như CPU, Memory, Disk Usage, Network, Top processes, NFS, Kernel … Công cụ này có hai chế độ là Online Mode và Capture Mode. Chế độ Online Mode sử dụng trong giám sát thời gian thực và Capture Mode sử dụng trong lưu trữ kết quả dưới dạng CSV dành cho xử lý sau này.
20 công cụ giám sát hiệu năng hệ thống Linux - Nmon
20. Collectl – Công cụ giám sát hiệu năng “nhiều trong một”
Collectl là một công cụ mạnh mẽ khác được dùng để thu thập thông tin về tài nguyên hệ thống Linux như CPU usage, memory, network, inodes, processes, nfs, tcp, sockets …
20 công cụ giám sát hiệu năng hệ thống Linux -  Collectl
Nguồn tecmint
Getting Involved in Open Source Projects

Getting Involved in Open Source Projects

The open source movement has been responsible for many great innovations over the past few decades. Linux, the Apache Web Server, and Rails are just a few examples of open source projects that have elevated the web industry to new heights.
In this post I want to discuss the ideas around the open source movement, and why you should consider giving up some of your free time to work on an open source project. Just to be clear, you don’t need to be a programmer to work on an open source project. In fact, it’s often the case that the people open source projects need the most are creative designers, copywriters, and translators.

Why Bother with Open Source?

The open source software movement is something that many people outside the tech industry struggle to understand. Why would you give up your free time to work on something you’re not getting paid for?. I’ve heard this question many times when speaking with friends and colleagues from outside the industry. To them it seems counter-intuitive to work on something for free. So if you’re not getting paid for this work, why should you do it?

Note: Some people do get paid to work on open source projects. For example, Google engineers get paid to work on Chromium as it’s their full-time job.

There are many benefits to working on an open source project. For me personally, the biggest thing has been having the opportunity to work with some really great people. Open source allows you to make connections far outside your normal circle of friends and co-workers. Casting out into such a wide pool of talent can be daunting at first. You might have to deal with issues you haven’t encountered before, like language barriers or working with people in different timezones. All of this is good experience though, which leads me into my next point.
Working on an open source project allows you to develop your skills, learn new things, and gain valuable experience working on a collaborative software project. I can’t stress enough how important this is, especially if you’re a student or just starting out in the industry. The experience that you’ll gain through working on an open source project is invaluable. This isn’t just limited to developing technical skills. Being able to function as part of a team is also really important, and something that companies look for in job applicants.

Finding a Project

Hopefully by now you’re sold on the idea of working on an open source project and eager to get started. But how do you find a project to work on?
The first thing you should do is to look at the software you use every day. Are any of those products open source? If so, those projects are the ones you should check out first.
The chances are you’re going to do much better work if you join a project that builds something you use regularly. You’re more likely to notice little bugs and things that could be changed to make the product easier to use. This concept is generally referred to as dog fooding.

The Explore GitHub page is a great place to find interesting projects to work on.
The Explore GitHub page is a great place to find interesting projects to work on.
If you’re still stuck for a project to work on take a look at GitHub or Google Codeand browse the projects until you find something you’re interested in.
There are exceptions to the ‘dog fooding’ rule. You might find a product that you won’t use every day, but if it’s having a real impact on the world, that might be enough to keep you motivated. The Google Person Finder project would be a good example.

Contributing to a Project

Now that you’ve found a project to work on, where do you start? The first thing you should do is check out the project documentation. Many projects have a wiki page that outlines how to get involved. This will usually explain the project’s mission and the process for making your contributions. It’s also worth looking out for a coding style guide that defines how your code needs to be formatted for it to be accepted into the codebase. Some projects will do things differently to others so it’s important to read through this information if it’s available. Again I’m falling back to my experience as a developer here, but you may find guidelines for designers, copywriters, or translators too.
The next place you should look is the project’s issue tracker. Browse through the list of issues and try to identify something you’d like to work on. Some projects (especially larger ones) maintain a list of issues that are ideal for newcomers to the project.

Some projects tag issues that are ideal for newcomers, as shown here with the Rails project.
Some projects tag issues that are ideal for newcomers, as shown here with the Rails project.
Many projects have forums or chat rooms where members hang out and chat about the project (as well as other things). Don’t be afraid to jump in and introduce yourself to the community. These people are there for the same reason you are. They just want to build something meaningful and have fun along the way.

You Are Not Your Code

Okay so now you’ve joined a project, submitted your first pull-request, and are waiting anxiously for someone to review your code. Then an email drops into your inbox. You open it and find that your pull-request was rejected, or someone is questioning a design decision you made. It’s natural to feel a little disheartened at this point, especially if you’ve worked really hard on your contribution. The key here is to not get too defensive or start an argument. I’ve seen this happen many times and it almost always ends with someone leaving the project.
Just remember, you are not your code.
The objective of code review is to make sure that a project’s codebase remains high quality and sticks to a consistent style. It would actually be worrying if every patch or pull-request got accepted without any discussion. This would probably mean one of two things. Either your contribution just got blindly accepted, or you’re a genius programmer (hint: click the link, it’s a great talk).
That said, you can reduce the chances that your contribution will be held back by ensuring that you follow the guidelines in the project documentation. If you’re making any big changes it’s a good idea to discuss your design decisions with the community before you write any code.

Final Thoughts

The best thing about working on an open source project is that you have control over what you work on. Contributing to open source projects is fun, that’s why people do it. If you’re not having fun, you’re free to go work on something else.
If you’ve never contributed to an open source project before I strongly recommend that you give it a go. You’ll gain some great experience and meet some fantastic people along the way. You never quite know where the journey will take you.

Useful Links

BÁO GIÁ DỊCH VỤ THIẾT KẾ WEBSITE THƯƠNG MẠI ĐIỆN TỬ CHUẨN SEO

BÁO GIÁ DỊCH VỤ THIẾT KẾ WEBSITE THƯƠNG MẠI ĐIỆN TỬ CHUẨN SEO

Dưới đây là chức năng cơ bản của một website thương mại điện tử chuẩn SEO và báo giá tham khảo được cung cấp bởi Pubweb.vn. Với kinh nghiệm thực hiện nhiều dự án lớn nhỏ, chúng tôi tin sẽ mang lại cho các bạn những sản phẩm có thể giúp bạn nâng tầm thương hiệu, mở rộng kinh doanh, và đặc biệt sẽ tạo ra sự khác biệt giữa bạn và các đơn vị khác cùng lĩnh vực.
Các bạn lưu ý, bảng giá chỉ mang tính chất tham khảo và mang tính thời điểm, hãy liên hệ ngay với chúng tôi để có bảng giá chi tiết cho sản phẩm của bạn: 
STT
Hạng mục
1
Trang chủ
Thiết kế và triển khai code cho trang chủ với slider chủ đạo, điểm nhấn là testimonials (khách hàng nói về chúng tôi), about us (tự giới thiệu về doanh nghiệp). Các dự án nổi bật
Một số tin tức mới và các đối tác.
Footer để tạo các menu link nhanh đến một số các trang của công ty như : chính sách bán hàng, giới thiệu công ty, liên hệ, đăng ký nhận bản tin
2
chức năng sản phẩm
Trang chuyên mục sản phẩm với list các dự án hiển thị dạng grid (ô) hay hiển thị dạng list(dòng), Danh mục sản phẩm giúp điều hướng sản phẩm theo nhu cầu khách hàng. Các tính năng filter theo giá, theo thuộc tính được tích hợp trong trang chuyên mục sản phẩm.
Trang chi tiết sản phẩm : Khi khách hàng click vào từng sản phẩm cụ thể sẽ điều hướng sang trang chi tiết sản phẩm, ở trang này khách hàng sẽ được cung cấp đầy đủ thông tin về sản phẩm đó như : Mô tả,  Thông tin chi tiết, thông số kỹ thuật, size, màu sắc... có add vào giỏ hàng nếu thực hiện cho phép mua hoặc đặt hàng online
3
Tổng hợp tin tức
 Là trang tổng hợp các tin tức của công ty, hoặc tin tức liên quan đến sản phẩm, dịch vụ công ty kinh doanh, trang này được dùng để đưa thông tin tổng hợp hữu ích cho khách hàng. Hệ thống trang tin tức cần thiết cho việc marketing online
4
Chi tiết tin tức
 Là trang chi tiết của một tin tức, trong trang này sẽ hiển thị nội dung của tin tức mà khách hàng quan tâm, có các tin tức liên quan giúp điều hướng khách hàng theo quan điểm họ quan tâm. Ngoài ra còn Box bình luận để tăng tương tác giữa khách hàng và người quản trị. Đã tích hợp SEO, các tools thay đổi thẻ title, description, các thẻ og.
5
Trang liên hệ
 Là trang dùng để liên hệ giữa khách hàng và công ty, có box liên hệ, địa chỉ công ty, số điện thoại hỗ trợ khách hàng…
6
Trang tĩnh
 Là chức năng dùng để thêm các trang như giới thiệu công ty, điều khoản người dùng, chính sách bán hàng…
7
Chức năng search
Chức năng cho phép khách hàng search nhanh đến các tin tức hoặc sản phẩm khách hàng cần xem mà không cần mất công tìm kiếm
8
Slider trang chủ, trang sản phẩm, chi tiết  sản phẩm
Slider là nơi nổi bật nhất của website, dùng để trang trí cho trang chủ, và truyền thông điệp của công ty tới khách hàng một cách nhanh nhất …
9
Chức năng phân cấp phân quyền nhân viên
Chức năng cho phép tạo nhân viên, phân quyền cho nhân viên đó theo từng chức năng nhiệm vụ
10
Đa ngôn ngữ
Cho phép add thêm nhiều hơn 1 ngôn ngữ, giúp quảng bá sản phẩm tốt hơn, nhất là trong thời kỳ hội nhập sâu rộng của nền kinh tế.
11
Reponsive design
Thiết kế giao diện phù hợp trên mọi  thiết bị, mobile, máy tính bảng.
12
Trang giỏ hàng
Là trang hiển thị giỏ hàng của khách đang đăng nhập, cho phép khách hàng đặt hàng hoặc thanh toán online.
13
Trang cá nhân
Là trang cá nhân của khách hàng, cho phép khách hàng xem lịch sử đơn hàng, lưu các sản phẩm yêu thích, thay đổi thông tin cá nhân của mình.
14
Bảo hành bảo trì
Website được bảo hành bảo trì miễn phí 12 tháng, sau thời gian bảo hành bảo trì miễn phí khách hàng có nhu cầu sử dụng dịch vụ gia hạn bảo hành bảo trì cần sử dụng gói gia hạn bảo hành bảo trì
15
Trang đặt hàng thành công
Là trang sau khi đặt hàng trong giỏ hàng hệ thống trả về cho khách hàng biết đơn hàng đã được đặt hàng thành công.
16
Đăng ký, đăng nhập
Tính năng cho phép khách hàng tự đăng ký tài khoản và đăng nhập trên hệ thống.

Tổng cộng
20.000.000 VNĐ
17
Các tính năng nâng cao sản phẩm
Hệ thống lưu các sản phẩm đã xem, gợi ý các sản phẩm tương ứng cho khách hàng. Chức năng nhập hướng dẫn sử dụng vào trong trang sản phẩm. Auto complete ở mục search sản phẩm.
18
Tích hợp thanh toán online
Tích hợp thanh toán online với VTC pay, one pay. Sau khi tích hợp thanh toán online khách hàng của bạn hoàn toàn có thể trả tiền thẳng vào tài khoản ví điện tử của công ty, cửa hàng của bạn. Trang đã trở thành một website thương mại điện tử hoàn chỉnh. Sau khi thanh toán thành công sẽ gửi một email xác nhận tình trạng đơn hàng về địa chỉ email của khách hàng.
19
Tích hợp các tính năng SEO advances
Các tính năng SEO advances như : khởi tạo schema trình đánh dấu cho từng sản phẩm, từng tin tức. Thiết kế trang AMP hiển thị tin tức dạng AMP thân thiện với search engines. 
20
Quên Mật khẩu
Tích hợp mailgun cho khách hàng để có thể gửi đường link thây đổi mật khẩu khi có yêu cầu từ khách hàng, sau đó khách hàng tự thay đổi mật khẩu.
 
Tổng cộng tính năng nâng cao : 10.000.000 VNĐ
Tổng cộng của cả 2 tính năng : 30.000.000 VNĐ
Ngoài ra chúng tôi còn có dịch vụ cao cấp cho những khách hàng khó tính nhất, đảm bảo website thiết kế độc đáo được review bởi những chuyên gia thiết kế của chúng tôi. Để tìm hiểu dịch vụ cao cấp này, vui lòng liên hệ hotline của chúng tôi : 0989333537 để biết thêm chi tiết.
Các bạn có thể tham khảo một số dự án thiết kế website thương mại điện tử của chúng tôi như : 

Các câu lệnh Git không thể không biết nếu bạn là lập trình viên

Giống như hầu hết người mới bắt đầu sử dụng Git, tôi lên StackOverflow search các câu lệnh git rồi copy-paste vào mà không thực sự hiểu cái gì cả.


Chú thích ảnh:
A: Đây là git. Nó được sử dụng để theo dõi các dự án cộng tác, biểu diễn bởi một biểu đồ nhánh cây đẹp tuyệt vời.
B: Ôi cool thế! Dùng thế nào?
A: Méo biết. Cứ nhớ các lệnh rồi gõ vào thôi, nếu sai, thấy báo lỗi, thì save project vào chỗ nào khác rồi xóa repo và làm lại cái mới 🙂

Tôi đã nhớ mình đã nghĩ: “Cuộc sống không phải tốt đẹp hơn nếu trên đời này có một dãy các câu lệnh Git thường được sử dụng cùng với lời giải thích tại sao chúng lại có ích không được à?”
Vậy nên, sau nhiều năm, tôi đã biên soạn ra một dãy như thế, và bổ sung một số ví dụ mà ngay cả các developer ở mức nâng cao cũng thấy có ích.
Để giữ tính thực tế, danh sách các câu lệnh Git này được dựa trên những câu lệnh mà tôi thực sự sử dụng tuần trước.

Hầu hết các developer đều sử dụng Git, và hầu hết là GitHub. Nhưng đa phần các developer 99% chỉ sử dụng 3 câu lệnh này:
git add –all
git commit -am “<message>”
git push origin master
Nếu chỉ làm việc một mình thôi thì không sao, nhưng nếu độ ổn định và bảo trì bắt đầu trở thành một sự ưu tiên lớn thì việc dọn dẹp commit, dựa vào một nhánh (branch) nhất định, viết commit messege rõ nghĩa trở thành vấn đề quan trọng.
Tôi sẽ bắt đầu với những câu lệnh thường được sử dụng để những người mới bắt đầu cảm thấy dễ hiểu hơn Git có thể làm gì, rồi chuyển sang những câu lệnh mang tính nâng cao hơn.

Những câu lệnh thường sử dụng

Để khởi tạo Git trong một repository (repo), bạn chỉ cần gõ câu lệnh sau. Nếu bạn không khởi tạo Git, bạn không thể sử dụng bất kì các câu lệnh Git nào cả.
git init
Nếu bạn sử dụng GitHub và bạn đẩy code lên một repo GitHub được lưu trữ online, thì khi đó bạn sử dụng remote repo (repo từ xa). Tên mặc định cho cái remote repo đó là origin. Nếu bạn clone một project từ GitHub thì tự thân nó đã có origin rồi. Bạn có thể xem URL của remote repo đó bằng câu lệnh git remote -v.
Nếu bạn muốn tự khởi tạo Git của riêng mình và muốn nó liên kết với GitHub, thì bạn phải tự tạo trên GitHub trước, copy URL của repo, sử dụng lệnh git remote add origin <URL>, thay URL của repo vào “<URL>”. Từ đó, bạn có thể thêm, commit và push đến remote repo của bạn.
git remote -v
git remote add origin <url>
git remote set-url origin <url>
Câu lệnh cuối được sử dụng khi bạn cần đổi remote repo. Giả dụ bạn copy một cái repo của người khác và bạn muốn chuyển owner thành tài khoản GitHub của bạn. Thì bạn sử dụng câu lệnh đó.

Cách thông dụng nhất để copy một cái repo là sử dụng lệnh git clone.
* Nên nhớ là cái remote repo đó sẽ được liên kết với tài khoản mà bạn dùng để clone. Vậy nếu bạn clone một repo thuộc về một người khác, bạn sẽ không push được lên GitHub trừ khi bạn đổi origin của nó.
git clone <url>
Rất nhanh, bạn sẽ bắt đầu “táy máy” vào branch (nhánh). Nếu bạn không hiểu branch là gì, có rất nhiều tutorial giải thích chi tiết branch là gì, và bạn nên đọc chúng trước khi đọc tiếp.
Câu lệnh git branch liệt kê tất cả các branch (nhánh) trong local của bạn. Nếu bạn muốn tạo một branch mới, bạn có thể sử dụng câu lệnh git branch <tên branch>, tên branch có thể ví dụ là “master”, “develop”.
Câu lệnh git checkout <tên branch> sẽ chuyển sang một nhánh đã tồn tại khác. Bạn cũng có thể sử dụng lệnh git checkout -b <tên branch> để tạo một nhánh và ngay lập tức chuyển sang nhánh đó. Hầu hết mọi người sử dụng câu lệnh này thay vì dùng tự tạo một branch riêng rồi nhảy sang branch đó.
git branch
git branch <name>
git checkout <name>
git checkout -b <name>

Nếu bạn đã thực hiện một loạt các thay đổi cho một branch, giả dụ tên branch là “develop”, và bạn muốn hợp nhất branch đó vào branch chính – master của bạn, bạn sử dụng câu lệnh git merge <tên branch>. Bạn sẽ checkout nhánh master, rồi chạy lệnh git merge develop để hợp nhất nhánh develop vào nhánh master.
git merge <branch>
Nếu bạn làm việc với nhiều người, bạn sẽ gặp trường hợp trên GitHub đã được cập nhật rồi nhưng máy bạn lại không có những thay đổi đó. Khi đó, bạn có thể sử dụng lệnh git pull origin <tên branch> để kéo những thay đổi mới nhất về.
git pull origin <branch>
Nếu bạn muốn biết những file nào đã bị thay đổi và những file nào được theo dõi, bạn có thể sử dụng lệnh git statusNếu bạn muốn biết những file đã được thay đổi bao nhiêu, bạn có thể sử dụng lệnh git diff để biết được mỗi file đã thay đổi bao nhiêu dòng code.
git status
git diff –stat

Các lệnh nâng cao và ví dụ thực hành

Bạn sẽ sớm đạt đến thời điểm bạn muốn các commit của bạn nhìn trông sáng sủa, sạch sẽ. Bạn cũng muốn nghịch chơi lịch sử commit để các commit của bạn trông dễ hiểu hơn và tránh trường hợp một thay đổi không mong muốn.
Lệnh git log giúp bạn biết được lịch sử commit. Bạn sẽ muốn biết lịch sử commit của bạn.
Các commit của bạn sẽ có một tin nhắn và một hash – dãy các số và chữ theo thứ tự ngẫu nhiên, ví dụ giống như thế này c3d882aa1aa4e3d5f18b3890132670fbeac912f7
git log
Giả dụ bạn push một commit phá app của bạn. Thay vì bạn ngồi fix bug thì bạn quay lại một commit trước và thử lại.
Nếu bạn muốn quay ngược lại và checkout app của bạn từ các lần commit trước, bạn có thể làm nó trực tiếp bằng cách sử dụng dãy hash đó. Bằng cách này, app của bạn tách rời với phiên bản hiện tại (bởi bạn đang chỉnh sửa một bản ghi chép cũ, chứ không phải bản ghi chép hiện tại.
git checkout c3d88eaa1aa4e4d5f
Sau đó, nếu bạn muốn thay đổi từ một bản ghi chép cũ và push lại nó lên thì bạn phải sử dụng force push.

Chú ý: Force push rất nguy hiểm và chỉ nên được thực hiện khi bạn không còn cách nào khác. Nó sẽ viết lại lịch sử commit của app của bạn và bạn sẽ mất các bản ghi chép sau bản đang định push

Và về cơ bản thì nó rất không thực dụng khi để tất cả trong một commit. Có lẽ bạn muốn giữ tiến độ của bạn trước khi thực hiện một điều gì đó nguy hiểm. Cho vấn đề đó, chúng ta có lệnh git base.
Ví dụ bạn có 4 commit trong máy local của bạn (chưa push trên GitHub). Các commit của bạn trông thật vũng về và thiếu quyết đoán. Bạn có thể dùng lệnh rebase để gộp tất cả các commit lại với nhau thành một commit ngắn gọn, vắn tắt hơn.
git rebase -i HEAD~4

Câu lệnh trên sẽ mở editor mặc định ở máy tính của bạn (thường là Vim), với nhiều cách lựa chọn cách bạn muốn thay đổi commit. Nó sẽ nhìn giống như phía dưới:
pick 130deo9 oldest commit message
pick 4209fei second oldest commit message
pick 4390gne third oldest commit message
pick bmo0dne newest commit message
Để gộp tất cả các commit đó lại, chúng ta cần sửa “pick” thành “fixup” để hợp các commit và loại bỏ các commit messege. Chú ý là trong vim, bạn cần phải nhấn phím “a” hoặc “i” để có thể chỉnh sửa được văn bản, để save và thoát, bạn cần nhấn phím Esc rồi nhấn tổ hợp phím “shift + z + z”
pick 130deo9 oldest commit message
fixup 4209fei second oldest commit message
fixup 4390gne third oldest commit message
fixup bmo0dne newest commit message
Câu lệnh này sẽ hợp nhất tất cả các commit của bạn thành một commit với messege là “oldest commit message”.
Để thay đổi commit messege, bạn sử dụng amend
git commit –amend

Lưu ý: bạn nên tránh rebase và nhét commit của bạn nếu bạn đang cộng tác trong một dự án, và có code đẩy lên GitHub. Nếu bạn bắt đầu thay đổi lịch sử các phiên bản mà không báo cho mọi người, bạn có thể sẽ làm cho cuộc sống của tất cả mọi người thành ác mộng với các lỗi rất khó theo dõi.
Có một số lượng gần như vô tận các lệnh có thể với Git, nhưng các lệnh này có thể là những lệnh duy nhất bạn cần biết trong vài năm đầu tiên lập trình.
Nguồn: medium.freecodecamp.com