https://github.com/lgdlong/chat-app-project
https://github.com/lgdlong/chat-app-project
postgresql reactjs spring-boot
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/lgdlong/chat-app-project
- Owner: lgdlong
- Created: 2025-04-21T10:02:13.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-12T17:51:11.000Z (12 months ago)
- Last Synced: 2025-07-12T19:41:02.123Z (12 months ago)
- Topics: postgresql, reactjs, spring-boot
- Language: TypeScript
- Homepage:
- Size: 2.73 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🎯 Chat App Project
Ứng dụng chat thời gian thực dành cho sinh viên, bao gồm chức năng nhắn tin, đăng nhập, và nhóm chat.
---
## 📚 Mục lục
- [🧠 Tính năng chính](#-tính-năng-chính)
- [🔧 Công nghệ sử dụng](#-công-nghệ-sử-dụng)
- [🗂️ Cấu trúc thư mục](#️-cấu-trúc-thư-mục)
- [🚀 Workflow](#-workflow)
- [📜 Makefile Commands](#-makefile-commands)
- [👉 Branch naming convention prefixes](#-branch-naming-convention-prefixes)
- [📝 Commit Message Convention](#-commit-message-convention)
- [👨💻 Nhóm phát triển](#-nhóm-phát-triển)
---
## 🧠 Tính năng chính
- Đăng nhập / đăng ký người dùng
- Chat real-time (WebSocket)
- Chat nhóm
- Giao diện thân thiện với sinh viên
---
## 🔧 Công nghệ sử dụng
### Frontend
- ReactJS + Vite
- Bootstrap / TailwindCSS
### Backend
- Java Spring Boot
- Spring Security, WebSocket
- PostgreSQL
- REST API
---
## 🗂️ Cấu trúc thư mục
```
chat-app-project/
├── backend/ # Spring Boot service (REST API, DB)
├── frontend/ # React + Vite client (UI)
├── database/ # init.sql file (schema + seed data)
├── docs/
├── docker-compose.yml
├── Makefile
└── README.md
```
----------
## 🚀 Workflow
### 🧩 1. Khi bắt đầu làm việc (sau khi clone / pull)
```bash
make project-restart
```
> Xoá volume cũ, rebuild và khởi chạy lại toàn bộ project (DB sẽ được khởi tạo từ `init.sql`)
----------
### 💻 2. Code feature, fix bug, thêm data vào DB
> Làm việc bình thường trên frontend/backend, test API, thêm dữ liệu...
----------
### 💾 3. Sau khi đã cập nhật database (schema hoặc data)
```bash
make db-backup
```
> Backup lại toàn bộ database vào `./database/init.sql` để người khác dùng lại
----------
### ✅ 4. (Tuỳ chọn) Kiểm tra lại DB init mới có dùng được không
```bash
make project-restart
```
> Xác nhận rằng `init.sql` có thể reset lại đúng database từ đầu
----------
### 🚀 5. Commit & Push
```bash
git add .
git commit -m "✨ Update init.sql + tính năng mới"
git push origin main
```
> 📝 **Lưu ý:** Trước khi commit, hãy đảm bảo bạn đang làm việc trên **branch có tên đúng chuẩn**.
> Xem quy tắc đặt tên tại [👉 Branch naming convention prefixes](#-branch-naming-convention-prefixes)
----------
📌 **Lưu ý:** Không cần phải dùng toàn bộ lệnh trong Makefile mỗi lần làm việc.
Chỉ sử dụng theo đúng mục đích của từng bước trong quy trình phía trên là đủ.
----------
## 📜 Makefile Commands
| Lệnh | Tác dụng |
|------|----------|
| `make db-dump` | Dump database vào file `database/init.sql` |
| `make db-backup` | Alias của `db-dump`, dễ nhớ hơn |
| `make project-restart` | Xoá volume, rebuild và run toàn bộ project |
| `make backend-only` | Chạy project mỗi backend và db không cần frontend |
| `make start` | Khởi động các container foreground (hiện log) |
| `make start-detached` | Khởi động container ở chế độ nền |
| `make stop` | Dừng container nhưng giữ dữ liệu |
| `make rebuild` | Build lại image, giữ volume hiện tại |
----------
## 👉 Branch naming convention prefixes
| Tiền tố | Mục đích | Ví dụ |
|-------------|---------------------------------------------------------------------------------------------|---------------------------------------|
| `feature/` | Phát triển tính năng mới | `feature/add-login-page` |
| `bugfix/` | Sửa lỗi trong quá trình phát triển | `bugfix/fix-header-css` |
| `hotfix/` | Sửa lỗi nghiêm trọng trên môi trường production | `hotfix/cors-error` |
| `release/` | Chuẩn bị cho phiên bản phát hành | `release/v1.0.0` |
| `docs/` | Cập nhật hoặc bổ sung tài liệu | `docs/update-readme` |
| `chore/` | Thực hiện các công việc lặt vặt như cập nhật thư viện, cấu hình, dọn dẹp mã nguồn, v.v. | `chore/update-dependencies` |
| `test/` | Thử nghiệm hoặc kiểm tra các ý tưởng mới | `test/try-new-ui-layout` |
Bên dưới là cách viết commit message chuẩn theo [Conventional Commits](https://www.conventionalcommits.org/).
----------
## 📝 Commit Message Convention
> ✅ **Mục tiêu**: Ghi lại lịch sử thay đổi dễ đọc, dễ sinh changelog, hỗ trợ CI/CD.
### Cấu trúc chuẩn:
```
():
```
| Type | Ý nghĩa |
|-------------|----------------------------------|
| `feat` | Thêm tính năng mới |
| `fix` | Sửa lỗi |
| `docs` | Cập nhật tài liệu |
| `style` | Format/style code, không ảnh hưởng logic |
| `refactor` | Refactor code (không thêm tính năng hoặc fix bug) |
| `test` | Thêm hoặc sửa test |
| `chore` | Việc phụ trợ: CI, config, dọn dẹp, cập nhật lib |
----------
### 🧪 Ví dụ:
```bash
git commit -m "feat(user): add user service"
git commit -m "fix(login): prevent null password"
git commit -m "docs(readme): update workflow section"
git commit -m "refactor(chat): extract socket logic"
```
----------
📌 **Gợi ý:** Cài plugin [Conventional Commit](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits) cho VS Code để auto suggest commit message cho chuẩn.
----------
## 👨💻 Nhóm phát triển
- SE190377 Phùng Lưu Hoàng Long
- SE192024 Dương Quốc Thái