An automated organization chart generation application built with the MERN stack (MongoDB, Express.js, React.js, Node.js) for SYSLABO Corp.
This application automates the creation of organizational charts from employee and department data, replacing a manual Excel-based process. It handles concurrent positions (兼務/Kenmu) and maintains historical records of organizational changes.
- Automatic organization chart generation in a printable format
- Support for concurrent positions (兼務/Kenmu)
- Employee and department data management
- Change history tracking
- UTF-8 encoding support for Japanese characters
- Node.js (v14 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn package manager
- MongoDB Compass (for database management)
- Postman (for API testing)
- Clone the repository:
git clone https://github.com/yourusername/organization-chart-generator.git
cd organization-chart-generator
- Install dependencies:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install
- Configure environment variables:
# Backend (.env)
PORT=5000
MONGODB_URI=mongodb://localhost:27017/syslabo-org
JWT_SECRET=your_jwt_secret
# Frontend (.env)
REACT_APP_API_URL=http://localhost:5000/api
- Start MongoDB service
- Start the backend server:
cd backend
npm run dev
- Start the frontend application:
cd frontend
npm start
organization-chart-generator/
├── backend/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── server.js
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── services/
│ └── package.json
└── README.md
GET /api/employees
- Get all employeesPOST /api/employees
- Create new employeePUT /api/employees/:id
- Update employeeGET /api/employees/history
- Get employee history
GET /api/departments
- Get all departmentsPOST /api/departments
- Create new departmentPUT /api/departments/:id
- Update departmentGET /api/departments/history
- Get department history
{
employeeId: String,
name: String,
department: String,
position: String,
concurrentPositions: [{
departmentId: String,
position: String,
startDate: Date
}],
history: [{
change: Object,
timestamp: Date
}]
}
{
departmentId: String,
name: String,
parentDepartment: String,
level: Number,
history: [{
change: Object,
timestamp: Date
}]
}
- JWT authentication for API endpoints
- Input validation and sanitization
- CORS configuration
- Rate limiting
- Environment variable protection
- Chrome (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
- Edge (latest 2 versions)
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is proprietary and confidential. Unauthorized copying or distribution of this project's files, via any medium, is strictly prohibited.
For questions and support, please contact: [email protected]
Copyright © SYSLABO All Rights Reserved.