Skip to content

cgaritac/performance_evaluation_system_FE

Repository files navigation

🎯 Performance Evaluation System (PES)

Performance evaluation system developed for CGC, a modern web application that efficiently manages employee performance evaluations, goals, and activities.

πŸ“‹ Table of Contents

✨ Features

  • πŸ” 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

πŸ› οΈ Technologies

Core

  • 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

State and Data

  • 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

UI/UX

  • Tailwind CSS 4: Utility-first CSS framework
  • React Router DOM 7: Client-side routing
  • Sonner: Toast notification system

Authentication

  • Azure MSAL Browser 4: Microsoft Authentication Library for Azure AD authentication
  • Azure MSAL React 3: React hooks for MSAL

Utilities

  • Lodash 4: JavaScript utility library
  • React Loading Skeleton: Skeleton loading components
  • React Modal: Accessible modal components
  • JWT Decode: JWT token decoding

πŸ“¦ Prerequisites

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

πŸš€ Installation

  1. Clone the repository
git clone https://github.com/your-username/performance_evaluation_system_FE.git
cd performance_evaluation_system_FE
  1. Install dependencies
npm install

βš™οΈ Configuration

Environment Variables

Create 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

Obtaining Azure AD Credentials

  1. Go to Azure Portal
  2. Navigate to Azure Active Directory > App registrations
  3. Select your application or create a new one
  4. Copy the Application (client) ID β†’ VITE_CLIENT_ID
  5. Copy the Directory (tenant) ID β†’ use it in VITE_AUTHORITY
  6. In Expose an API, configure the scopes β†’ VITE_API_SCOPES
  7. In Authentication, add the redirect URI β†’ VITE_REDIRECT_URI

πŸ’» Usage

Development Mode

Start the development server:

npm run dev

The application will be available at http://localhost:5173

Production Mode

Build the project for production:

npm run build

The build will be in the dist/ folder. To preview:

npm run preview

Linting

Run the linter to check the code:

npm run lint

πŸ“ Project Structure

The 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

πŸ“œ Available Scripts

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

🚒 Deployment

The project is configured to deploy to Azure Static Web Apps through Azure Pipelines.

CI/CD Configuration

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

Manual Deployment

  1. Build the project: npm run build
  2. The contents of the dist/ folder should be deployed to your static hosting
  3. Make sure to configure environment variables on your hosting platform

🀝 Contributing

Contributions are welcome. To contribute:

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contribution Guidelines

  • Follow the Feature-Sliced Design architecture
  • Keep code typed with TypeScript
  • Add comments when necessary
  • Follow existing naming conventions
  • Run the linter before committing

πŸ“„ License

This project is private and owned by CGC. All rights reserved.

πŸ‘₯ Team

Developed by CGC


⭐ If this project has been useful to you, consider giving it a star on GitHub.

About

A performance evaluation system build with React (Front end)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages