Performance evaluation system developed for CGC, a modern web application that efficiently manages employee performance evaluations, goals, and activities.
- Features
- Technologies
- Prerequisites
- Installation
- Configuration
- Usage
- Project Structure
- Available Scripts
- Deployment
- Contributing
- License
- π Azure AD Authentication: Integration with Microsoft Azure AD through MSAL for secure authentication
- π Evaluation Management: Creation and administration of annual performance evaluations
- π― Goal Management: Definition, tracking, and evaluation of employee goals
- π Activity Management: Registration and tracking of activities related to goals
- π¬ Feedback System: Comments and feedback to improve performance
- π Interactive Dashboard: Visualization of statistics and performance metrics
- π₯ Roles and Permissions: Role-based system (Admin/User) with different access levels
- π Search and Filtering: Advanced search and filters for evaluations and goals
- π± Responsive Design: Interface adaptable to different devices
- β‘ Optimized Performance: Fast loading and smooth user experience
- React 19: JavaScript library for building user interfaces
- TypeScript 5.8: JavaScript superset with static typing
- Vite 6: Ultra-fast build tool and development server
- TanStack Query (React Query) 5: Server state management and caching
- Zustand 5: Lightweight global state management
- React Hook Form 7: Efficient form handling
- Zod 3: TypeScript-first schema validation
- Tailwind CSS 4: Utility-first CSS framework
- React Router DOM 7: Client-side routing
- Sonner: Toast notification system
- Azure MSAL Browser 4: Microsoft Authentication Library for Azure AD authentication
- Azure MSAL React 3: React hooks for MSAL
- Lodash 4: JavaScript utility library
- React Loading Skeleton: Skeleton loading components
- React Modal: Accessible modal components
- JWT Decode: JWT token decoding
Before you begin, make sure you have installed:
- Node.js >= 18.12 (recommended: LTS version)
- npm or yarn as package manager
- An Azure AD account configured with a registered application
- Access to the evaluation system backend API
- Clone the repository
git clone https://github.com/your-username/performance_evaluation_system_FE.git
cd performance_evaluation_system_FE- Install dependencies
npm installCreate a .env file in the project root with the following variables:
# Azure AD Configuration
VITE_CLIENT_ID=your-azure-ad-client-id
VITE_AUTHORITY=https://login.microsoftonline.com/your-tenant-id
VITE_API_SCOPES=api://your-api-scope/.default
VITE_REDIRECT_URI=http://localhost:5173
# API Configuration
VITE_API_PES_URL=https://your-api-url.com/api
VITE_API_BASE_URL=https://your-api-url.com/api- Go to Azure Portal
- Navigate to Azure Active Directory > App registrations
- Select your application or create a new one
- Copy the Application (client) ID β
VITE_CLIENT_ID - Copy the Directory (tenant) ID β use it in
VITE_AUTHORITY - In Expose an API, configure the scopes β
VITE_API_SCOPES - In Authentication, add the redirect URI β
VITE_REDIRECT_URI
Start the development server:
npm run devThe application will be available at http://localhost:5173
Build the project for production:
npm run buildThe build will be in the dist/ folder. To preview:
npm run previewRun the linter to check the code:
npm run lintThe project follows the Feature-Sliced Design (FSD) architecture:
src/
βββ app/ # Application configuration
β βββ boundaries/ # Error boundaries
β βββ layout/ # Main layout
β βββ providers/ # Global providers (Query, Router)
β βββ router/ # Route configuration
β
βββ entities/ # Business entities
β βββ activity/ # Activities
β βββ evaluation/ # Evaluations
β βββ goal/ # Goals
β βββ user/ # Users
β
βββ features/ # Specific features
β βββ activityCard/ # Activity cards
β βββ activityForm/ # Activity forms
β βββ authLogin/ # Authentication
β βββ goalCard/ # Goal cards
β βββ goalForm/ # Goal forms
β βββ ...
β
βββ pages/ # Application pages
β βββ activities/ # Activities page
β βββ goals/ # Goals page
β βββ home/ # Home page
β βββ login/ # Login page
β
βββ shared/ # Shared code
β βββ api/ # API client and configuration
β βββ auth/ # Authentication logic
β βββ components/ # Reusable components
β βββ constants/ # Global constants
β βββ lib/ # Utilities and helpers
β βββ store/ # Global state (Zustand)
β
βββ widgets/ # Complex widgets
β βββ dashboard/ # Main dashboard
β βββ evaluationsInfo/ # Evaluation information
β βββ goalsInfo/ # Goal information
β βββ ...
β
βββ main.tsx # Entry point
| Script | Description |
|---|---|
npm run dev |
Starts the development server |
npm run build |
Builds the project for production |
npm run preview |
Previews the production build |
npm run lint |
Runs the linter on the project |
The project is configured to deploy to Azure Static Web Apps through Azure Pipelines.
The azure-pipelines.yml file is configured to:
- Install Node.js 18.12
- Configure environment variables
- Install dependencies
- Build the project
- Deploy to Azure Static Web Apps
- Build the project:
npm run build - The contents of the
dist/folder should be deployed to your static hosting - Make sure to configure environment variables on your hosting platform
Contributions are welcome. To contribute:
- Fork the project
- Create a 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
- Follow the Feature-Sliced Design architecture
- Keep code typed with TypeScript
- Add comments when necessary
- Follow existing naming conventions
- Run the linter before committing
This project is private and owned by CGC. All rights reserved.
Developed by CGC
β If this project has been useful to you, consider giving it a star on GitHub.