https://github.com/danteck-dev/ems_backend_springboot_mysql
Серверная часть построена на Spring Boot с использованием MySQL для хранения данных. Реализованы API для управления сотрудниками: добавление, редактирование, удаление и просмотр.
https://github.com/danteck-dev/ems_backend_springboot_mysql
java juinit mockito mysql spring-boot
Last synced: about 2 months ago
JSON representation
Серверная часть построена на Spring Boot с использованием MySQL для хранения данных. Реализованы API для управления сотрудниками: добавление, редактирование, удаление и просмотр.
- Host: GitHub
- URL: https://github.com/danteck-dev/ems_backend_springboot_mysql
- Owner: DANTECK-dev
- License: mit
- Created: 2025-01-16T17:29:36.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-18T13:01:45.000Z (over 1 year ago)
- Last Synced: 2025-01-18T14:27:59.144Z (over 1 year ago)
- Topics: java, juinit, mockito, mysql, spring-boot
- Language: Java
- Homepage:
- Size: 32.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Employee Managment System(EMS) Backend (Spring Boot + MySQL)
## Описание проекта
Этот проект представляет собой демо-приложение, использующее Spring Boot для создания бэкенда и React.js для фронтенда. Бэкенд работает с базой данных MySQL и предоставляет REST API для взаимодействия с фронтендом.
>Ссылка на [FrontEnd](https://github.com/DANTECK-dev/ems-react-spring)
## Стек технологий
- **Java 23**
- **Spring Boot 3.4.1**
- **Spring Data JPA**
- **MySQL**
- **Spring Boot DevTools** (для автоматической перезагрузки в процессе разработки)
- **Mockito** (для юнит-тестирования)
- **JSONPath** (для тестирования JSON-ответов)
## Требования
- **JDK 23**
- **MySQL 8.0+**
## Настройка и запуск проекта
### 1. Настройка MySQL
1. Убедитесь, что MySQL установлен и работает.
2. Создайте базу данных для проекта:
```sql
CREATE DATABASE ems;
```
3. Обновите настройки подключения к базе данных в файле `application.properties` (или `application.yml`), который находится в папке `src/main/resources`.
Пример конфигурации для `application.properties`:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/ems?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
```
Замените `your_password` на пароль для вашего пользователя MySQL.
### 2. Установка зависимостей
Проект использует **Maven** для управления зависимостями. Чтобы установить все необходимые зависимости, выполните команду:
```bash
mvn clean install
```
### 3. Запуск проекта
Для запуска приложения используйте команду:
```bash
mvn spring-boot:run
```
Это запустит сервер на порту `8080` (по умолчанию).
### 4. Пример работы с REST API
Приложение предоставляет несколько эндпоинтов для работы с сущностями (например, сотрудников).
- **POST** `/api/v1/employees` - создание нового сотрудника.
- **GET** `/api/v1/employees` - получение списка сотрудников.
- **GET** `/api/v1/employees/{id}` - получение информации о сотруднике по ID.
- **PUT** `/api/v1/employees/{id}` - обновление данных сотрудника.
- **DELETE** `/api/v1/employees/{id}` - удаление сотрудника.
Пример запроса для создания нового сотрудника:
```text
POST /api/v1/employees
Content-Type: application/json
```
```json
{
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com"
}
```
### 5. Тестирование
Для тестирования используются **JUnit 5** и **Mockito**. Тесты можно запускать через Maven:
```bash
mvn test
```
Тесты находятся в директории `src/test/java`.
## Структура проекта
- **`src/main/java`** — исходный код приложения.
- **`src/main/resources`** — ресурсы, такие как `application.properties`.
- **`src/test/java`** — тесты приложения.
- **`pom.xml`** — файл для управления зависимостями с использованием Maven.
## Примечания
- Для удобства разработки используйте **Spring Boot DevTools** для автоматической перезагрузки при изменениях в коде.
- Проект настроен на использование MySQL, однако для работы с другими базами данных нужно будет изменить настройки подключения в `application.properties`.
- Все миграции базы данных управляются через **JPA** (Hibernate), и схема базы данных будет автоматически обновляться с каждым запуском приложения.
### Автор
- Cтудент **Александр Немеров**
- Вуз **ВСГУТУ**
- Группа **Б761-2**
- Связь **lol@kek-work.ru**
### Лицензия
Проект распространяется под лицензией [MIT LICENSE](LICENSE).