A full-stack web application for managing employee performance reviews, goals, feedback, and analytics.
- Role-Based Access Control: Employee, Manager, and Admin roles
- Goal Tracking: Set and monitor KPI-based goals
- Feedback System: Manager feedback with 1-5 ratings
- Performance Scoring: Automatic calculation based on goals (60%) and feedback (40%)
- Analytics Dashboard: Team performance metrics and insights
- Promotion Recommendations: Data-driven promotion suggestions
- Node.js + Express.js
- PostgreSQL database
- JWT authentication
- bcrypt password hashing
- React with Hooks
- Tailwind CSS styling
- Recharts for data visualization
- Lucide React icons
Open prototype.html in your browser to see a working demo with:
- Employee:
employee@company.com/employee123 - Manager:
manager@company.com/manager123 - Admin:
admin@company.com/admin123
- Node.js 16+
- PostgreSQL 13+
- Clone the repository
git clone https://github.com/YOUR_USERNAME/performance-review-system.git
cd performance-review-system- Setup Backend
cd backend
npm install
cp .env.example .env
# Edit .env with your database credentials- Setup Database
createdb performance_review
psql -U postgres -d performance_review -f database/schema.sql- Start Backend
npm run dev
# Server runs on http://localhost:3000- Setup Frontend (if using React)
cd ../frontend
npm install
npm start
# App runs on http://localhost:5173Overall Score = (Goal Completion × 60%) + (Feedback Rating × 40%)
Promotion Recommendations:
- 90%+ = Highly Recommended
- 75-89% = Recommended
- 60-74% = Consider
- <60% = Not Ready
See docs/API.md for complete API documentation.
POST /api/auth/register- Register userPOST /api/auth/login- LoginGET /api/auth/me- Get current user
GET /api/goals- List goalsPOST /api/goals- Create goalPATCH /api/goals/:id- Update goal
GET /api/feedback- List feedbackPOST /api/feedback- Create feedback
GET /api/analytics/performance-scores- Team performanceGET /api/analytics/promotion-recommendations- Promotion insights
- ✅ JWT authentication
- ✅ bcrypt password hashing (10 rounds)
- ✅ Role-based authorization
- ✅ SQL injection prevention
- ✅ CORS protection
- ✅ Helmet.js security headers
Will add screenshots here after deployment
- 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 licensed under the MIT License - see the LICENSE file for details.
- Built as a demonstration of full-stack development skills
- Includes data analytics and visualization capabilities
- Production-ready architecture with security best practices