The Stepper Project is a Java-based workflow management system that allows users to design, execute, and manage workflows (referred to as "flows") composed of reusable components (steps). It is built with a multithreaded, client-server architecture to support simultaneous operations and provide a scalable, user-friendly platform for managing complex processes.
This project demonstrates advanced Java development skills, focusing on modularity, GUI integration, and effective data management.
-
Flow Definition and Execution: Design flows by assembling reusable components (steps). Execute flows while tracking progress and collecting runtime data.
-
Multithreaded Execution: Supports simultaneous execution of multiple flows. Ensures efficient resource utilization and real-time monitoring.
-
User Management: Role-based access control for flow management and execution. Separate permissions for administrators and regular users.
-
Data Tracking and Analytics: Collect and store data from flow executions. Generate insights and reports based on historical execution data.
-
Graphical User Interface (GUI): Intuitive GUI for designing, managing, and executing workflows. Real-time updates on flow execution status and performance metrics.
-
Serialization: JSON-based serialization for saving and restoring workflows and configurations.
-
Client-Server Architecture: Centralized server for managing flows, users, and data. Lightweight client applications for interaction.
-
Error Handling: -Comprehensive validation during flow creation and execution. -Detailed error messages for troubleshooting.
- Java OOP: Modular design with reusable components.
- Multithreading: Efficient execution of concurrent workflows.
- Client-Server Model: Communication and data exchange between server and clients.
- JSON Serialization: Persistent storage and retrieval of workflows.
- GUI Development: Interactive user interfaces with real-time feedback.
- Role-Based Access Control: Fine-grained permission management.
- Data Analytics: Aggregation and analysis of flow execution data.
Engine System
Workflow Definition: Allows mapping inputs to outputs and defining workflows. Execution Management: Tracks inputs, outputs, logs, and summaries during workflow execution. Statistics Collection: Gathers and displays execution data for workflows and steps.
Graphical User Interface (GUI)
The GUI is built with JavaFX and includes:
- Dashboard: Displays all workflows and their details.
- Execution Screen: Launch workflows with required inputs and monitor progress.
- History Screen: View past executions and their detailed results.
- Statistics Screen: Displays workflow execution data in tables and charts.
Client-Server Architecture
Server Features: Role Management: Define and assign roles with specific workflow permissions. User Management: Create and manage user accounts. Client Features: Workflow Execution: Users can run workflows and view personal execution history. Role-Based Access Control: Permissions determine accessible workflows.
- Java: Core programming language.
- JavaFX: GUI development.
- CSS: Styling for the GUI.
- Multithreading: Enables asynchronous execution.
- Client-Server Model: Supports multiple users with distinct permissions.
For Administrators
- Upload flow definition files to the system.
- Manage user roles and permissions.
- View and analyze all user executions.
For Regular Users
- Log in with a unique username.
- Execute authorized flows and view results.
- Access personal execution history and statistics.
For Managers
- Have elevated permissions to access all flows and execution histories