Đề tài: Build một blog + chat sử dụng nodejs, expressjs, mongodb, firebase.

Nội dung bài viết

Build một project sử dụng nodejs, expressjs, mongodb, firebase. Gần đây chúng tôi nhận được nhiều ý kiến đóng góp cũng như muốn xây dựng một project thực tế. Chính vì thế, Tipjs sẽ quyết định xây dựng một project từng bước từ A tới Z dành cho các bạn. Đây cũng là lời cảm ơn dành cho các bạn đã theo dõi và ủng hộ page Tipjs Việt Nam trong thời gian qua.

Series build a project

Đề tài: Build một blog + chat sử dụng nodejs, expressjs, mongodb, firebase

Part 1 - Vì sao mỗi developer nên có một blog

Part 2 - Vì sao lại phát triển web application sử dụng nodejs và expressjs?

Part 3 - Setup project with nodejs, expressjs và connect mongodb

Part 4: Tạo chức năng login và register sử dụng nodejs, expressjs, mongodb

part 1 Build một blog + chat sử dụng nodejs, expressjs, mongodb, firebase.

Lời đầu tiên

Đúng như lời đầu tiên thì mong rằng bạn đọc hết bài này. Vì nó giúp chúng ta hiểu nhau hơn và bạn sẽ có động lực nhiều hơn trong việc phát triển về nghề lập trình viên. Và do tôi cũng là dân coder nên không khéo viết như những ngành nghề chuyên, nên nếu câu văn không được phù hợp thì cũng mong những anh em trong nghề bỏ quá cho =]]

Tôi biết rất nhiều các bạn trong số những bạn đang đọc bài viết này đang rất hoang mang và không biết bắt đầu từ đâu để xây dựng một project cho bản thân mình. Nhằm để hiểu hơn về lập trình cũng như mở rộng như một blog của mình. Tôi cũng từng là một sinh viên nên hơn ai hết tôi hiểu cảm giác ấy. Thật ra tôi học ở trường không được bao nhiêu để áp dụng vào những dự án này dự án kia, nhưng bạn học ở trường cũng là một bàn đạp để đi xin một công việc gây dựng cho tương lai sau này.

Có rất nhiều bạn sinh viên năm nhất thôi, học đã pm hỏi tôi nhiều thứ. Quả là đáng ngạc nhiên và học hỏi những tinh thần ấy. Chính vì lẽ đó, chúng ta sẽ cùng nhau xây dựng một project như trên tôi đã nói.

Để có thể thực hiện được một dự án thì chúng ta có thể không mất một đồng nào cho localhost. Nhưng theo tôi , các bạn cũng nên mua cho mình một domain. Tốt nhất là .com vì nó sẽ seo hơn (Nói vậy chứ, tôi chả biết SEO =]]). Chi phí một năm tôi phải trả cho mỗi một domain.com là gần 300K / 1 năm. Chi phí quá rẻ so với một năm. Về phần host thì, có thể mua một VPS từ hai thằng này, nó rất ổn định đó là digitalocean.com hoặc vultr.com. Chi phí thấp nhất là 2,5$ một tháng. Quá ngon cho một vps cho bản thân mình. Còn không, nếu nghèo quá thì cứ localhost cho biết cái đã. kakakaak.

Về phần setup VPS và trở domain vào thì mình sẽ viết một bài cụ thể cho các bạn thiện nhà giàu. Và nếu thêm SSL hay còn gọi là https thì mình sẽ chỉ cho các bạn xài free, không nên mua SSL, tránh mất tiền.

Sơ qua about me

Nói trước khỏi mất lòng và cũng giới thiệu qua bản thân một chút, mình sẽ không xây dựng quy chuẩn theo một phương pháp gì hết, mà theo đó là kinh nghiệm của mình trong 10 năm lập trình JAVA, PHP, NODE, DB. Và hiện tại mình đang trực tiếp làm việc với một công ty ĐỨC chạy phần mềm với 47 quốc gia trên toàn thế giới. Với lượt truy cập một lúc có khi lên đến 5000 users một lúc, còn thì trung bình 1000 users thôi. Bạn nên nhớ là 1 lúc nhé. Nghĩa là User Current Connect. Bạn có thể xem qua biểu đồ của dự án của mình. Hình dưới đây là tôi chụp cho các bạn xem là dự án tôi đang phát triển ở Châu Âu.

cluster nodejs

Và server một tháng lên đến gần 10K tính tiền $ nhé, gộp luôn cả băng thông. Do đó, mình sẽ làm theo những kinh nghiệm thực chiến của mình để hoàn thành một project. Nhớ nhé, và nếu có commented thì chúng ta nên góp để xây dựng để cho nó hoàn thiện hơn chớ đừng nên hạ triệt nhau, đau lòng lắm.

Và điều cuối cùng, tôi muốn nói với các bạn rằng. Nếu có sai sót hay thiếu gì thì mong rằng các bạn cũng sẽ bổ sung để cho project này hoàn chỉnh hơn. Cảm ơn các bạn!

Các bước thực hiện một project

Để xây dựng một hệ thống web news hay web application không hề đơn giản như các bạn nghĩ, vì có nhiều điều phải làm. Chính vì lẽ đó mình sẽ chia ra nhiều bài viết cho mỗi phần. Và có khi bị tắt nghẽn do tính chất công việc. Và theo quy trình thì nó sẽ đi như thế này, và cũng có thể nó sẽ thay đổi theo thời gian nhằm sẽ phù hợp hơn. Và tạm thời tôi sẽ không upcode lên github vì như thế các bạn sẽ git clone về và sẽ không hiểu nhứng điều khác mà tôi muốn nói thêm.


Bổ sung thêm: 

Hiện tại có nhiều bạn vẫn đang muốn sử dụng socket.io, vì cho rằng firebase sau này sẽ có giá thành liên quan đến tiền nong. Chính vì vậy, tôi sẽ làm cả hai về firebase, socket.io trong vấn đề realtime. 

Về phần phát triển Rest ful thì có nhiều bạn cũng đang cần, vì có thể phải viết cho nhiều nền như web or mobile nên tôi cũng sẽ cố gắng về về "Rest Ful API" trong đó có cơ chế xoay vòng.

  • 0 - Vì sao một developer nào cũng nên có một blog
  • 0 - 1 Vì sao xây dựng blog với node + expressjs
  • 1 - Setup project
  • 1 - 1 Install nodejs
  • 1 - 2 Create project
  • 1 - 3 install package
  • 2 - Xây dựng chức năng Admin cho blog
  • 2.1 - Chức năng Login + Register
  • 2.2 - Phân quyền Users
  • 2.3 - Create, edit, delete một bài viết
  • 3 - Xây dựng blog
  • 3 - 1 Hiện thị bài viết lên blog
  • 3 - 2 Xây dựng chi tiết liên quan đến blog
  • 4 - Xây dựng eCommerce
  • 4 - 1 Tạo sản phẩm
  • 4 - 2 Add giỏ hàng
  • 4 - 3 Gửi email giỏ hàng
  • 5 - Xây dựng hệ thống chat trực tuyến cho khách hàng

Lời kết

Bạn nào có muốn bổ sung thêm thì vui lòng comment dưới bài viết theo link này. Một lần nữa cảm ơn các bạn và mong rằng các bạn sẽ cố gắng và đồng hành theo project này. Source code tương lai nằm đây: Github

Series build a project

Đề tài: Build một blog + chat sử dụng nodejs, expressjs, mongodb, firebase

Part 1 - Vì sao mỗi developer nên có một blog

Part 2 - Vì sao lại phát triển web application sử dụng nodejs và expressjs?

Part 3 - Setup project with nodejs, expressjs và connect mongodb

Có thể bạn đã bị missing