2025-05-23 23:34:50 +07:00
|
|
|
{
|
|
|
|
|
"name": "my-app",
|
|
|
|
|
"version": "0.1.0",
|
🚀 Enhanced Create Project & Removed /react URL Prefix
📊 Create Project Enhancements:
- Added progressPercentage field with validation (0-100 range)
- Updated API data structure to match backend requirements
- Simplified form validation (removed required managers)
- Made team assignment optional with clear UX indicators
- Enhanced form layout with 4-column responsive design
🔧 API Data Structure:
- Streamlined to 10 essential fields: projectName, description, clientName, categoryId, priority, status, startDate, endDate, budget, progressPercentage
- Removed complex fields: managerIds, teamMemberIds, tags, createdDate, isActive
- Proper data type conversion (parseInt, parseFloat)
- Clean JSON structure for backend integration
🌐 URL Structure Improvement:
- Removed /react prefix from URLs by updating package.json homepage
- Clean URLs: localhost:3001/ instead of localhost:3001/react/
- Better SEO and user experience with standard URL patterns
- Professional URL structure following best practices
🎨 UI/UX Improvements:
- Progress percentage field with number input and % suffix
- Beautiful gradient styling for input group elements
- Enhanced form section headers with icons
- Optional field indicators with helpful placeholder text
- Responsive 3-column layout for timeline/budget/progress section
✅ Form Features:
- Real-time validation with clear error messages
- Loading states for API calls
- Success notifications with auto-redirect
- Fallback data handling for offline scenarios
- Professional form styling with hover effects
2025-06-01 23:30:55 +07:00
|
|
|
"homepage": "/",
|
2025-05-23 23:34:50 +07:00
|
|
|
"private": true,
|
|
|
|
|
"dependencies": {
|
2025-08-02 02:33:10 +07:00
|
|
|
"@ant-design/icons": "^5.6.1",
|
2025-05-23 23:34:50 +07:00
|
|
|
"@ckeditor/ckeditor5-build-classic": "^41.2.0",
|
|
|
|
|
"@ckeditor/ckeditor5-react": "^6.2.0",
|
|
|
|
|
"@fortawesome/fontawesome-svg-core": "^6.5.1",
|
|
|
|
|
"@fortawesome/free-solid-svg-icons": "^6.5.1",
|
|
|
|
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
|
|
|
"@fullcalendar/daygrid": "^6.1.11",
|
|
|
|
|
"@fullcalendar/interaction": "^6.1.11",
|
|
|
|
|
"@fullcalendar/react": "^6.1.11",
|
|
|
|
|
"@fullcalendar/timegrid": "^6.1.11",
|
|
|
|
|
"@react-latest-ui/react-sticky-notes": "^0.2.6",
|
|
|
|
|
"@reduxjs/toolkit": "^2.2.1",
|
|
|
|
|
"@types/react-slick": "^0.23.13",
|
|
|
|
|
"antd": "^5.15.2",
|
|
|
|
|
"apexcharts": "^3.47.0",
|
|
|
|
|
"bootstrap": "^5.3.3",
|
|
|
|
|
"boxicons": "^2.1.4",
|
|
|
|
|
"chart.js": "^4.4.2",
|
|
|
|
|
"chartjs": "^0.3.24",
|
|
|
|
|
"clipboard-copy": "^4.0.1",
|
|
|
|
|
"datatables.net": "^1.13.11",
|
|
|
|
|
"dayjs": "^1.11.10",
|
|
|
|
|
"dragula": "^3.7.3",
|
|
|
|
|
"feather-icons-react": "^0.6.2",
|
|
|
|
|
"fslightbox-react": "^1.7.6",
|
|
|
|
|
"lightbox.js-react": "^0.9.9",
|
|
|
|
|
"moment": "^2.30.1",
|
|
|
|
|
"owl.carousel": "^2.3.4",
|
|
|
|
|
"primereact": "^10.5.1",
|
|
|
|
|
"prop-types": "^15.8.1",
|
|
|
|
|
"react": "^18.2.0",
|
|
|
|
|
"react-apexcharts": "^1.4.1",
|
|
|
|
|
"react-awesome-slider": "^4.1.0",
|
|
|
|
|
"react-awesome-stars-rating": "^0.16.2",
|
|
|
|
|
"react-bootstrap": "^2.10.1",
|
|
|
|
|
"react-bootstrap-daterangepicker": "^8.0.0",
|
|
|
|
|
"react-chartjs-2": "^5.2.0",
|
|
|
|
|
"react-country-flag": "^3.1.0",
|
|
|
|
|
"react-countup": "^6.5.0",
|
|
|
|
|
"react-custom-scrollbars-2": "^4.5.0",
|
|
|
|
|
"react-date-range": "^2.0.0-alpha.4",
|
|
|
|
|
"react-datepicker": "^4.25.0",
|
|
|
|
|
"react-datetime-picker": "^5.6.0",
|
|
|
|
|
"react-dnd": "^16.0.1",
|
|
|
|
|
"react-dnd-html5-backend": "^16.0.1",
|
|
|
|
|
"react-dom": "^18.2.0",
|
|
|
|
|
"react-draggable": "^4.4.6",
|
|
|
|
|
"react-dropzone": "^14.2.3",
|
|
|
|
|
"react-feather": "^2.0.10",
|
|
|
|
|
"react-helmet": "^6.1.0",
|
|
|
|
|
"react-icons": "^5.0.1",
|
|
|
|
|
"react-input-mask": "^2.0.4",
|
|
|
|
|
"react-jvectormap": "^0.0.16",
|
|
|
|
|
"react-loading": "^2.0.3",
|
|
|
|
|
"react-owl-carousel": "^2.3.3",
|
|
|
|
|
"react-redux": "^9.1.0",
|
|
|
|
|
"react-router-dom": "^6.22.3",
|
|
|
|
|
"react-scripts": "^5.0.1",
|
|
|
|
|
"react-select": "^5.8.0",
|
|
|
|
|
"react-simple-wysiwyg": "^3.0.2",
|
|
|
|
|
"react-slick": "^0.29.0",
|
|
|
|
|
"react-svg-worldmap": "^2.0.0-alpha.16",
|
|
|
|
|
"react-sweetalert2": "^0.6.0",
|
|
|
|
|
"react-tag-input-component": "^2.0.2",
|
|
|
|
|
"react-timepicker": "^2.0.2",
|
|
|
|
|
"sass": "^1.72.0",
|
|
|
|
|
"slick-carousel": "^1.8.1",
|
|
|
|
|
"sweetalert2": "^11.10.6",
|
|
|
|
|
"sweetalert2-react-content": "^5.0.7",
|
|
|
|
|
"weather-icons-react": "^1.2.0",
|
|
|
|
|
"yet-another-react-lightbox": "^3.17.1"
|
|
|
|
|
},
|
|
|
|
|
"scripts": {
|
|
|
|
|
"start": "react-scripts start",
|
|
|
|
|
"build": "react-scripts build",
|
|
|
|
|
"test": "react-scripts test",
|
|
|
|
|
"eject": "react-scripts eject",
|
|
|
|
|
"lint": "eslint .",
|
|
|
|
|
"lint:fix": "eslint --fix ."
|
|
|
|
|
},
|
|
|
|
|
"browserslist": {
|
|
|
|
|
"production": [
|
|
|
|
|
">0.2%",
|
|
|
|
|
"not dead",
|
|
|
|
|
"not op_mini all"
|
|
|
|
|
],
|
|
|
|
|
"development": [
|
|
|
|
|
"last 1 chrome version",
|
|
|
|
|
"last 1 firefox version",
|
|
|
|
|
"last 1 safari version"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
"overrides": {
|
|
|
|
|
"semver": "~7.5.2"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
|
|
|
|
|
"eslint": "^8.57.0"
|
|
|
|
|
}
|
|
|
|
|
}
|