# project-monthly-planner **Repository Path**: cnbi-com/project-monthly-planner ## Basic Information - **Project Name**: project-monthly-planner - **Description**: No description available - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-11 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Multi Project Monthly Planner Workspace path: `E:\nodejs-mysql-vue3-1-2-microsoft` This is a Node.js + MySQL + Vue3 intranet planning system for software teams. It supports multiple projects in one planning month, task assignment, lightweight Gantt views, workload views, task dependencies, user calendars, schedule preview, and Excel import/export endpoints. ## Stack - Backend: NestJS, TypeScript, TypeORM, MySQL, JWT, exceljs - Frontend: Vue3, Vite, TypeScript, Element Plus, Pinia, Vue Router - Scheduling: FS/SS/FF/SF dependencies, user calendar, conflict policy, recalculation preview ## Main Features - Login with three roles: project manager, team lead, member - Multi-project monthly planning - Project management and task management - Combined Gantt prototype - Workload and cross-project conflict view - Calendar view and my-task view - User calendar API - Excel template, import preview, import confirm, monthly plan export - MySQL schema and seed data ## Database Setup Create the database and seed data by running: ```bash mysql -h 192.168.2.207 -P 3306 -u root -p < backend/database/schema.sql ``` The backend environment file is `backend/.env`. Current values copied from your previous config: ```env MYSQL_HOST=192.168.2.207 MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=123456 MYSQL_DATABASE=month_planner JWT_SECRET=change_me_for_intranet PORT=3000 ``` ## Install Root and frontend dependencies have been installed and the project builds successfully. If backend `npm install` fails with `Cannot read properties of null (reading 'matches')`, it is an npm 9.8.1/arborist issue caused by an existing pnpm-style `node_modules`. The current backend dependencies are still present and `npx nest build` works. Recommended clean install options: ```bash cd E:\nodejs-mysql-vue3-1-2-microsoft\backend pnpm install ``` or update npm first, then reinstall: ```bash npm install -g npm@latest cd E:\nodejs-mysql-vue3-1-2-microsoft\backend npm install ``` ## Start Development Backend: ```bash cd E:\nodejs-mysql-vue3-1-2-microsoft\backend npx nest start --watch ``` Frontend: ```bash cd E:\nodejs-mysql-vue3-1-2-microsoft\frontend npm run dev ``` Frontend URL: `http://localhost:5173` Backend API: `http://localhost:3000/api` ## Default Accounts - Project manager: `pm` / `password123` - Team lead: `lead` / `password123` - Member: `dev` / `password123` ## Verification The following command passed: ```bash npm run build ``` It builds both backend and frontend. Vite reports a large chunk warning because Element Plus is bundled in the prototype; this does not block the build. ## Notes - The project has been moved to E drive. The original C drive workspace directory was removed. - Excel service source uses ASCII headers to avoid Windows shell encoding corruption. UI labels remain Chinese in the Vue pages. - The current Gantt chart is a lightweight prototype and can be upgraded with drag-and-drop scheduling in the next iteration.