Task 2 Flow - taritinth/sw-dev-tools-and-environments-project GitHub Wiki
Flow of Jobjab
เว็บแอปพลิเคชัน Jobjab เกิดจากการ brainstorm ที่ได้มาซึ่ง painpoint หาที่ฝึกงานไม่ได้ เพราะปัจจุบัน การประกาศหางานมีลักษณะเป็นแบบกระจายไปตามเว็บไซต์หรือโซเชียลมีเดียในช่องทางต่าง ๆ และมีตัวเลือกในการหางานที่หลากหลาย จึงได้เกิดไอเดียในการสร้างเว็บแอปพลิเคชันที่เป็นตัวกลางในการหางานให้กับผู้ที่ต้องการงานและผู้ว่าจ้าง
โดยมี features หลัก ๆ ดังนี้
- Feature: ผู้สมัครงานค้นหาและสมัครงาน
- Feature: ผู้สมัครงานดูประวัติการสมัครงาน
- Feature: ผู้ว่าจ้างประกาศรับสมัครงาน
- Feature: ผู้ว่าจ้าง Hire หรือ Reject การสมัครงาน
Database Collection
แอปพลิเคชัน JobJab เลือกใช้ MondoDB เป็น Database ซึ่งมีภาพรวม Database Collection ดังนี้
- Jobs
- Users
- Applications
Jobs
คือ Collection สำหรับเก็บข้อมูลประกาศการรับสมัครงาน
{
"company": ObjectId,
"jobTitle": {
type: String,
required: true
},
"jobDesc": {
type: String,
required: true
},
"jobType": {
type: String,
enum : ['internship','fulltime','parttime'],
default: 'fulltime'
},
"startDate": Date,
"endDate": Date,
"createDate": Date
}
Users
คือ Collection สำหรับเก็บข้อมูลผู้ใช้ซึ่งแบ่งเป็น 2 ประเภท ได้แก่ ผู้สมัครงาน (Applicant) และ บริษัทผู้ว่าจ้าง (Company)
{
"type": {
type: String,
enum : ['user','company'],
default: 'user'
},
"fullName": {
type: String,
required: true
},
"email": {
type: String,
required: true
},
"phone": {
type: String,
required: true
},
"password": {
type: String,
required: true
},
"profileImg": {
type: String,
required: true
},
"website": String,
"lookingFor": Array, // For Normal User
"educations": String, // For Normal User
"jobType": String // For Normal User
}
Applications
คือ Collection สำหรับเก็บข้อมูลใบสมัครงานของผู้สมัครงานที่ยื่นเข้ามาทั้งหมด
{
"job": ObjectId,
"user": ObjectId,
"company": ObjectId,
"status": {
type: String,
enum : ['pending','hired','rejected'],
default: 'pending'
},
}