Trading System
Archived

Trading System

A trading system that supports item, order, and user management with real-time syncing.

JavaOOPReflectionGenericsJavaFXSQLORMHibernateRedis
GitHub Project

A comprehensive trading system designed to facilitate various types of trades between users. It features a JavaFX-based GUI, user authentication, item management, trade creation, and administrative controls. The project was developed using Java and followed multiple design patterns and OOP principles.

Features

  • User Roles: Personal users, administrative users, and guest users with specific permissions.
  • Item Management: Users can add, edit, and manage items.
  • Trade Creation: Supports multiple types of trades, including three-way trades and no-meeting trades.
  • Administrative Controls: Admins can manage users, items, and system configurations.
  • Support Tickets: Users can create support tickets for assistance.
  • Localization: Supports multiple languages through properties files.

Design Patterns & Details

  • Builder: Used in TradeBuilder to construct complex trade objects.
  • Factory Method: Implemented in UserFactory to create different user types.
  • Observer: Used for real-time updates in classes like ReReReRe, Reloadable, Refreshable, Redis, and Shutdownable.
  • Strategy: Applied in configuration management with classes like ConfigStrategy, LocalStrategy, FormatStrategy, YamlStrategy, and JsonStrategy.
  • Command: Implemented in various command classes like CreateTradeCommand.
  • Facade: Used in classes like ControllerResources, ConfigBundle, EntityGatewayBundle, DatabaseResourceBundle, and WidgetBundle.
  • Adapter: Implemented in CartItemWrapper.
  • Iterator: Used in TradeUserOrderBundleIterator.
  • Dependency Injection: Utilized in CommandFactory, ControllerFactory, and all controllers, commands, and data access objects.
  • Reflection: Utilized in MappableBase to dynamically map object fields to CSV strings for data storage and retrieval.

Tech Stack:

  • JavaFX: Provides the graphical user interface.
  • Hibernate: Manages object-relational mapping for the database.
  • Redis: Handles publish-subscribe messaging.
  • Log4j2: Manages logging.
  • Jackson: Handles JSON and YAML configurations.
  • Maven: Manages build automation and dependencies.
  • SQL: Supports data storage and queries.

Tags:

Java,

OOP,

Reflection,

Generics,

JavaFX,

SQL,

ORM,

Hibernate,

Redis

Previous
Scene.js
Next
File Deduplication (Docker)