This is a web app written in GO, capable of handling file uploads in parallel, with the user having the ability of adding "File Handlers" as a Responsibility Chain. This project was mainly an exercise for design patterns, hence incomplete front-end. Part of Software Development Techniques course taught by @andraevs.
Create a platform that allows to set up rules for ingesting and processing large amounts of data. The platform should allow selecting different data sources as streams (for example from network connections or files) and to configure a number of filters/handlers for each data stream. Result of each pipeline should also be collected in a configurable end destination. Filters can be duplicated, modified, composed. It must be possible to also attach loggers/observers to different parts of the pipeline for debugging.
Design patterns:
- Chain of Responsibility (data stream filters / handlers)
- Decorators (loggers / observers)
- Object Pool
- Builder / Factory for Connection OR Singleton Clipboard
Code https://pastebin.com/pE6UK4JB
Code https://pastebin.com/7az0ZqSr
Code https://pastebin.com/NXWRBnBY