Giter VIP home page Giter VIP logo

diplom's Introduction

Дипломная (итоговая) работа

по специализации: Разработчик — Веб-разработка на Java

Теоретическая часть

Тема: Разработка микросервисной платформы для торговой площадки организаций на базе Spring Boot и Cloud

Работа размещена на docs.google.com.

Практическая часть

Для демонстрации своих практических навыков полученных в результате обучения мной разработано микропоцессоное веб-приложение salesAccounting:

  • на языке программирования: Java
  • с использованием фреймворка: Spring Boot

Описание проекта

SalesAccounting - это система для автоматизации процессов купли-продажи, предназначенная для управления продуктами, заказами и организациями. Проект состоит из двух основных частей: серверной части (productDB) и клиентской части (wholeSale).

Структура проекта

1. productDB

Серверная часть отвечает за управление базой данных, содержащей информацию о продуктах, заказах, документах, сотрудниках и организациях.

Основные технологии:

  • Spring Boot: Фреймворк для создания stand-alone, production-grade Spring приложений.
  • Spring Data JPA: Инструмент для взаимодействия с базой данных.
  • PostgreSQL: Используется в качестве основной базы данных.
  • Spring Cloud Netflix Eureka: Сервис для регистрации и обнаружения микросервисов.
  • Spring Security: Обеспечивает безопасность приложения.
  • JUnit: Фреймворк для модульного тестирования.

Основные функции:

  • Управление продуктами: создание, обновление, удаление и поиск продуктов.
  • Управление заказами: создание, обновление, подтверждение, отмена и поиск заказов.
  • Управление документами: создание документов на основе заказов, поиск и удаление документов.
  • Управление сотрудниками: регистрация, аутентификация, клонирование и удаление сотрудников.
  • Управление организациями: регистрация, аутентификация, обновление и удаление организаций.

Структура каталогов:

productDB
├── src
│   ├── main
│   │   ├── java
│   │   │   ├── productdb
│   │   │   │   ├── config
│   │   │   │   ├── controller
│   │   │   │   ├── exception
│   │   │   │   ├── model
│   │   │   │   ├── repository
│   │   │   │   ├── service
│   │   │   │   └── specification
│   │   ├── resources
│   └── test
└── pom.xml

2. wholeSale

Клиентская часть предоставляет веб-интерфейс для взаимодействия с системой.

Основные технологии:

  • Spring Boot: Фреймворк для создания stand-alone, production-grade Spring приложений.
  • Thymeleaf: Шаблонизатор для создания динамических веб-страниц.
  • Spring Cloud Netflix Eureka: Сервис для регистрации и обнаружения микросервисов.
  • JUnit: Фреймворк для модульного тестирования.

Основные функции:

  • Аутентификация и регистрация сотрудников и организаций.
  • Управление продуктами: создание, обновление, удаление и просмотр продуктов.
  • Управление заказами: создание, обновление, подтверждение, отмена и просмотр заказов.
  • Управление документами: просмотр документов по покупателю и продавцу.
  • Управление сотрудниками: просмотр и редактирование информации о сотрудниках.
  • Управление организациями: просмотр и редактирование информации об организациях.

Структура каталогов:

wholeSale
├── src
│   ├── main
│   │   ├── java
│   │   │   ├── wholesale
│   │   │   │   ├── config
│   │   │   │   ├── controller
│   │   │   │   ├── exception
│   │   │   │   ├── model
│   │   │   │   ├── service
│   │   │   └── WholeSaleApplication.java
│   │   ├── resources
│   │       ├── static
│   │       └── templates
│   └── test
└── pom.xml

Запуск проекта

Для запуска проекта в Docker Compose выполните следующие шаги:

Клонируйте репозиторий:

git clone https://github.com/yourusername/salesAccounting.git
cd salesAccounting

Запустите Docker Compose:

docker-compose up --build

Приложение будет доступно по следующим адресам:

Структура проекта

Конфигурация (config)

Файлы конфигурации содержат настройки для работы приложения:

  • AppConfig: Основная конфигурация приложения.
  • WebConfig: Конфигурация для настройки веб-приложения.
  • BasicAuthInterceptor: Перехватчик для добавления базовой аутентификации в запросы.

Контроллеры (controller)

Контроллеры обрабатывают входящие HTTP-запросы и взаимодействуют с сервисами для выполнения бизнес-логики:

  • DocumentController: Управление документами.
  • EmployeeController: Управление сотрудниками.
  • ErrorController: Обработка ошибок.
  • HomeController: Главная страница.
  • LoginController: Аутентификация и регистрация.
  • LogoutController: Завершение сеанса.
  • OrderController: Управление заказами.
  • OrganizationController: Управление организациями.
  • ProductController: Управление продуктами.

Модели (model)

Модели представляют сущности приложения и содержат бизнес-логику:

  • Document: Документ, связанный с заказом.
  • DocumentItem: Позиция в документе.
  • Employee: Сотрудник.
  • Order: Заказ.
  • OrderItem: Позиция в заказе.
  • Organization: Организация.
  • Product: Продукт.

Сервисы (service)

Сервисы выполняют бизнес-логику и взаимодействуют с репозиториями для доступа к данным:

  • DocumentService: Управление документами.
  • EmployeeService: Управление сотрудниками.
  • OrderService: Управление заказами.
  • OrganizationService: Управление организациями.
  • ProductService: Управление продуктами.

Исключения (exception)

Обработка исключений и ошибок в приложении:

  • GlobalExceptionHandler: Глобальный обработчик исключений.
  • ServiceException: Кастомное исключение для сервисного слоя.

Иллюстрации проекта

main.JPG Market.JPG ListOrder.JPG DetalOrder.JPG ListDocs.JPG DetalDoc.JPG Reports.JPG Diagram.JPG

diplom's People

Contributors

bev0802 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.