university program - upbdils.pub.ro/wp-content/uploads/2015/10/sgebs-university-program... ·...
TRANSCRIPT
University Program
Subjects for license
22 October 2015
V 0.1
Page | 1
University Program
Short description Subjects proposed for students for license study
Date 22 October 2015 Document version 0.01
Author(s) Alin POPOVICI Classification
Synthesis
SGEBS Entity Tutor Subject Techno
1 DEMETER (1) Catalin Lazar Sonar and GIT HUB monitoring tool Java, JS, Spring, web
2 CASSIOPAE(2) Catalin Stoiovici Business travel @EBS
3 CASSIOPAE(2) Catalin Stoiovici Events @EBS
Java, Spring, Hibernate, AngularJS, Database
4 TESSA (5) Daniel Sotropa NOSQL Big Data Storage Service
5 TESSA (5) Daniel Sotropa
Application health monitoring and logging system
6 TESSA (5) Daniel Sotropa
SOA applications automated testing solution
7 TESSA (5) Daniel Sotropa
Scalable Relational Databases Based Data Service with CQRS
8 TESSA (5) Daniel Sotropa
User access management system with Single Sign On
9 TESSA (5) Daniel Sotropa
HR Open Positions and Candidates Management System
RDBMS SOA .NET WCF Angular & Node JS MVC Active directory Text search optimized Big Data KV Store NOSQL systems Parallel computing in .NET REST web services WPF Entity Framework Unity Framework .NET UI Automation
10 RTPOSE(2) Cristian Tudor Fix message validator
11 RTPOSE(2) Cristian Tudor MiniFIX
12 RTPOSE(2) Cristian Tudor Market simulator
13 RTPOSE(2) Cristian Tudor Financial Game (Alliens vs Traders)
Network communication (sockets) XML, C++, GUI toolkit
14 MSD(1)
Sebastian Andrasoni
Distributed Market Data Caches in Financial Services
15 MSD(1)
Sebastian Andrasoni
Data Encoding Protocols in Financial Technology
Java Core, Data Structures, Sockets, Multithreading Dependency Injection Containers, Distributed caches, REST Web Services
16 CASCADE Liviu Marinescu
REST services implementation to manage “Future” financial products
17 CASCADE Liviu Marinescu
Client Server application for FIX communication
18 CASCADE Liviu Marinescu
Big Data analysis: real time monitor for online shops products prices
1. SonarandGITHUBmonitoringtool
1.1. Description
Code quality measurement is an important part of the software development lifecycle. Both managers and developers benefit from a fast automatic feedback loop that is provided by the static analyzers deployed using Sonar. In this project you will develop a web site which aggregates data spread over a period of time from Sonar and GitHub and provide meaningful measures of how a project’s quality evolved. The data will be displayed for users such as the developers and the project managers. The web site will be developed using Java 8, Spring boot and Angular JS. It will immediately become an integral part of the SG’s application ecosystem and continuous delivery pipeline and you will experience first-hand interaction with the end-users of the application.
1.2. Technologies
Basic programming skills (Java)
Basic Web programming (Javascript)
Web UI (CSS, responsive design etc.)
(optional) Spring framework
(optional) Angular JS
(optional) Continuous integration methodologies
2. BusinessTravel@EBS
2.1. Description
Having an easy to use tool to help employees when they make business travel should be a de facto in every organization. The purpose of the application is to offer the following business functionality:
‐ Allow employees to ask for a business travel approval and start a business workflow for this
‐ Add business travel information which is available to multiple levels of the organization before and after the actual trip
‐ Manage resources needed in a business travel
‐ Facilitate the extraction of reports which will be used to calculate financial obligations for employee or employees
Page | 2
2.2. Technologies:
‐ Java
‐ Spring
‐ Hibernate
‐ Angular JS
‐ Database
2.3. Advantages
The student will get to know how the business expense process works in a large organization and will get to work with modern Java technologies.
3. Events@EBS
3.1. Description
The purpose of the application is to offer a possibility to manage events inside an organization, promote trainings, employee birthdays, local and online events. Application will facilitate:
‐ Define events and visibility of these to restricted users
‐ Manage events and attach resources when needed
‐ Newsletter capability to promote held events inside the organization
‐ Manage employee information (place in the organization matrix, roles and responsibilities, basic information)
3.2. Technologies
‐ Java
‐ Spring
‐ Hibernate
‐ AngularJS
‐ Database
3.3. Advantages
The student will learn about the usual events that happen inside an organization and will get to work with modern Java technologies.
4. NOSQLBigDataStorageService
4.1. Description
Big Data is a broad term used to refer to data sets that are too large and complex and for which traditional applications and methods of storing and processing are inadequate. NOSQL is a term that refers to databases systems that are usually of a different type than relational databases and that also have a SQL like set of instructions allowing for easy interaction with the data system, the term being an acronym for “not only SQL”.
Page | 3
The project aims at creating an application that exposes one or several REST web services exposing basic data manipulation operations (creating, retrieving, updating, deleting) and sitting on top of a mix of KV store NOSQL database systems as well as text search optimized ones. The application provides:
REST web service exposing basic CRUD operations.
NOSQL data base control layer.
Socket communication capabilities and protocol for storing of large datasets.
Ability to plug in new data models and types.
Possibility to publish to relational databases for BI purposes as an optional feature.
Big data capabilities.
4.2. Technologies:
Network communication (sockets)
Relational Database Management Systems
KV Store databases
Text search optimized data systems (Mongo)
.NET parallel computing and multi-threading
Web services (WCF)
5. Applicationhealthmonitoringandloggingsystem
5.1. Description
Key to delivering quality software is testing, but testing can be often time consuming and resource intensive. As most of the regression and UAT testing activity is repetitive and relies on predefined scenarios, there is room for automation. The project aims at creating an application that exposes a framework for easily writing automated tests for SOA based applications as well as statistics and test management capabilities. The application provides:
Simplified automation framework.
Statistics for test runs.
Management for test cases, scenarios and test suites.
Ability to plug in new tests as already compiled libraries.
Possibility to publish stats to relational databases for BI purposes as an optional feature.
5.2. Technologies
Relational Database Management Systems
.NET parallel computing and multi-threading
Data structures
Web services (WCF)
Page | 4
WPF
6. SOAapplicationsautomatedtestingsolution
6.1. Description
Key to delivering quality software is testing, but testing can be often time consuming and resource intensive. As most of the regression and UAT testing activity is repetitive and relies on predefined scenarios, there is room for automation. The project aims at creating an application that exposes a framework for easily writing automated tests for SOA based applications as well as statistics and test management capabilities. The application provides:
Simplified automation framework.
Statistics for test runs.
Management for test cases, scenarios and test suites.
Ability to plug in new tests as already compiled libraries.
Possibility to publish stats to relational databases for BI purposes as an optional feature.
6.2. Technologies
Relational Database Management Systems
.NET parallel computing and multi-threading
Data structures
Web services (WCF)
WPF
7. ScalableRelationalDatabasesBasedDataServicewithCQRS
7.1. Description
CQRS is a design pattern that dismisses the notion of a single shared domain model used across an entire application. It introduces separate models for state-changing operations versus operations that only inspect the state of the system. These operations are categorized as commands and queries, hence the acronym for the pattern. Simple applications that mostly perform CRUD operations can do well with a single domain model. However, as the complexity increases more requirements arise for both update logic as well as inquiring logic. Supporting all these - at one point competing requirements - becomes cumbersome as more and more differences get in the way. Relational database management systems are regarded as non-scalable. This is due to their need to guarantee the integrity of transactions. Employing CQRS adds a certain degree of freedom making horizontal scaling possible to some extent. The project aims at creating an application that exposes one or several REST web services exposing basic data manipulation operations (creating, retrieving, updating, deleting) that relies on RDBMSs and employs CQRS to allow implementation of multiple domain models . The application provides:
REST web service exposing basic CRUD operations.
A set of command handling components.
A set of event handling components.
Socket communication capabilities and protocol for storing of large datasets.
Page | 5
Ability to plug in new domain models.
Horizontal scaling capabilities.
7.2. Technologies:
Network communication (sockets)
Relational Database Management Systems
.NET parallel computing and multi-threading
Web services (WCF)
.NET multi-threading and parallel computing
8. UseraccessmanagementsystemwithSingleSignOn
8.1. Description
According to Wikipedia, Single sign-on (SSO) is a property of access control of multiple related, but independent software systems. With this property a user logs in with a single ID to gain access to a connected system or systems without being prompted for different usernames or passwords, or in some configurations seamlessly sign on at each system. Such ability represents a game changer for most large scale organizations and their myriad of internal interconnected systems. In its simple implementation, there are a number of drawbacks as not all users are desired to have same level of access across the complete array of interconnected systems. To overcome this drawback a role based access management system easily configurable by an access rights matrix needs to be employed. To make the package complete and functional an API must be available taking the form of a REST web service. The project aims at creating an application that exposes one or several REST web services that allow both user and roles management capabilities as the SSO capabilities. This application must provide:
REST web service exposing user and roles management APIs.
REST web service exposing SSO APIs.
Kerberos based authentication.
Integrated Windows authentication.
Horizontal scalability capabilities.
Optional Web presentation.
8.2. Technologies:
Relational Database Management Systems
.NET parallel computing and multi-threading
Web services (WCF)
Angular & Node JS
MVC
Active directory integration
LDAP
Page | 6
9. HROpenPositionsandCandidatesManagementSystem
9.1. Description
Fast growing modern day organizations are always in need of fresh talents and not only as industry established giants are always on the lookout for young and fresh talent. This adds pressure on HR departments and impacts their productivity as well as increasing the costs in those departments arising the need for internal applications and systems to ease up the management of positions, candidates and CVs. These tools need to be web based, comply with modern day security requirements as well as cope up with large amounts of data as well as be able to aggregate that data into various BI reports. The project aims at creating an application that allows easy management of opened positions, CVs and candidates profiles as well as offering various reports and statistics. This application must provide:
REST web service exposing APIs for front-end integration.
Integration with authentication service.
Storing of CVs and user related data.
Fast search through profiles and CVs by employing Mongo or similar technologies.
Reporting and statistics capabilities.
Possibility to create custom candidates groups and lists (e.g. blacklists, shortlists).
Automatic interview scheduling capabilities.
9.2. Technologies:
Relational Database Management Systems
.NET parallel computing and multi-threading
Web services (WCF)
Angular & Node JS
MVC
Active directory integration
Text search optimized Big Data technologies.
10. Fixmessagevalidator
10.1. Description
Fix (Financial Information eXchange) is a communications protocol for international real-time exchange of information related to financial data. The purpose of this project is to create an application that takes as input fix message/messages and:
Checks the validity of the envelope (header and tail)
Checks the validity of the checksum
Checks the validity of fields:
o Mandatory or optional
o Data length
Page | 7
o Value(s)
o Relations between fields (eg: one field might be optional, but when it is present, then some other fields might become mandatory)
Decode each field from text-encoded to readable text
Decode each field value to readable text (when possible)
It should be possible to apply the operations described above to a message stream, with the possibility to filter/follow a specific communication stream (eg: a transaction, the login/logout process, market notifications, etc)
10.2. Desired skills:
Network communication (sockets)
XML
Programming (C++)
GUI toolkit
10.3. Acquired skills:
Network communication (sockets)
Programming (C++)
GUI toolkit
Interprocess Communications
Fix Protocol
Design Patterns
11. MiniFix
11.1. Description
Fix (Financial Information eXchange) is a communications protocol for international real-time exchange of information related to financial data. The purpose of this project is to create an application with a user interface that allows reception, decoding, generation and sending of FIX messages using an interactive method. This tool will allow the user to graphical fill different fields of a fix message, configure them, and when everything is set to send this message to a market(exchange).
11.2. Desired skills:
Network communication (sockets)
XML
Programming (C++)
GUI toolkit (eg: Qt, GTK)
Page | 8
11.3. Acquired skills:
Network communication (sockets)
Programming (C++)
GUI toolkit
Fix Protocol
Design Patterns
12. Marketsimulator
12.1. Description
What is FIX? The most common used protocol in financial communications. (Financial Information eXchange ). It comprises a multitude of messages, each of them containing header, body and trailer. The purpose of this project is to implement a very simple market (exchange) that permits trading. For example London Stock Exchange is such a market. The resulting application needs to be a proof of concept, not all fully functional market. To be able to create a server type application that will receive trade requests from another client application using a certain protocol (possibly FIX) and to make trades on that instrument and to provide price updates. This is a multi process project and will involve interprocess communication.
12.2. Desired skills:
Network communication (sockets)
XML
Programming (C++)
GUI toolkit (eg: Qt, GTK)
(optional) interprocess communication
12.3. Acquired skills:
Network communication (sockets)
Programming (C++)
Interprocess Communications
Fix Protocol
Design Patterns
Distributed Architecture
Depending on the complexity of the project can be a task for 1 or 2 students.
Page | 9
13. FinancialGame(AlliensvsTraders)
13.1. Description
Since there are members of the team that have extensive game programming experience with the Unity Game Engine, we are proposing another topic: a financial game based on the activity of a real trader. We want to base it on the actions a trader must take based on different events and news that he has to analyze, and how these news will impact his financial income of his instruments that he is trading. For example: If the aliens attack Fort Knox, and steal all the gold in there, then automatically the price of gold is expected to increase, therefore the trader is assumed to buy gold in order to capitalize on this price increase. We want to have a graphical interface that comprises of a GUI that shows a list of the instruments that the trader currently has in his portfolio, as well as a map of the locations that contain all these instruments (basically a world map with resources on top of it). This game can be developed on either Windows platform or Android.
13.2. Desired skills:
Network communication (sockets)
Programming (C++)
(optional) interprocess communication
13.3. Acquired skills:
Network communication (sockets)
Programming (C++)
Interprocess Communications
Unity gaming engine
Design Patterns
Distributed Architecture
Depending on the complexity of the project can be a task for 1 or 2 students.
14. DistributedMarketDataCachesinFinancialServices
14.1. Description:
The purpose of this project is to evaluate the performance of a distributed cache / in-memory data grid implementation (e.g. Hazelcast, Infinispan, Coherence, Gemfire, EhCache, Redis, Riak) in the context of a market data distribution service. We will have multiple reader and writer processes that access the data concurrently. Overall, we are interested in the stability of the distributed cache, the availability of the updates to the reader processes and also the API usage simplicity of the given cache implementation.
14.2. Technologies:
Java Core
Data Structures
Sockets
Page | 10
Multithreading
Dependency Injection Containers (Spring/Guice/Weld)
Distributed caches
REST Web Services
14.3. Advantages:
The student will have the opportunity to learn the basics of financial markets and market data as well as some interesting technical subjects such as in memory data grids, web services, benchmarking and performance measurements.
15. DataEncodingProtocolsinFinancialTechnology
15.1. Description
The purpose of this project is to evaluate the performance of some structured data serialization frameworks (e.g. Google Protocol Buffers, Google FlatBuffers, Simple Binary Encoding, Apache Thrift, Apache Avro, Cap’n Proto, MessagePack) in the context of a market data distribution service. Data will be served by a Web service taken from an in-memory cache, serialized and sent to the client applications that will de-serialize and use the data for a simple computation. Overall, we are interested in the latency and the API usage simplicity of the given serialization framework.
15.2. Technologies:
Java Core
Data Structures
Sockets
Multithreading
Dependency Injection Containers (Spring/Guice/Weld)
REST Web Services
Object Serialization Frameworks
15.3. Advantages:
The student will have the opportunity to learn the basics of financial markets and market data as well as some interesting technical subjects such as object serialization frameworks, web services, benchmarking and performance measurements.
16. RESTservicesimplementationtomanage“Future”financialproducts
16.1. Description:
“Future” it’s a financial product that offer buyer protection : it’s a guarantee for the buyer that at specified time it will buy desired products with the now agreed price. The scope of the project is to implement micro-services to create, update, delete and interrogate of “Future” financial products. Skills needed: Java (8 if possible), Spring, SQL
Page | 11
Page | 12
Advantages: The student will familiarize himself with one of the most popular financial product on the market. From the technical point of view he/she will use one of the best frameworks (Spring) in order to implement the application.
17. ClientServerapplicationforFIXcommunication
17.1. Description:
Financial Information eXchange is the communication protocol for international real-time exchange of financial data. It’s a text based protocol. The Quickfix implementation will be used in order to exchange FIX messages.
17.2. Skills needed:
Java (8 if possible)
17.3. Advantages:
The student will familiarize himself with one of the most popular protocol used in the financial world. From the technical point of view he/she will have to master Java core.
18. BigDataanalysis:realtimemonitorforonlineshopsproductsprices
18.1. Description:
We all know that prices varies; especially in the online environment. The scope of the project is to monitor few online shops and register their products price variation
18.2. Skills needed:
Java (8 if possible), Selenium web driver, Java Script, Spring, SQL
18.3. Advantages:
The student will familiarize himself with Java technology and related frameworks and with one of the most popular tool used in crawling web sites or creating Integration Tests.