A full-stack performance management system built with React.js and Node.js that allows managers to evaluate their team members' performance across different competencies.
- User Authentication with role-based access (Admin, Manager, Reportee)
- Monthly performance evaluations
- Evaluation tracking and history
- Dashboard views for different roles
- Prevent duplicate evaluations for the same month
- Edit capabilities for existing evaluations
- React.js
- Material-UI
- React Router
- Axios for API calls
- JWT for authentication
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- CORS enabled
performance-tracker/
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── contexts/ # Context providers
│ │ └── services/ # API services
│ └── package.json
│
└── backend/ # Node.js backend
├── config/ # Configuration files
├── controllers/ # Route controllers
├── middleware/ # Custom middleware
├── models/ # Mongoose models
├── routes/ # API routes
└── server.js # Entry point
- Clone the repository:
git clone https://github.com/jaydeepc/performance-tracker.git
cd performance-tracker- Install dependencies:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install- Set up environment variables:
Create a
.envfile in the backend directory:
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
PORT=5001
- Start the servers:
# Start backend server
cd backend
npm start
# Start frontend development server
cd frontend
npm start- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5001
- POST /api/auth/login - Login user
- GET /api/users - Get all users (Admin only)
- POST /api/users - Create new user (Admin only)
- GET /api/users/managers/:managerId/reportees - Get manager's reportees
- POST /api/evaluations - Create evaluation
- GET /api/evaluations/user/:userId - Get user's evaluations
- GET /api/evaluations/:id - Get evaluation by ID
- PUT /api/evaluations/:id - Update evaluation
- GET /api/evaluations/status/:userId - Get evaluation status
MIT License