ปรับปรุง Employee Service และ README
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
58ea6c08a4
commit
1f1ed79571
81
README.md
81
README.md
@ -1,69 +1,86 @@
|
||||
# 🌐 OpenGIS
|
||||
|
||||
[](https://opengis.softwarecraft.tech/)
|
||||
[](#license)
|
||||
|
||||
> Frontend สำหรับระบบ OpenGIS และแสดงผลแบบ Responsive ด้วย React + TailwindCSS ✨
|
||||
> ระบบนี้จะถูก Deploy ไปที่: 🌍 **[https://opengis.softwarecraft.tech/](https://opengis.softwarecraft.tech/)**
|
||||
|
||||
> ระบบภูมิสารสนเทศ OpenGIS ที่มี CMS สำหรับให้จัดการข้อมูลโดยผู้ใช้งานได้ ✨
|
||||
---
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
- ✅ จัดการข้อมูลที่ต้องการได้ (CRUD)
|
||||
- 🌞🌙 ปุ่มสลับธีม Light/Dark พร้อม Animationร
|
||||
- 🌞🌙 ปุ่มสลับธีม Light/Dark
|
||||
- 📋 ตารางข้อมูลพร้อมปุ่ม Update และ Delete
|
||||
- 🔒 Modal ยืนยันการลบข้อมูล
|
||||
- 💅 ใช้ TailwindCSS และ DaisyUI สำหรับ UI ที่ดูดี
|
||||
- ⚠️ หมายเหตุ: อยู่ระหว่างการพัฒนา โค้ดปัจจุบันยังไม่ใช่รูปแบบการทำงานจริงทั้งหมด
|
||||
---
|
||||
|
||||
## 🧪 Tech Stack
|
||||
## 🌟 แผนการพัฒนาในอนาคต
|
||||
|
||||
| Technology | Description |
|
||||
|--------------|------------------------------------|
|
||||
| ⚛️ React | Frontend JavaScript Framework |
|
||||
| 💨 TailwindCSS | Utility-first CSS Framework |
|
||||
| 🖌️ DaisyUI | Component UI บนพื้นฐาน Tailwind |
|
||||
| 🧠 Gitea | Git Self-hosted Repository |
|
||||
| 🚀 Drone CI | การทำ Continuous Integration และ Continuous Delivery (CI/CD) |
|
||||
| 🚀 SonarQube | การวิเคราะห์คุณภาพโค้ด (Code Quality) |
|
||||
- 📈 เพิ่มฟีเจอร์แผนที่ (Map)
|
||||
- 🌐 รองรับหลายภาษาเพื่อการใช้งานที่หลากหลาย
|
||||
- 📱 พัฒนาแอปพลิเคชันมือถือสำหรับการเข้าถึงที่สะดวกขึ้น
|
||||
- 🔍 ปรับปรุงระบบค้นหาให้มีประสิทธิภาพมากขึ้น
|
||||
- 🛡️ เพิ่มระบบความปลอดภัยขั้นสูงเพื่อปกป้องข้อมูลผู้ใช้
|
||||
- 🤖 ใช้ AI และ Machine Learning เพื่อเพิ่มประสิทธิภาพการทำงาน
|
||||
- 📊 เพิ่มการแสดงผลข้อมูลแบบกราฟิกและแดชบอร์ด
|
||||
- 🛠️ ปรับปรุง UI/UX ให้ใช้งานง่ายและสวยงามยิ่งขึ้น
|
||||
- 🚀 เพิ่มการรองรับการทำงานร่วมกับระบบอื่น ๆ ผ่าน API
|
||||
- 💬 เพิ่มระบบแชทบอทเพื่อช่วยเหลือผู้ใช้แบบเรียลไทม์
|
||||
- 📋 ตารางแสดงข้อมูลอื่น ๆ พร้อมปุ่ม Update และ Delete
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Deployment
|
||||
## 🧪 Tech Stack
|
||||
|
||||
ระบบนี้จะถูก Deploy ไปยัง:
|
||||
👉 **[https://opengis.softwarecraft.tech/](https://opengis.softwarecraft.tech/)**
|
||||
|
||||
⚠️ หมายเหตุ: ระบบยังอยู่ในระหว่างการพัฒนา อาจมีการเปลี่ยนแปลงในอนาคต
|
||||
| Technology | Description |
|
||||
|----------------|------------------------------------|
|
||||
| ⚛️ React | Frontend JavaScript Framework |
|
||||
| 💨 TailwindCSS | Utility-first CSS Framework |
|
||||
| 🖌️ DaisyUI | Component UI บนพื้นฐาน Tailwind |
|
||||
| 🧠 Spring Boot | เฟรมเวิร์กที่ช่วยให้การพัฒนาแอปพลิเคชัน Java |
|
||||
⚠️ หมายเหตุ: อยู่ระหว่างการพัฒนา จะมีการเพิ่ม Technology อื่น ๆ ในอนาคต
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Development
|
||||
|
||||
### 1. ขั้นตอนสำหรับ Frontend
|
||||
แนะนำให้ใช้ IDE เช่น IntelliJ IDEA หรือ VS Code เป็นต้น ในการพัฒนา
|
||||
|
||||
### 1. ขั้นตอนสำหรับการพัฒนา Frontend และ Employee Service บน Local
|
||||
|
||||
หากต้องการพัฒนา Frontend และ Employee Service แบบ local dev ไม่ต้องใช้ Docker ก็สามารถทำได้ตามขั้นตอนข้างล่าง
|
||||
- ไฟล์ employee.js กำหนด BASE_URL เป็น "http://localhost:8080/api/employees"
|
||||
- ไฟล์ application.yml กำหนด datasource url เป็น jdbc:postgresql://localhost:5432/employee_service
|
||||
- ไฟล์ EmployeeController.java กำหนด @CrossOrigin("http://localhost:5174")
|
||||
- รัน Docker Compose เฉพาะ Service ที่จำเป็น
|
||||
|
||||
``` bash
|
||||
docker compose up -d postgres pgadmin
|
||||
```
|
||||
|
||||
- รัน Employee Service
|
||||
- รัน Frontend
|
||||
|
||||
``` bash
|
||||
cd frontend
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
หากต้องการรันเฉพาะ frontend แบบ local dev ไม่ต้องใช้ Docker ก็สามารถทำได้ตามขั้นตอนข้างบน
|
||||
|
||||
### 2. ขั้นตอนสำหรับ Employee Service (Backend)
|
||||
จากนั้นสามารถเข้าใช้งานที่
|
||||
|
||||
ต้องติดตั้ง JDK 21+ และ Maven
|
||||
- Frontend: http://localhost:5174
|
||||
|
||||
``` bash
|
||||
cd employee-service
|
||||
./mvnw spring-boot:run
|
||||
```
|
||||
แนะนำให้ใช้ IDE เช่น IntelliJ IDEA หรือ VS Code ในการพัฒนา
|
||||
- Backend (Employee Service): http://localhost:8080/api/employees
|
||||
|
||||
### 3. การทดสอบระบบแบบรวม (Frontend + Backend)
|
||||
- PGAdmin: http://localhost:8180/
|
||||
|
||||
ใช้คำสั่งเดียวเพื่อรันทั้งระบบผ่าน Docker Compose
|
||||
### 2. การทดสอบระบบแบบรวม (Frontend + Backend) ด้วย Docker Compose
|
||||
|
||||
- ไฟล์ employee.js กำหนด BASE_URL เป็น "/api/employees"
|
||||
- ไฟล์ application.yml กำหนด datasource url เป็น jdbc:postgresql://ms_pg_sql:5432/employee_service
|
||||
- ไฟล์ EmployeeController.java กำหนด @CrossOrigin("http://localhost")
|
||||
- ใช้คำสั่งเดียวเพื่อรันทั้งระบบผ่าน Docker Compose
|
||||
|
||||
``` bash
|
||||
docker compose up -d
|
||||
@ -77,4 +94,4 @@ docker compose up -d
|
||||
---
|
||||
|
||||
## 🤝 Contributing
|
||||
Pull requests welcome! หากมีคำแนะนำหรือข้อเสนอแนะ ยินดีรับฟังเสมอ 🙌
|
||||
หากมีคำแนะนำหรือข้อเสนอแนะ ติดต่อที่ admin@softwarecraft.tech
|
||||
@ -7,7 +7,7 @@ import tech.softwarecraft.employee_service.service.EmployeeService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@CrossOrigin("http://localhost") // ถ้า nginx ทำ HTTPS จะเปลี่ยนตาม
|
||||
@CrossOrigin("http://localhost:5174") // http://localhost กรณี docker compose, ถ้า nginx ทำ HTTPS จะเปลี่ยนตาม
|
||||
@RestController
|
||||
@RequestMapping("/api/employees")
|
||||
public class EmployeeController {
|
||||
|
||||
@ -17,6 +17,9 @@ public class EmployeeService {
|
||||
|
||||
// Create Employee
|
||||
public Employee createEmployee(Employee employee) {
|
||||
if (employeeRepository.existsById(employee.getId())) {
|
||||
throw new IllegalArgumentException("Employee with id " + employee.getId() + " already exists");
|
||||
}
|
||||
return employeeRepository.save(employee);
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ spring:
|
||||
name: employee-service
|
||||
|
||||
datasource:
|
||||
url: jdbc:postgresql://ms_pg_sql:5432/employee_service
|
||||
url: jdbc:postgresql://localhost:5432/employee_service # ms_pg_sql ???? docker compose ???????
|
||||
username: admin
|
||||
password: 123
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
const BASE_URL = "/api/employees";
|
||||
const BASE_URL = "http://localhost:8080/api/employees"; // /api/employees กรณี docker compose ทั้งหมด
|
||||
|
||||
export const getEmployees = async ()=>{
|
||||
try{
|
||||
@ -27,10 +27,10 @@ export const addEmployee = async (employee) =>{
|
||||
});
|
||||
|
||||
if(!response.ok){
|
||||
throw new Error("Fail to create employee");
|
||||
throw new Error("Fail to create employee")
|
||||
}
|
||||
|
||||
const data = response.json();
|
||||
const data = await response.json();
|
||||
return data;
|
||||
}
|
||||
catch (e) {
|
||||
@ -53,7 +53,7 @@ export const updateEmployee = async (id, employee) => {
|
||||
throw new Error("Fail to update employee")
|
||||
}
|
||||
|
||||
const data = response.json();
|
||||
const data = await response.json();
|
||||
return data;
|
||||
}
|
||||
catch (e) {
|
||||
@ -96,7 +96,7 @@ export const searchEmployees = async (keyword) => {
|
||||
throw new Error("Fail to search employees");
|
||||
}
|
||||
|
||||
const data = response.json();
|
||||
const data = await response.json();
|
||||
return data;
|
||||
}
|
||||
catch (e) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user