-
fcchn-blog là dự án làm 1 platform giúp mọi người chia sẻ bài viết, với mục đích để học: front-end (React) và back-end (Nodejs, Express và MongoDB) của 1 nhóm các thành viên Facebook group freeCodeCamp Hà Nội.
- Front-end:
- Back-end:
- Github source code được lưu tại đây
- Đã được deployed lên Heroku tại đây: https://fcchn-blog.herokuapp.com. Để sử dụng được api của backend, xin vui lòng xem phần mô tả về Data Model.
-
Những thành viên đăng ký học, code, và đóng góp cho dự án này bao gồm:
Back-end Front-end 1. Nguyễn Thế Phụng Long 1. Nguyễn Khắc Việt 2. Nguyễn Thế Tùng 2. Nguyễn Thế Tùng 3. Vũ Tùng 3. Nguyễn Minh Trung 4. Khắc Thành 5. Nguyễn Minh Trung -
Tài liệu quan trọng khác trong dự án:
Cho Front-end:
Cho Back-end:
- Dự án bắt đầu từ tuần 1 của tháng 1 năm 2018, và kết thúc vào ngày 19 tháng 3 năm 2018.
- Front-end:
- Phần tính năng đã hoàn thành 90%, còn một vài lỗi lặt vặt.
- Giao diện cần được chỉnh sửa chau chuốt hơn.
- Đánh giá tổng thể hoàn thành khoảng 60%.
- Back-end:
- Phần tính năng đã xong.
- So với các mục tiêu đề ra (bao gồm cả test, documenation, bảo mật, v.v. ) thì đã hoàn thành được khoảng 80% - 90%.
- Cả front-end và back-end đã được test trên local.
- Toàn bộ đã được deploy lên heroku. Kiểm tra tại đây: https://fcchn-blog-frontend.herokuapp.com/
Là một platform để viết blog, nơi các thành viên có thể viết blog, đăng bài, xem bài của mình cũng như của người khác, bình luận vào bài của người khác. Sản phẩm này sẽ học theo các platform viết blog khác như Medium nhưng chỉ dừng ở mức cơ bản. Mục đích cuối cùng vẫn là nắm bắt được những công nghệ cần dùng cho 1 sản phẩm hoàn thiện (xem thêm mục "Những điều học được qua dự án này" ở bên dưới)
- Đăng ký
- Đăng nhập
- View profile
- Chỉnh sửa profile
- Viết blog mới
- Chỉnh sửa blog cũ
- View danh sách blog của bản thân
- View blog của người khác
- Xóa blog
- Comment
- Like
- Share Facebook
- Front-end:
- React
- Bootstrap
- Back-end:
- Node.js
- Express.js
- MongoDB-moongoose
- Testing:
- Unit test: Karma, Mochai, Chai, Sinon
- Automation test: Selenium
- Bảo mật
- Visual Design: Gravit Designer
- Visual Studio Code
- client
- server
- test
- configuration
-
Cách đóng góp vào dự án mã nguồn mở trên Github
- Hiểu về Git cơ bản:
clone
,add
,commit
,push
- Hiểu về remote và local repositories
- Biết tạo nhánh (branch) và hiểu về mục đích của việc tạo nhánh
- Biết cách
fork
, vàpull
để cập nhật từ repo gốc - Biết cách
commit
vàpush
lên remote repo của bản thân - Biết cách tạo
pull request
để merge từ remote repo của bản thân vào repo gốc - Biết cách cập nhật pull request khi muốn thay đổi hoặc sửa lỗi trước khi merge
- Hiểu về Git cơ bản:
-
Làm việc nhóm qua mạng
- Chọn chủ đề
- Thống nhất về workflow
- Ưu nhược điểm của làm việc nhóm
- Giao tiếp online: ưu nhược điểm.
- Các công cụ để giao tiếp online
- Giao tiếp offline: ưu nhược điểm. Cách thức.
- Cách giải quyết khi có mâu thuẫn
- Công cụ để quản lý dự án theo nhóm
- Cách phân chia công việc:
- Cấu trúc của dự án
- Nhiệm vụ chi tiết
-
Hiểu và thực hành các công nghệ front-end:
- Quy trình design:
- Viết requirement và user stories
- Sử dụng Gravit Designer để vẽ
- Bootstrap
- React
- React-Router
- Quy trình design:
-
Hiểu và thực hành các công nghệ back-end:
- Database:
- MongoDB
- Mongoose
- Rest API
- HTTP (hoặc HTTPs)
- User Authentication
- User Authorization
- Database:
-
Hiểu và thực thành Node.js:
- Node.js
- Express.js
-
Hiểu và thực hành unit test cũng như automation test:
- Naive test sử dụng Postman và Robo3T
- Unit test sử dụng Mocha, Chai và Chai-Http
- Automation test sử dụng Selenium
-
Biết, thống nhất, và cấu hình cho linting tool
- Code format khi chạy trên local
- Code format khi commit lên remote
-
Hiểu cơ bản về bảo mật cho website
- Bảo mật chung cho website
- Bảo mật riêng cho Node.js
-
Biết cách cấu hình cho Webpack
-
Triển khai sản phẩm: quản lý asset và Heroku