“Miracle only happens to those who don’t give up.” Ivankov
𝗡𝗔𝗠𝗘: Y Bunhong
𝗔𝗚𝗘: 21
University: Asia Euro University - Fresh man
Hobby: Learning, Experiments, Coding, Movie and Music, Silenting, Tutoring (myself)
“As long as I make the important decision by myself. I am a protagonist of my life.” – Mob
https://indify.co/widgets/live/button/SyMFhZ41K4ATQrwLswgs

project microservice: the spring active profiles if u don’t want to hard code the configuration in to github u should use spring microservice and cloud
find src -name ".js" -type f -delete find src -name ".js.map" -type f -delete
https://www.martyfriedel.com/blog/deleting-data-soft-hard-or-audit
const enum MainPaths {
DASHBOARD = '/dashboard',
BLOG_MANAGEMENT = '/blog-management',
USER_MANAGEMENT = '/user-management',
PROPERTY_MANAGEMENT = '/property-management',
}
export const paths = {
// Dashboard
dashboard: {
root: MainPaths.DASHBOARD,
},
// User Management
userManagement: {
root: MainPaths.USER_MANAGEMENT,
detail: (id: string) => `${MainPaths.USER_MANAGEMENT}/${id}`,
edit: (id: string) => `${MainPaths.USER_MANAGEMENT}/edit/${id}`,
create: `${MainPaths.USER_MANAGEMENT}/create`,
},
// Property Management
propertyManagement: {
root: MainPaths.PROPERTY_MANAGEMENT,
detail: (id: string) => `${MainPaths.PROPERTY_MANAGEMENT}/${id}`,
edit: (id: string) => `${MainPaths.PROPERTY_MANAGEMENT}/edit/${id}`,
create: `${MainPaths.PROPERTY_MANAGEMENT}/create`,
},
// Blog Management
blogManagement: {
root: MainPaths.BLOG_MANAGEMENT,
detail: (id: string) => `${MainPaths.BLOG_MANAGEMENT}/${id}`,
edit: (id: string) => `${MainPaths.BLOG_MANAGEMENT}/edit/${id}`,
write: `${MainPaths.BLOG_MANAGEMENT}/write`,
},
};
Here’s a **tech stack recommendation for building your social media platform** (starting with web then moving to mobile), *plus an analysis of job opportunities in Cambodia right now (2025) and what’s likely to be in demand ~3 years later (2028)*.
---
## ✅ Recommended Stack for Web → Mobile
| Layer | Technology | Why It Matters |
| ------------------ | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Frontend (Web)** | **React.js + Next.js** | Very strong demand in Cambodia for web dev roles; JavaScript skills are highly valued. You can later reuse logic/components for mobile with React Native. ([Nucamp][1]) |
| **Backend** | **Node.js + Express** (TypeScript optional) | JavaScript across stack → easier to hire/scale; widely used in full‑stack jobs. ([Nucamp][1]) |
| **Database** | **PostgreSQL** | Solid demand for SQL skills; PostgreSQL is increasingly preferred for modern apps. ([Nucamp][1]) |
| **Real‑time** | **Socket.io** or WebSockets | Needed for chat/notifications in social apps. |
| **Authentication** | **JWT + OAuth (Google/Facebook)** | Standard for social platforms. |
| **Cloud/Hosting** | **Vercel (frontend)**, **AWS / DigitalOcean (backend & DB)** | Local companies increasingly adopt cloud skills. ([Dotdesh][2]) |
| **API** | **REST** (later GraphQL optional) | Universal in job listings. |
| **Mobile (later)** | **React Native + Expo** | Reuse skills from web for Android/iOS. |
---
## 📈 Job Opportunities in Cambodia (2025)
### **Strong Demand Right Now**
According to recent industry data for Cambodia:
* **Web development (especially JavaScript)** is one of the most in‑demand skills, making up a large portion of tech job postings. ([Nucamp][1])
* **Full‑stack developers** are especially valuable because they handle both front‑end and back‑end tasks. ([Dotdesh][2])
* **Cloud computing, Python, and SQL** are also listed as key skills employers want. ([Nucamp][1])
* **Cybersecurity and AI fields** are growing fast as the digital economy evolves. ([Dotdesh][2])
* Salaries for software developers are competitive compared to the local average. ([secondtalent.com][3])
🔎 Local jobs often want **JavaScript + SQL**, and many companies still have **PHP/WordPress legacy systems**, but modern stacks are clearly growing. ([Reddit][4])
---
## 📊 Job Market Projection: 3 Years Later (2028)
### **What’s Likely to Grow**
If current trends continue, the Cambodian tech job market should:
✅ **Increase demand for full‑stack developers** — especially those who know React, Node.js, and TypeScript — because companies want people who can build complete digital platforms. ([Dotdesh][2])
✅ **Grow cloud expertise roles** — AWS/Azure skills are becoming essential as more businesses move online and adopt scalable infrastructure. ([Dotdesh][2])
✅ **Expand mobile development demand** — with more startups and digital services focusing on apps, React Native or Flutter skills will be more valued.
✅ **Keep growing data, AI, and cybersecurity jobs** — these areas are underserved today and expected to expand. ([Nucamp][1])
📌 **Why this matters for your stack choice:**
React + Node.js + PostgreSQL gives you both **local job opportunities now** and **transferable skills for future trends** like cloud and mobile.
---
## 🧠 Job Opportunity Comparison for Your Stack
| Tech | 2025 Demand in Cambodia | 2028 Demand Outlook |
| --------------------- | -------------------------------------- | --------------------------------------- |
| **React / Next.js** | High (web dev) ([Nucamp][1]) | High (core front‑end skill) |
| **Node.js / Express** | Growing ([Nucamp][1]) | High (full‑stack, APIs) |
| **PostgreSQL** | Good (SQL skills sought) ([Nucamp][1]) | Strong (enterprise / data applications) |
| **React Native** | Emerging | Strong (mobile growth) |
| **Cloud (AWS/Azure)** | Increasing ([Dotdesh][2]) | Very strong (cloud adoption) |
| **Cybersecurity** | Growing ([Dotdesh][2]) | Very strong |
| **AI / Data Science** | Growing ([Dotdesh][2]) | Very strong |
---
## 🧩 Career Tips for Cambodia
✔ **Start with strong JavaScript fundamentals.** It unlocks many web and mobile roles. ([Nucamp][1])
✔ **Get familiar with cloud (AWS/GCP).** Employers increasingly expect cloud deployment skills. ([Dotdesh][2])
✔ **Learn SQL deeply (PostgreSQL or MySQL).** SQL is a baseline for backend developers. ([Nucamp][1])
✔ **Build a portfolio early.** Local companies often care more about your real projects than just degrees.
---
### 🏁 Final Recommendation
**Best stack for Cambodia tech careers (2025–2028):**
🚀 **React + Next.js + Node.js + PostgreSQL** (Web first)
📱 **React Native + Cloud skills** later
This gives you the **highest likelihood of jobs now** and keeps you future‑proof for **mobile and cloud growth** over the next few years.
---
If you want, I can tailor this tech stack *specifically for salaries or job postings in Phnom Penh* — just tell me your experience level (junior/mid/senior).
[1]: <https://www.nucamp.co/blog/coding-bootcamp-cambodia-khm-getting-a-job-in-tech-in-cambodia-in-2025-the-complete-guide?utm_source=chatgpt.com> "Getting a Job in Tech in Cambodia in 2025: The Complete Guide"
[2]: <https://www.dotdesh.com/top-10-essential-tech-skills-cambodia-employers-seek-in-2025/?utm_source=chatgpt.com> "Top 10 Essential Tech Skills Cambodia Employers Seek in 2025 - Dotdesh"
[3]: <https://www.secondtalent.com/developer-rate-card/cambodia/?utm_source=chatgpt.com> "Cambodia Software Developer Salary & Hourly Rates [Jan, 2026] | Second Talent"
[4]: <https://www.reddit.com/r/cambodia/comments/1iqojfl?utm_source=chatgpt.com> "What Stack-technology used most used in field work cambodia?"
global user = "user", "super_admin"
-"super_admin" = management all the application, have all access permission (mostly developer)
-"user"= a default when creating a user
+"user": have multiple role to management permission (solely on thier acc)
- "admin" = when creating a project user will grant a role "admin" to management all kind of things in project like task,deadline etc. in short all the things in project module
+ "project_role" = "all_project_permission" + "all_task_permission" + "view_task_permission"
+ "task_role" = "all_task_permission" + "view_task_permission"
+ "view_role" = "view_task_permission"
- "developer"= (when add the the project by another user) "task_role" + "view_role"
- "view" = (for stakeholder or viewer by link) "view_role"