A modern, responsive employee management application built with LitElement and Web Components. This application helps HR staff manage company employee information with ease.
- π List, filter and search employees
- π₯ Add new employee records
- βοΈ Edit existing employee information
- ποΈ Delete employee records
- π Toggle between table and card views
- π± Fully responsive design
- π Localization support (English and Turkish)
- π Field validation
- π§© Modular and reusable component architecture
- Web Components with LitElement
- Routing with Vaadin Router
- Module Bundling with Vite
- Testing with Web Test Runner
- CSS Custom Properties for theming
litelement-employee-management.mp4
π https://litelement-employee-management.web.app
# Install dependencies
yarn install# Start development server
yarn dev# Build for production
yarn build# Run all tests
yarn test
# Run specific tests
yarn test -- --group <file-pattern>The application includes a sample data generator that populates the app with employee records for testing purposes. Sample data is automatically added if no existing data is found.
- The app checks for existing employee data in local storage
- If no data exists, it generates a set of sample employees
- Sample data includes random names, emails, departments, and other required fields
- You can view the sample data generation in the browser console
If you prefer to start with an empty database, you can reset the storage by clearing your browser's local storage:
- Open your browser's developer tools (F12)
- Navigate to the "Application" tab
- Select "Local Storage" in the sidebar
- Right-click on the application's URL and select "Clear"
The application supports multiple languages:
- πΊπΈ English (default)
- πΉπ· Turkish
Language is automatically detected from the browser settings but can be changed using the language selector in the application.
The app is designed to work on various screen sizes:
- π± Mobile: < 768px
- π» Tablet: 768px - 1024px
- π₯οΈ Desktop: > 1024px
No external CSS frameworks are used - all responsive layouts are implemented with CSS Grid and Flexbox.
The application has extensive test coverage:
# Run tests with coverage report
yarn test- π Test Files: 23 passed (23 total)
- π§© Tests: 177 passed (177 total)
- π Components Tested: UI elements, services, utilities, and employee management features
project/
βββ public/ # Static assets
βββ src/
β βββ components/ # Reusable UI components
β β βββ common/ # Generic components
β β βββ employee/ # Employee-specific components
β β βββ layout/ # Layout components
β β βββ ui/ # UI element components
β βββ constants/ # Application constants
β β βββ animation/ # Animation constants
β β βββ domain/ # Domain-specific constants
β β βββ event/ # Event constants
β β βββ format/ # Formatting constants
β β βββ localization/ # Localization constants
β β βββ routing/ # Routing constants
β β βββ storage/ # Storage constants
β β βββ ui/ # UI constants
β β βββ validation/ # Validation constants
β βββ i18n/ # Localization
β βββ models/ # Data models
β βββ router/ # Application routing
β βββ services/ # Business logic and services
β βββ stores/ # State management
β βββ styles/ # Global styles and theme
β βββ utils/ # Utility functions
β βββ views/ # Page views
β βββ app.js # Main app component
β βββ index.js # Application entry point
βββ test/ # Test files
βββ index.html # Entry HTML file
βββ vite.config.js # Vite configuration
- Create a feature branch
- Make your changes
- Run tests to ensure everything works
- Submit a pull request
This project is licensed under the MIT License.