ๆฌ้กน็ฎๆฏ"้ขๅๅฏน่ฑกๆๆฏ"่ฏพ็จ็็ปผๅ่ฎพ่ฎกไฝไธ๏ผๅฎ็ฐไบไธไธชๅบไบJava็ๆบ่ฝๆ่็ณป็ปใ็ณป็ป่ฟ็จ้ขๅๅฏน่ฑก็ๅๆไธ่ฎพ่ฎกๆนๆณ๏ผๅ ๅซๅฎๆด็UMLๆจกๅ่ฎพ่ฎกๅไปฃ็ ๅฎ็ฐใ
OOP_PJ/
โโโ doc/ # ่ฎพ่ฎกๆๆกฃ
โ โโโ ้ๆฑๆฅๅ.md # ็ณป็ป้ๆฑๅๆๆฅๅ
โ โโโ Class Diagram.txt # ็ฑปๅพ (PlantUML)
โ โโโ Sequence Diagram.md # ้กบๅบๅพ
โ โโโ State Diagram.md # ็ถๆๅพ
โโโ src/
โ โโโ main/java/com/recruitment/
โ โ โโโ Main.java # ไธป็จๅบๅ
ฅๅฃ
โ โ โโโ config/ # ้
็ฝฎ็ฎก็
โ โ โ โโโ SystemConfig.java # ็ณป็ป้
็ฝฎ(ๅไพ)
โ โ โโโ enums/ # ๆไธพ็ฑปๅ
โ โ โ โโโ UserType.java # ็จๆท็ฑปๅ
โ โ โ โโโ UserStatus.java # ็จๆท็ถๆ
โ โ โ โโโ JobStatus.java # ่ไฝ็ถๆ
โ โ โ โโโ ApplicationStatus.java # ็ณ่ฏท็ถๆ
โ โ โ โโโ InterviewType.java # ้ข่ฏ็ฑปๅ
โ โ โ โโโ AIInterviewStatus.java # AI้ข่ฏ็ถๆ
โ โ โโโ model/
โ โ โ โโโ entity/ # ๅฎไฝ็ฑป
โ โ โ โ โโโ User.java # ็จๆทๅบ็ฑป(ๆฝ่ฑก)
โ โ โ โ โโโ JobSeeker.java # ๆฑ่่
โ โ โ โ โโโ Recruiter.java # ๆ่่
โ โ โ โ โโโ SystemAdmin.java # ็ณป็ป็ฎก็ๅ
โ โ โ โ โโโ Job.java # ่ไฝ
โ โ โ โ โโโ Resume.java # ็ฎๅ
โ โ โ โ โโโ Application.java # ๆ้็ณ่ฏท
โ โ โ โ โโโ Interview.java # ้ข่ฏ
โ โ โ โโโ valueobject/ # ๅผๅฏน่ฑก
โ โ โ โโโ SalaryRange.java # ่ช่ต่ๅด
โ โ โ โโโ Education.java # ๆ่ฒ่ๆฏ
โ โ โ โโโ WorkExperience.java # ๅทฅไฝ็ปๅ
โ โ โ โโโ Skill.java # ๆ่ฝ
โ โ โ โโโ ProjectExperience.java # ้กน็ฎ็ป้ช
โ โ โโโ pattern/ # ่ฎพ่ฎกๆจกๅผๅฎ็ฐ
โ โ โ โโโ observer/ # ่งๅฏ่
ๆจกๅผ
โ โ โ โ โโโ Observer.java # ่งๅฏ่
ๆฅๅฃ
โ โ โ โ โโโ EventManager.java # ไบไปถ็ฎก็ๅจ
โ โ โ โ โโโ NotificationService.java # ้็ฅๆๅก
โ โ โ โโโ factory/ # ๅทฅๅๆจกๅผ
โ โ โ โ โโโ UserFactory.java # ็จๆทๅทฅๅๆฅๅฃ
โ โ โ โ โโโ JobSeekerFactory.java # ๆฑ่่
ๅทฅๅ
โ โ โ โ โโโ RecruiterFactory.java # ๆ่่
ๅทฅๅ
โ โ โ โ โโโ AdminFactory.java # ็ฎก็ๅๅทฅๅ
โ โ โ โ โโโ UserFactoryManager.java # ๅทฅๅ็ฎก็ๅจ
โ โ โ โโโ strategy/ # ็ญ็ฅๆจกๅผ
โ โ โ โโโ MatchStrategy.java # ๅน้
็ญ็ฅๆฅๅฃ
โ โ โ โโโ SkillMatchStrategy.java # ๆ่ฝๅน้
็ญ็ฅ
โ โ โ โโโ ExperienceMatchStrategy.java # ็ป้ชๅน้
็ญ็ฅ
โ โ โ โโโ ComprehensiveMatchStrategy.java # ็ปผๅๅน้
็ญ็ฅ
โ โ โ โโโ MatchContext.java # ็ญ็ฅไธไธๆ
โ โ โโโ persistence/ # ๆฐๆฎๆไน
ๅ
โ โ โ โโโ DataPersistenceManager.java # JSONๆฐๆฎ็ฎก็
โ โ โโโ service/ # ๆๅกๅฑ
โ โ โ โโโ RecruitmentService.java # ๆ่ๆๅก(ๅค่ง)
โ โ โ โโโ ai/
โ โ โ โโโ AIService.java # AIๆๅก
โ โ โ โโโ NLPService.java # NLPๆๅก
โ โ โโโ util/ # ๅทฅๅ
ท็ฑป
โ โ โโโ ConsoleUI.java # ๆงๅถๅฐ็พๅๅทฅๅ
ท
โ โ โโโ HtmlReportGenerator.java # HTMLๆฅๅ็ๆๅจ
โ โโโ test/java/com/recruitment/
โ โโโ RecruitmentSystemTest.java # ๅๅ
ๆต่ฏ
โโโ data/ # ๆฐๆฎๅญๅจ็ฎๅฝ(่ฟ่กๆถ็ๆ)
โโโ reports/ # ๆฅๅ่พๅบ็ฎๅฝ(่ฟ่กๆถ็ๆ)
โโโ pom.xml # Maven้
็ฝฎ
- ่ฏญ่จ: Java 17
- ๆๅปบๅทฅๅ ท: Maven
- ๆต่ฏๆกๆถ: JUnit 5
- ๅทฅๅ ทๅบ: Lombok
ๆฌ้กน็ฎไฝ็ฐไบ้ขๅๅฏน่ฑก็ผ็จ็ๆ ธๅฟ็นๆง๏ผ
- ๆๆๅฎไฝ็ฑปไฝฟ็จ
privateๅฑๆง +publicgetter/setter - ๆๆไฟกๆฏ๏ผๅฆๅฏ็ ๏ผ้่ฟไธ้จๆนๆณ่ฎฟ้ฎ
User(ๆฝ่ฑกๅบ็ฑป) โJobSeeker,Recruiter,SystemAdmin- ๅญ็ฑป็ปงๆฟ็ถ็ฑปๅฑๆงๅๆนๆณ๏ผๅนถๅฏ้ๅ
getProfile()ๆนๆณๅจไธๅๅญ็ฑปๆไธๅๅฎ็ฐonLoginSuccess()้ฉๅญๆนๆณๅฏ่ขซๅญ็ฑป้ๅ
Userๆฏๆฝ่ฑก็ฑป๏ผๅฎไน็จๆท็้็จ่กไธบgetProfile()ๆฏๆฝ่ฑกๆนๆณ๏ผๅผบๅถๅญ็ฑปๅฎ็ฐ
| ๆจกๅผ | ็ฑปๅ | ๅบ็จไฝ็ฝฎ | ่ฏดๆ |
|---|---|---|---|
| ๅไพๆจกๅผ | ๅๅปบๅ | AIService, EventManager, SystemConfig | ็กฎไฟๅ จๅฑๅฏไธๅฎไพ |
| ๅทฅๅๆจกๅผ | ๅๅปบๅ | UserFactory, UserFactoryManager | ๅฐ่ฃ ๅฏน่ฑกๅๅปบ้ป่พ |
| ็ญ็ฅๆจกๅผ | ่กไธบๅ | MatchStrategy, MatchContext | ๅน้ ็ฎๆณๅฏๅจๆๅๆข |
| ่งๅฏ่ ๆจกๅผ | ่กไธบๅ | EventManager, Observer | ๆพ่ฆๅไบไปถ้็ฅๆบๅถ |
| ๆจกๆฟๆนๆณ | ่กไธบๅ | User.login() | ๅฎไน็ปๅฝๆต็จ้ชจๆถ |
| ๅค่งๆจกๅผ | ็ปๆๅ | RecruitmentService | ๅฐ่ฃ ๅคๆๅญ็ณป็ป |
| ็ถๆๆจกๅผ | ่กไธบๅ | Application | ็ฎก็็ณ่ฏท็ถๆ่ฝฌๆข |
| ๅผๅฏน่ฑก | ้ขๅ้ฉฑๅจ | SalaryRange, Education็ญ | ไธๅฏๅๅฏน่ฑก |
- JDK 17+
- Maven 3.6+
cd OOP_PJ
mvn clean compilemvn exec:java -Dexec.mainClass="com.recruitment.Main"ๆ่ ็ผ่ฏๅ็ดๆฅ่ฟ่ก๏ผ
mvn package
java -jar target/smart-recruitment-system-1.0.0.jarmvn test่ฟ่กไธป็จๅบๅ๏ผ็ณป็ปไผ่ชๅจๆง่กๅฎๆด็ไธๅกๆต็จๆผ็คบ๏ผๅ ๆฌ๏ผ
- ๅทฅๅๆจกๅผๅๅปบ็จๆท - ไฝฟ็จๅทฅๅๆจกๅผๅๅปบๆฑ่่ ๅๆ่่
- ็ฎๅๅๅปบ - ๅๅปบ็ฎๅๅนถๆทปๅ ๆ่ฒใๅทฅไฝใๆ่ฝไฟกๆฏ
- AI็ฎๅๅๆ - AIๅๆ็ฎๅๅนถ็ปๅบ็ปผๅ่ฏๅ
- ่ไฝๅๅธ - ๆ่่ ๅๅธ่ไฝ
- ็ญ็ฅๆจกๅผๅน้ - ๆผ็คบไธๅๅน้ ็ญ็ฅ๏ผๆ่ฝ/็ป้ช/็ปผๅ๏ผ
- ๆ้็ณ่ฏทไธAI็ญ้ - ๆไบค็ณ่ฏทๅนถ่ฟ่กAIๆบ่ฝๅน้
- ็ณ่ฏท็ถๆๆถ้ด็บฟ - ๆฅ็ๅฎๆด็็ถๆๅๅๅๅฒ
- AIๆจกๆ้ข่ฏ - ็ๆ้ข่ฏ้ฎ้ขๅนถ่ฏไผฐๅ็ญ
- ็ณป็ป็ป่ฎก - ๅฏ่งๅๅฑ็คบ็ณป็ปๆฐๆฎ
- ่ฎพ่ฎกๆจกๅผๆป็ป - ่กจๆ ผๅฑ็คบๆๆๅบ็จ็่ฎพ่ฎกๆจกๅผ
ๆผ็คบ็ปๆๅ๏ผๅฏ้่ฟ่ๅไฝ้ช๏ผ
- ๆณจๅๆฑ่่ /ๆ่่
- ๅๅธ/ๆ็ดข่ไฝ
- ๆฅ็็ณป็ปๆฅๅ
- ็ๆHTMLๅฏ่งๅๆฅๅ
- ไฟๅญๆฐๆฎๅฐJSONๆไปถ
- ๅฑ็คบOOP่ฎพ่ฎก็นๆง
็ๆ็ฒพ็พ็HTMLๅฏ่งๅๆฅๅ๏ผๅ ๅซ๏ผ
- ็ณป็ป็ป่ฎกๆฆ่งๅก็
- ็จๆทๅ่กจ๏ผๅธฆ็ถๆๆ ็ญพ๏ผ
- ่ไฝๅ่กจ๏ผๅธฆ็ณ่ฏทๆฐ้๏ผ
- ็ณ่ฏท่ฎฐๅฝ๏ผๅธฆ่ฟๅบฆๆก๏ผ
JSONๆ ผๅผ็ๆฐๆฎๅญๅจ๏ผ
- ็จๆทๆฐๆฎ (
users.json) - ่ไฝๆฐๆฎ (
jobs.json) - ็ณ่ฏทๆฐๆฎ (
applications.json)
- ๅฝฉ่ฒ่ฟๅบฆๆก
- ๆ ผๅผๅ่กจๆ ผ
- ไฟกๆฏๆกๅ็ถๆๅพๆ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ <<abstract>> โ
โ User โ
โ - userId, username, password, email, phone โ
โ + login(), activate(), getProfile() โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โฒ โฒ โฒ
โ โ โ
โโโโโโโโโดโโโโโโโ โโโโโโโโดโโโโโโโโ โโโโโโโดโโโโโโโ
โ JobSeeker โ โ Recruiter โ โ SystemAdmin โ
โ - resume โ โ - company โ โ - permLevel โ
โ - skills โ โ - jobs โ โ โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ โ
โ โ
โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Resume โ โ Job โ
โ - skills โ โ - salary โ
โ - education โ โ - status โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโ
โ Application โ
โ - status โ
โ - score โ
โโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅทฅๅๆจกๅผ (Factory) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ <<interface>> UserFactoryManager โ
โ UserFactory โโโโโโโ> getFactory(type) โ
โ โฒ โ
โ โโโ JobSeekerFactory โ
โ โโโ RecruiterFactory โ
โ โโโ AdminFactory โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ็ญ็ฅๆจกๅผ (Strategy) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ <<interface>> MatchContext โ
โ MatchStrategy <โโโโโโโ setStrategy() โ
โ โฒ executeMatch() โ
โ โโโ SkillMatchStrategy โ
โ โโโ ExperienceMatchStrategy โ
โ โโโ ComprehensiveMatchStrategy โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่งๅฏ่
ๆจกๅผ (Observer) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ <<interface>> EventManager โ
โ Observer <โโโโโโโ subscribe() โ
โ โฒ notify() โ
โ โ โ
โ NotificationService โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- Javaๆบๆไปถ: 35+
- ไปฃ็ ่กๆฐ: 4000+
- ๅๅ ๆต่ฏ: 20ไธช
- ่ฎพ่ฎกๆจกๅผ: 8็ง
้ขๅๅฏน่ฑกๆๆฏ่ฏพ็จไฝไธ
MIT License