https://github.com/yagmurbarank/employee-management-system
Spring Boot Vaadin Project
https://github.com/yagmurbarank/employee-management-system
java spring-boot springdata-jpa vaadin
Last synced: about 2 months ago
JSON representation
Spring Boot Vaadin Project
- Host: GitHub
- URL: https://github.com/yagmurbarank/employee-management-system
- Owner: yagmurbarank
- License: mit
- Created: 2025-02-12T20:17:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-07T22:11:07.000Z (about 2 months ago)
- Last Synced: 2025-03-07T22:28:45.746Z (about 2 months ago)
- Topics: java, spring-boot, springdata-jpa, vaadin
- Language: Java
- Homepage:
- Size: 503 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Spring Boot Vaadin Application: Person Search App
This is a simple Spring Boot application built with Vaadin, providing a basic staff directory with name filtering.
## Features
**Home Page:** A navbar Menu to show pages.
**Login Page:** A simple "Login" page.
**About Page:** An "About" page (potentially with company information, etc.)
**Staff Page:**
* Displays a list of staff members.
* Allows filtering by name (first or last name).
* Allows adding new staff members through refresh button.
* Allows deleting staff from grid through delete button.
* Utilizes a database for storing and retrieving staff data (likely using Spring Data JPA).
* Uses dummy data for initial setup.## Technologies
* **Java (Version 17):** Programming language
* **Spring Boot (Version 3.4.2):** Framework for building Java applications.
* **Vaadin (Version 24.6.5):** UI framework for creating web applications.
* **Spring Data JPA (Version 3.4.2):** Data access layer for interacting with the database.
* **Maven (Version 4.0.0):** Project dependency management and compilation operations.## Prerequisites
Before setting up the project, ensure you have the following installed:
- **Java Development Kit (JDK 17 or higher)** - Download
from [Oracle](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html) or use an open-source alternative
like [Adoptium](https://adoptium.net/).
- **Maven 4.0.0** - Download from [Apache Maven](https://maven.apache.org/download.cgi).## Setup and Installation
### 1. Clone the Repository
```sh
git clone https://github.com/yagmurbarank/person-search-app.git
``````sh
cd person-search-app
```### 2. Build the Application
```sh
mvn clean install
```### 3. Run the Application
```sh
mvn spring-boot:run
```Alternatively, run the JAR file created in the `target` directory:
```sh
java -jar target/[your-application-name].jar
```### 4. Access the Application
- **Home Page:** [http://localhost:8081/](http://localhost:8081/)
- **Hello World Page:** [http://localhost:8081/hello-world](http://localhost:8081/hello-world)
- **About Page:** [http://localhost:8081/about](http://localhost:8081/about)
- **Staff Page:** [http://localhost:8081/staff](http://localhost:8081/staff)## Usage
This section outlines how to interact with the key features related to staff management within the application.
- **Filtering Staff:** Utilize the search bar (located at the top of the staff list) to filter the displayed staff
members by entering a first name or last name. The list will dynamically update to show only matching results.- **Refreshing Staff Data:** To ensure you have the most up-to-date staff information, use the "Refresh" button, in the
bottom-right corner of the screen. This action will reload the staff data from the server. Note that refresh button
adds new data for now.- **Deleting Staff Members:** Select a staff member from the list and click the "Delete" button to remove them from the
system.# Project Structure
This project follows a modular architecture, prioritizing separation of concerns for enhanced clarity and
maintainability.### **Packages:**
- **`view` package in `src/main/java`**: Contains server-side Java views, representing different screens/sections of the
application's user interface.- **`repository` package in `src/main/java`**: Implements the data access layer with Spring Data JPA, providing
interfaces for CRUD operations on entities.- **`service` package in `src/main/java`**: Encompasses the application's business logic, managing data, coordinating
component interactions, and enforcing business rules.- **`presenter` package in `src/main/java`**: Manages presentation logic, acting as an intermediary between views and
services for data retrieval, formatting, and user interaction handling.- **`model` package in `src/main/java`**: Houses Data Transfer Objects (DTOs) or ViewModels, decoupling views from
underlying data entities.- **`exception` package in `src/main/java`**: Contains custom exception classes, providing a consistent approach to
error handling.## Screenshots
* **Home Page:**

* **Login Page:**

* **Staff Page:**

* **Filtering:**

* **About Page:**

* **Hello Page:**

## Useful links
- [Vaadin Documentation](https://vaadin.com/docs).
- [Vaadin Tutorial](https://vaadin.com/docs/latest/tutorial/overview).
- [Vaadin Start ](https://start.vaadin.com/).
- [Vaadin UI Components](https://vaadin.com/docs/latest/components).
- [Vaadin Examples & Demos](https://vaadin.com/examples-and-demos).
- [Vaadin CSS Utility Classes](https://vaadin.com/docs/styling/lumo/utility-classes).
- [Vaadin Cookbook (Common Solutions)](https://cookbook.vaadin.com/).
- [Vaadin Add-ons](https://vaadin.com/directory).
- [Stack Overflow (Vaadin Questions)](https://stackoverflow.com/questions/tagged/vaadin)
- [Vaadin Forum](https://vaadin.com/forum).
- [GitHub](https://github.com/vaadin).