Representatives from industry, administration and academia present various topics for software engineering projects that are relevant in a practical or research context. They provide necessary information about the application domain, inform about special requirements or constraints for the expected project outcome and outline the desired project goals.
Participants organize themselves into teams and work on a project as a team. Following the usual meetings in software development projects, you report regularly on the progress of the project as well as any problems that arise.
Projects 2025
Tablet POS Solution Development
Topic
The project is centered on creating a tablet-optimized Point of Sale (POS) application for Microsoft Business Central. Business Central is an Enterprise Resource Planning System developed by Microsoft for small and medium companies. For more information visit: www.microsoft.com/de-de/dynamics-365/products/business-central
This application will take full advantage of the larger screen size, multitasking features, and portability offered by tablets, seamlessly integrating with robust backend functionalities built using AL. Application Language (AL) is Microsoft’s programming language for Business Central,
designed for extending and customizing ERP functionalities.
For more information visit: Developing extensions in AL - Business Central | Microsoft Learn
To support this development, modern programming languages and tools such as TypeScript, JavaScript, and Fluent UI are employed for frontend design. AL, Microsoft’s proprietary language for Business Central, is leveraged for backend processes, ensuring smooth integration and scalability.
Introduction
The project is developed in collaboration with BE-terna, ensuring integration with Business Central. BE-terna GmbH is a leading European provider of business software solutions, specializing in industries such as retail, manufacturing, and services. With its expertise in Microsoft Dynamics 365 Business Central, BE-terna helps businesses streamline their operations and achieve digital transformation, making it an ideal partner for this project.
The purpose of this project is to address the growing demand for tablet-compatible POS systems in retail environments for our POS solution. (https://www.be-terna.com/de/apps/be-pos) Tablets strike a balance between portability and enhanced usability, making them ideal for processing transactions, managing inventory, and analyzing real-time business data.
This project prioritizes designing and implementing a responsive user interface (UI) that maximizes the potential of tablets using modern technologies like TypeScript, JavaScript, and Fluent UI. By seamlessly integrating with APIs in AL, participants will focus exclusively on creating an exceptional user experience while exploring advanced tablet-specific features. The project is integrated into Business Central, which allows to access data from the ERP system directly, this enhances compatibility and scalability.
Goal
The project aims to deliver a fully functioning POS application optimized for handheld tablets. The system will combine usability, responsiveness, and advanced features to streamline retail operations while maintaining compatibility with Microsoft Business Central.
Core Functionalities
Feature | Description |
Article Management | Enable quick and efficient article search and selection. |
Support for barcode scanning via tablet camera or external devices. | |
Real-time updates to article information and stock levels. | |
Customer Management | Capture customer details directly within the POS interface. |
Link sales to specific customers for future reference or loyalty tracking. | |
Refunds and Returns | Manage returns with or without a receipt. |
Provide clear workflows for processing refunds or exchanges. | |
Payment Processing | Support for multiple payment methods, including cash and cards. |
Simplified payment workflows integrated with receipt generation. | |
Cash Register Operations | Cash Register Start: Initialize daily operations with starting balances. |
Cash Counting: Record mid-shift cash removals for security. | |
Cash Register Close: Finalize daily operations with a detailed cash reconciliation process. | |
Additional Features | Core cashier functionalities, including receipt reprinting and reversal receipts |
Target Audience and Value
The application is tailored for medium-sized retail businesses but scalable for larger enterprises. It enhances checkout efficiency, improves inventory management, and fosters better customer interactions. By leveraging the power of Microsoft Business Central (ERP), the system ensures unified data access across platforms.
Technologies
The frontend of the project will be developed using TypeScript, JavaScript, and Fluent UI to create a design optimized for tablet responsiveness. The backend will leverage AL APIs to ensure seamless integration with Microsoft Business Central. Version control will be managed through GitHub to facilitate collaboration and efficient code management. Each participant will receive a prepared laptop equipped with Visual Studio Code, GitHub, and Docker. The development environment will be collaboratively set up during the initial sessions to ensure a smooth start.
Methodology
The project will be developed using a sprint-based methodology inspired by the principles of SCRUM, with a strong focus on milestones and EPICs. Development will progress through weekly or bi-weekly sprints, during which specific tasks will be planned and executed to achieve the desired goals. Regular reviews and alignment meetings will take place each week to ensure that the team stays on track and any challenges are addressed promptly. Additionally, checkpoints will be established throughout the development process to assess progress, refine deliverables, and ensure that the project aligns with its objectives.
Testing and Quality Assurance (Stretched Goal)
Testing will be a crucial aspect of this project, even though the 12-week timeline imposes certain limitations. Usability testing will focus on ensuring that the user interface and workflows are intuitive and meet user expectations. Automated testing will be conducted to validate the reliability of the application across various devices and screen orientations. Performance testing will assess how well the system responds under prolonged use and challenging network conditions, ensuring that it remains functional and efficient. Although testing is included as a stretch goal due to time constraints, it will be carefully balanced to uphold the need for quality assurance throughout the project.
Learning Objectives for Participants
Participants will gain valuable experience in designing tablet-optimized user interfaces using modern tools. They will also learn how to integrate frontend applications with robust backend APIs. Managing development projects with a sprint-based methodology will be another critical learning outcome, along with the ability to deliver scalable and sustainable solutions tailored to real-world retail environments.
Sustainability and Scalability
The project will be designed with a modular architecture, simplifying future feature additions and updates. It will be fully compatible with Microsoft Azure cloud systems, ensuring scalability for retail operations across multiple locations. Comprehensive documentation will be provided to facilitate onboarding for future developers and ensure that the system remains maintainable over time.
Project Milestones
Sprint | Objective |
---|---|
Sprint 1 | Familiarization with tools, environment setup, creation of wireframes, and analyzing the given mockup. |
Sprint 2 | Development of foundational features, such as article and customer management workflows. |
Sprint 3 | Implementation of refund/return processes and basic payment workflows. |
Sprint 4 | Advanced feature implementation, including cash register operations and additional cashier functions. |
Sprint 5 | Usability testing, quality assurance, and refinement of key functionalities. |
Sprint 6 | Final evaluations, documentation, and recommendations for further development. |
Location/Workplace
The project supports a hybrid work model. Participants can collaborate remotely via tools like Microsoft Teams while accessing on-site facilities when needed.
Contacts and Support
Throughout the project, technical mentors and project managers will be available to provide guidance. Regular feedback and support from experienced developers will ensure that students can overcome challenges and deliver high-quality results.
Hardware
Laptops pre-installed with Visual Studio Code, GitHub, and Docker will be provided for each student. Development environment setup will be conducted collaboratively during the initial phase. Tablets are available in the office to test developments in native environments.
Contributors View for jQAssistant Component Dashboard
About BUSCHMAIS GbR
BUSCHMAIS – we are an IT consulting company located in Dresden/Germany. Our home is the world of Java including its rich eco-system and we enjoy working with modern and proven technologies (e.g. Java, Spring Boot, React, Python, Neo4j, Docker, Kubernetes, etc.). From the very beginning until today we have been strongly engaged in research cooperations with universities and communities like Java User Group Saxony (JUG Saxony).
Our focus lies on development of business applications with a focus on quality assurance. We are the heads behind the Open Source software analytics tool jQAssistant and beside its development we provide services around it like workshops, consulting and trainings.
A selection of our customers includes organizations from the public sector like ITZBund or Sächsische Aufbaubank-Förderbank as well as international companies like ASML, GlobalFoundries, Thyssenkrupp Steel, Deutsche Telekom and COOP Schweiz.
Introduction & Goal
jQAssistant is a highly flexible Open Source tool for software analysis, validation and documentation. It allows importing structural information from software systems into a graph database (Neo4j) which then can be used for various scenarios, e.g. automated validation of system architecture, visualization of code structures or metrics to identify critical parts (hotspots) or performing analysis to estimate efforts and risks for planned refactorings.
A recent addition the eco-system is the jQAssistant Component Dashboard which collects information about components of software systems which are developed by distributed teams. A web-based user interface supports product owners and developers to easily find available components, their owners, contact data as well as provided and required capabilities.
This dashboard shall be extended by functionality to gather and visualize information about contributors of components, i.e. developers that committed changes to source code repositories (e.g. Git). The goal is to ease identifying people which are experts in different aspects of the domain or used technologies. This feature requires the following additions to the existing application:
- Collecting data from the version control system during build processes
- Execution of rules and reports to extract/aggregate information about contributors
- Upload of contributor information to the jQAssistant Component Dashboard via a REST-API
- Adding and extending views to the jQAssistant Component Dashboard
The development process for the described functionality involves API and UI design tasks as well as implementation, testing and documentation for users or developers.
The jQAssistant Component Dashboard including all required infrastructure will be published under an Open Source license (GPLv3).
Prerequisites and Requirements
The students should be interested in getting touch with the challenges of software development and quality assurance: technology, tools, processes and effective team work. For a better understanding of the problem domain, some practical experience with object-oriented languages (preferably Java) and databases is considered helpful.
Technologies
The project is primarily based on the following technologies:
- Programming language:
- Java 17
- Frameworks
- Spring Boot
- Vaadin (UI)
- Database:
- Neo4j (Graph Database)
- Development Environment:
- IntelliJ, Visual Studio Code or Eclipse
- GitHub (Kanban-Board, Issue-Tracker, Version Control, CI/CD)
- Apache Maven
- Docker and Kubernetes
Way Of Working
The project will be executed using a Kanban-style methodology with a fixed weekly meeting for planning, knowledge transfer and retrospectives. The latter shall enable the students to improve their skills in collaboration and continuously improving their way of working throughout the project. We will assign an contact person with experience in the problem domain who will act as Product Owner (PO) and provide guidance to the team regarding setting up and „living“ the software development process.
Location and Technical Resources
As the BUSCHMAIS office is located in Dresden the collaboration between the team and us will mainly be carried out remotely. The required infrastructure will be provided by us (e.g. ticket system, planning boards, version control system, video conference system, etc.). In addition on-premise workshops in Dresden can be organized, we propose to do this especially in the early phase of he project, e.g. to provide necessary technical introduction, clarify requirements and align on the way of working.
Contact Person
For the entire duration of the project, we provide a contact person for both students and lecturers.
Design and Setup Hello World+ Projects and Configure Software Composition Analysis Tooling
Introduction
In most cases, software today is not built from scratch but rather assembled from various prepackaged open-source and proprietary components. As a result, organizations face the following challenges:
- Ensure compliance when using Open-Source software components: license compliance, copyright situation, etc.
- Gaining insights on used software components and their qualities [1] such as development responsiveness, project popularity, license used, or exposed security vulnerabilities
- Getting an overview of the components used in products: An organization and its supply chain management must know which components are integrated into which products or solutions.
Ensuring license compliance means using a software component only in the ay the license granted by the copyright holder has allowed it and fulfilling all requirements he or she is requesting when using the software.
When using Open-Source components in an application one has to know what is allowed to do and what is required to do.
The Open-Source space contains a vast number of licenses. The Open-Source Initiative alone lists 80 licenses, hich are considered open-source licenses [2] as they are freely used, modifications allowed, and publicly available. Even though they are regarded as open source, it does not mean that they grant and request the same from the user of a component. OSS licenses can considerably differ in their content. BSD 3-clause states that you can use the software in whatever way you want, given you provide the license text and list the copyright holder to the GPL that requests to license everything under GPL that uses GPL-licensed software.
From detecting vulnerable dependencies to performing automated Open-Source license compliance to creating machine-readable Software Bill of Materials (SBOMs) -- a list of all components going into a software--, organizations have an ever-increasing interest in using high-quality software composition analysis (SCA) tools on their projects. This will become an even more important topic with the requirements of the upcoming EU Cyber Resilience Act. Such SCA tools are available as both Open-Source projects and proprietary vendor products, but how can a user establish how well they are performing on a particular setup?
To test the performance of certain SCA tools for specific environments creating test projects and running SCA tools against them is a possible way to go [3, 4]. A well-received SCA tool is the Open-Source Review Toolkit (ORT) already in use in various companies [5].
Goal
The project's goal is to establish a fixture in which SCA tools can be tested against well-defined projects to assess the precision and accuracy of the scan results. The project should focus on the Open-Source Review Toolkit (ORT) [5] as an SCA tool of interest.
Based on the project it can be divided into three sub-tasks.
- Setup ORT instance
- Implement a test application that executes ORT, collects its results, and compares it with expected results
- Define and implement one or more dummy projects (Hello World+ projects)
- Run test application with implemented test projects
The test projects are also meant to serve as a blueprint for others to set up their software project. They should, therefore, be set up in a way common for the respective programming language and package manager. Which environments are covered by the test projects are subject to discussion and depend on prior knowledge of the student team as well as on what is still missing. Example environments are
- C / C++ with Conan 1.x
- Go with GoMod
- Haskell with Stack
- Java with Gradle
- JavaScript / Node.js with Bower, NPM, or Yarn 1
- .NET with DotNet, or NuGet
as well as combinations thereof. Think for example of usual web projects, where you have some JavaScript code side by side with a backend implementation written in Java, Kotlin facilitating container technology for deployment. It is planned to have the test projects published as open source, like this project [5].
Prerequisites and Requirements
As the project is about testing the validity and accuracy of SCA tooling a basic understanding of software composition in general and Open-Source Licensing is beneficial to understand the motivation behind the project. A possible starting point could be a Linux Foundation Training on that topic [7]. As the ORT tool provides packaging as a docker image [6], it helps to have a basic understanding of using docker and container technology in general.
Which test project(s) are about to be implemented is to be discussed with the student team. However, it would be good if the team is familiar with one programming language and package manager, e.g. one from the above mentioned ones.
The programming language to implement the test application is subject for discussion. A possible language might be Python.
Technologies
Name | Link | Description |
---|---|---|
Open Source Review Toolkit | oss-review-toolkit.org/ort/ | Open-Source Scanning Toolchain |
containerd | containerd.io | Container Runtime |
GitHub | github.com | Hosting Platform for Git repositories. Depending on interest we could make use of further GitHub features like GitHub Actions. |
Project organization
The project should use SCRUM as the agile framework and adjust it to the specific circumstances of the task and project team at hand.
Project milestones
The following milestones should be planned and implemented with the students:
- ORT instance set up
The ORT tool is set up according to its documentation [6]. The goal is to have the tool running on the developer machines of the project members. - Test application implemented
A test application is designed and implemented that can instrument an ORT instance, invoke ORT for a given Dummy Project, and compare the generated ORT output with an expected result. The expected result should be encoded in a YML or JSON file and provided side by side with a dummy project. The test application should be executable within a GitHub action workflow. Dummy projects (Hello World+ projects) implemented
At least one dummy project for a selected programming language and package manager is implemented that showcases how a well-setup project in the selected programming language is set up for easy processing with SCA tooling. The dummy project consists of a folder structure and required configuration files according to the needs of the selected programming language and package manager.
Run test applications with implemented test projects
Finally, the test application is executed for the created dummy project(s). Depending on the results created in the project the GitHub actions and test application of milestone 2 are contributed to a suitable Open-Source Project or Community, such as Sharing Creates Value [3] or an ORT test environment(Currently under construction.) [5].
The exact requirements and user stories are worked out as part of the project work together with the students.
Location / Where to work
Inherent to an Open-Source project is its distributed nature. So, the project itself is carried out remotely. The team can decide on communication channels. If required, the project contact person can arrange a video conferencing solution for the meetings. The student team and contact person may also arrange face- to-face meetings if it is needed. The contact person is in Berlin. If the meetings are in Leipzig, appropriate rooms at Leipzig University need to be organized. Otherwise, the contact person can arrange a meeting space in Berlin.
Misc
- The students are required to provide their development equipment
- The project is not subject to confidentiality
- It is assumed that the code developed by the students will be published as open source, thus it might be required to sign some Contributor Agreements upfront.
Resources
[1] chaoss.community
[2] opensource.org/licenses
[3] github.com/Open-Source-Compliance/Go-Dummy
[4] github.com/org-metaeffekt/metaeffekt-examples
[5] oss-review-toolkit.org/ort/
[6] oss-review-toolkit.org/ort/docs/getting-started/installation
[7] training.linuxfoundation.org/training/introduction-to-open-source-license-compliance-management-lfc193/
Further development of an existing app
Introduction
We, the Finatix GmbH, have developed the educational pocket money app “finalino,” which allows parents to manage their children's pocket money digitally while teaching them responsible money management. The app's name, "finalino," stands for financial education from an early age. With the app, children don't just save money like they would with a piggy bank. Instead, they can allocate their pocket money into categories like "Small Wishes," "Big Wishes," and "Good Deeds." This encourages children to save for long-term dreams or to contribute to a good cause.
The app currently only serves as a money tracker: the actual money is safely kept by the parents in the "parent bank" until it is spent. There is no connection to any bank account. Additionally, finalino offers a protected parent area secured by an extra layer of access, providing a comprehensive overview of information.
For more information about the app, visit: finalino.de
In 2022, we already collaborated with students from Leipzig University as part of this module, to enhance the app with features like recurring payments and a statistics display. Now, with your help, we would like to add more features to the app.
Goal
The result of the project should be a deliverable update for Android which provides new functions for the app.
Project milestones
The following milestones should be planned and implemented as the MVP of the project:
- Feature 1: Tasks for earning additional pocket money
- As a parent, I want to be able to create tasks that my child can complete to earn additional pocket money. I also want to be able to edit and delete the tasks I’ve created. When my child completes a task, I can transfer the pocket money to the child’s wallet.
- As a child, I can see the tasks my parents have created. I can view these tasks and see how much money I can earn and what I need to do to complete them. Once I’ve finished a task, I can mark it as done.
- Feature 2: Tasks are included in the statistics display
- As a parent, I want to be able to view all information about the tasks in the statistics. I want to know for each of my children: how many tasks were created, how many were completed, and how much money was earned by completion of the tasks.
If there is time left, the following features can be implemented:
- Feature 3: Due Dates and Reminder for Tasks
- As a parent, I want to be able to assign a due date to tasks. Once assigned, I want to be able to change or delete it.
- As a child, I want to receive reminders in the app when a task's due date is approaching.
- Feature 4: Learning Content
- As a child, I want to learn more about saving and money. I can watch videos on these topics within my app.
The exact requirements are worked out together with you and your team.
For each feature a conception, a layout (UI/UX) plan, the implementation, and testing has to be done.
Prerequisites and Requirements
You should have an affinity for web technologies. Basic knowledge of the programming languages JavaScript, CSS, and HTML5 are a prerequisite for development. Basic knowledge of an MVVC framework such as Angular, Svelte or VueJS would be an advantage. Furthermore, basic knowledge of software design patterns is useful to better understand the frameworks themselves.
Please bring your own laptop for working on this project.
Technologies
The project includes various web and server technologies. The programming language is predominantly TypeScript.
Name | Module | Description |
---|---|---|
TypeScript | Common | Programming language, super set of JavaScript |
Angular | App | Client-side MVVC framework |
Ionic Framework | App | Cross-platform framework with its UI library for Angular |
Karma | Testing | Test framework among others for angular applications |
Protractor | Testing | End-to-end test framework |
Docker / Docker Compose | Licensing & Website Container | Framework and Environment for Microservices and Wordpress implementation |
GitHub | Version Management, Project Planning and Documentation | Web-based platform for version control and collaboration |
Discord | Communication | Communication platform |
How we work
In our customer projects, we primarily follow the agile method "SCRUM." This means we organize our work into so-called sprints, during which we regularly plan tasks, implement them, and later review together what went well during implementation and what could be improved. The sprint duration — usually between one and four weeks — is decided by the team or customer. The following are the events that take place during a sprint:
Component | Description |
---|---|
Daily | Daily meeting where team members synchronize their progress and identify any obstacles. |
Sprint Planning | Joint appointment where the team decides what work will be completed during the upcoming Sprint. It involves breaking down tasks, estimating effort, and defining the Sprint Goal. |
Sprint Review | Joint appointment to present the completed tasks and to gather feedback from stakeholders |
Sprint Retrospective | Review of past sprints and a joint appointment to improve implementation and organization of the team |
We recommend following this agile principle, as it promotes transparency, continuous improvement, and efficient collaboration within your team. At the same time, you are free to adapt the framework to the specific needs of your project. You and your team decide how you work best and organize yourselves during each sprint.
The only requirements we have are the following:
- Kickoff Meeting: The project begins with an in-person kickoff meeting at our office. During this meeting, we will define the organizational framework and discuss the first feature. Key topics include how you want to organize your work, the schedule for weekly meetings, available knowledge, and areas where support is needed. Access to the technologies will be checked, and the first feature will be discussed and planned.
- Task & Progress Tracking: Project progress is documented and evaluated in a task and planning tool such as Trello.
- Version Control: The project is developed collaboratively using Git for version management.
- Code Quality & Collaboration: With the help of code reviews (pull requests), you independently ensure high code quality and learn from each other at the same time.
- Continuous Integration & Testing: In the Jenkins CI (Continuous Integration Software), the software versions are automatically checked for quality (linting), tested and built. Developers themselves have to ensure that the software is always executable. A deliverable software status should be achieved at the end of each sprint.
Each task in the sprint goes through the following intermediate steps:
Step | Description |
---|---|
Backlog | Unplanned task that has to be discussed and scheduled in the planning appointment |
Open | Planned and estimated tasks in the active sprint |
In progress | Tasks that are currently being implemented |
Review | Completed tasks that need to be checked again |
Done | Fully completed and reviewed tasks |
- Biweekly Reviews: Every two weeks, there will be a review meeting with the Finatix stakeholders to provide regular feedback and exchange insights.
- Final Presentation & Retrospective: At the end of the project, there will be a final presentation of results and a retrospective review of the entire project. To conclude the project together, we would like to hold these two meetings in person at our office.
Throughout the project, you will be mentored by developers from Finatix GmbH. They are available to provide guidance and support. Based on our experience with previous projects, we recommend having a brief weekly meeting with the mentors to discuss any challenges or assistance needed — either in person or remotely, depending on what works best for your team.
Location / Where to work
Our office is located in downtown Leipzig. The project itself can be carried out remotely, except the first kickoff meeting and the last retrospective. These will be meetings in person in our office.
For mutual coordination, Finatix GmbH will be happy to provide the appropriate premises for planning appointments.
Contact Person
For the entire duration of the project, we provide a contact person for both students and lecturers.
Additionally, two or three developers will be your mentors on the project. They are happy to answer any technical questions you may have about the implementation. You get their names and contact data once you started on this project.
Misc
- We use our Finatix GitHub. You only need an own account, so we can add you to our group and repository.
- The project is not subject to confidentiality.
- Remote work is possible.
- Rooms in our office can be used with prior registration.
- In terms of copyright, the source code written by the students as part of the project remains with Finatix GmbH.
SAP Cloud-based application development
Introduction
Together with the students, we, GISA GmbH, would like to create a new web application, consisting of a backend and a frontend, in the SAP Business Technology Platform. The app should be able to generate and manage master data entries, such as business partners and addresses, for testing purposes in multiple connected SAP systems. It is intended to make the daily work of SAP consultants and developers easier, as both regularly need test data.
The entire product development process from conception to delivery is mapped. We organize the project using tools of agile project management, like Kanban. For this purpose, meetings for planning and review with the students are scheduled. The students also have the opportunity to meet in the "Daily" to resolve blockades and to share their current progress with the rest of the team. We provide appropriate video conference software (Microsoft Teams) as well as a ticket management tool (Altlassian Jira) for this. Besides these key points, the students organize themselves using sprints.
Goal
The resulting web application should:
- Support the creation of multiple master data entities, like business partners, addresses and connection objects.
- Create the master data inside a connected SAP system using a provided OData API.
- Use pools of person names, street names, town names, ... during the creation of new master data entries that look like real data.
- Be able to create the data in mass.
- Track the created master entries for multiple connected SAP systems in an own database.
- Be able to copy generated entries from one into another SAP system.
- Provide an UI to show the generated data as well as to manage the generation process.
- Optional: Can delete the previously generated data from the SAP system.
Prerequisites and Requirements
The students should have an affinity for web technologies. Basic knowledge of the programming language JavaScript (NodeJS) as well as SQL (this should apply to at least one of the students) is a prerequisite for development. Basic knowledge of database modelling would be an advantage.
Technologies
The project includes various web and server technologies, mostly introduced by SAP. The programming language is predominantly TypeScript.
Name | Module | Description |
---|---|---|
TypeScript | Common | Programming language, super set of JavaScript |
CAP | Framework | Proprietary framework for rapid prototyping of services based on entities |
Fiori Elements | UI | Super set of the SAP UI5 framework to create HTML5 applications |
Bitbucket/Git | Version control | Tool to manage and distribute source code |
Jira | Ticketing | Tool to manage the different (implementation) tasks |
We work in the project according to the agile method Kanban. This means that we split the labour into several work items, which are then tracked in a Kanban Board according to their status.
Each task goes through the following intermediate stages:
Status | Description |
---|---|
Backlog | Unplanned task that has to be discussed and scheduled |
Open | Planned and estimated tasks |
In progress | Tasks that are currently being implemented |
Review | Completed tasks that need to be tested |
Finished | Fully completed and reviewed tasks |
The requirements are discussed and planned in joint planning meetings. The students organize themselves, e.g. through regular coordination meetings (Daily). In the task and planning tool JIRA, the progress of the tasks is documented and evaluated.
The version management Git helps the students to develop together on the project.
Project milestones
The following milestones should be planned and implemented with the students:
- Backend Service:
- Data Pool
- Entity Creation Service
- Entity Tracking
- UI
The exact requirements are worked out together with the students.
Location / Where to work
Our offices are located in downtown Leipzig or in Halle. The project itself can be carried out completely remotely. We offer software, such as Microsoft Teams, for communication free of charge. For mutual coordination GISA GmbH will be happy to provide the appropriate premises for status and planning appointments.
Contact Person
For the entire duration of the project, we provide two contact persons as product manager and product owner.
Misc
- Technology and work equipment such as test equipment, software or laptops can be borrowed.
- The project is not subject to confidentiality.
- In terms of copyright, the source code written by the students as part of the project and the IP remains with GISA GmbH.
Implementation of a scalable and extendable backend solution
Introduction
Together with the students, we, Jambit GmbH, want to develop a non-profit open-source solution. The application is intended to replace attendance lists in childcare facilities.
The project will mainly be organized in a GitHub repository and project, while remote communication will be done with Slack. The team will work according to the agile Kanban method.
Goal
The result of the project should lay the foundation of the .Net 9 Backend for later iterations in the upcoming semesters.
Among other things, the application must be able to make the persisted data editable in three views. The views are defined by the user's roles. Furthermore, the attendance list must be able to document arrival and departure times, for example, and refer to the children's contact details.
Prerequisites and Requirements
The students should have an affinity for backend technologies. Basic knowledge of object-oriented languages like Java, Kotlin, or C# is prerequisite for development. Basic knowledge of Git, web applications, database systems and SQL would be an advantage. Furthermore, basic knowledge of software design patterns and docker is useful to better understand the scope of the project itself.
Technologies
.Net 9 was chosen because it offers a versatile, high-performance and platform- independent development environment.
The project includes a variety of different server technologies and architectural patterns and is essentially based on the following components:
Name | Description |
---|---|
.NET 9 | The project will be based on the latest .NET SDK Version and will those major components: Identity, EF Core. |
.NET Aspire | Aspire will be used as launcher, due to its great support of organizing external components in development. |
Postgres | Postgres will be used as the database of choice. |
Azure Blob Storage | Azure Blob Storage will be used to store documents in the future but will not yet be connected in the MVP. |
Clean Architecture (CA) | The leading architecture pattern will be Clean Architecture to ensure an easily expanding code base in later iterations. |
Command Query Responsibility Segregation (CQRS) | CQRS will be used hand in hand in combination with CA. To reduce implementation overhead the library 'Wolverine' will be used. |
Request-Endpoint-Response (REPR) Design Pattern | REPR serves as another design pattern to complete CA&CQRS which will be implementing utilizing minimal Api’s. |
Unit & Integration Testing | Testing is included to highlight the importance of a well dosed test coverage in software projects. Among other libraries, testing will be done with TUnit and Testcontainers. |
Agile team collaboration
The chosen agile development method for the Team is Kanban. To ensure a good start and development experience, the following meetings will occur on a regular basis. As the students don't work full time on this project, dailies will be held as "regularies", which means as often as possible.
Item | Description |
---|---|
Kick-Off | In this meeting all initial work items will be discussed. A handover will be done as well. Furthermore, this meeting is meant to discuss open questions. |
Daily | Daily standup meeting to share the progress of the assigned tasks and talk about open questions and problems. |
Review | Regular meeting to share the achieved progress with the product owner. |
Retrospective | Review the team and working progress of the past User-Stories. |
Planning | Refine a story in the backlog, to make it ready for development. |
As the project Git repository will be located on GitHub, the team will also do the planning, tracking and documentation in the associated GitHub Project. In this context, the team will work through the backlog according to prioritized User-Stories which will be displayed on a Kanban board, while working towards the expected “Minimal Viable Product” (MVP).
Furthermore, it will be required that all branches can only be merged by completing pull requests (PR), which in turn must be reviewed and approved before. Additionally, sufficient test coverage for each PR is required as well.
Board Column | Column description |
---|---|
Backlog | Unrefined tasks to be discussed. |
Ready | Task which can be picked up for development. |
In progress | Assigned task currently being worked on. |
Review | Completed task with an open pull request which is waiting for approval. |
Done | Fully completed and reviewed task. |
Project Milestones
The scope of the MVP includes the following functionalities:
- An Administrator:
- Can perform log in/ log out
- Can perform CRUD on Users (only admins can create/invite other users).
- Can perform CRUD on Children and related data.
- Can set/remove children from groups (aka classes).
- Can set a User with 'Team' Role as 'GroupAdministartor'.
- A GroupAdministrator:
- Can update Children.
- Can set/remove children from groups.
- A Team member:
- Can perform log in/ log out
- Can set arrival/departure of Children in their group
- A Parent:
- Can set the child status to sick leave.
- Can set the child status to on vacation (only Kindergarten).
- Regarding the distribution of roles
- An Adminstator can have the 'Team' role as well.
- An GroupAdminstrator can have the 'Team' role as well.
The length of the coming semester will determine the number of review cycles (two weeks each), with the first being intended for onboarding and the last for completing open tasks.
The exact requirements are worked out together with the students.
Location / Where to work
Our office is in downtown Leipzig (Klostergasse 3, 04109 Leipzig). Most appointments, including development, can be held remotely. Only selected meetings, like the initial kickoff, will be held in our premises.
Contact Person
For the entire duration of the project, a contact person for both students and lecturers will be provided, that serves as Product owner (PO), project manager (PM) and technical consultant.
This person will be happy to answer technical questions you may have about implementation or organization details.
Organization Details
- No company laptops will be handed out.
- Remote team communication will be done over a Slack Workspace.
- The project is not subject to confidentiality.
- The solution will be implemented as an Open-Source project.
- Thus, in terms of copyright, the source code written by the students as part of this projects falls under the MIT license.
- The premises can be used by arrangement with the PM.
Developing a web-based quality assurance and review application utilizing modern web technologies and the Innovator REST-API
Introduction
Under the guidance and support of us, the students will develop a standalone web application that allows designated reviewers to inspect Innovator diagrams, provide feedback, and approve or reject them. The application will integrate seamlessly with the Innovator REST API to retrieve and store all necessary information. Reviewers will be able to log in, browse open review items, display diagrams in an SVG format, add comments, and ultimately decide on the approval status of each diagram. Optional enhancements may include gamification features, such as a leaderboard, and basic quality metrics visualization if time permits.
We will follow an agile framework to ensure a transparent, iterative development process. Regular planning sessions, reviews, and retrospectives will be scheduled, along with short stand-up meetings held two to four times a week. Communication and coordination will take place through Microsoft Teams. The aim is to foster continuous learning and adaptation throughout the project lifecycle.
Goal
The primary goal is to deliver a functional prototype of a web application that supports the end-to-end review process for Innovator diagrams. Reviewers should be able to authenticate themselves, view pending review tasks, examine the SVG diagrams, and leave comments before approving or rejecting them. While the application may not be production-ready, it will serve as a robust prototype demonstrating core functionalities, with optional features such as gamification and quality metrics visualization integrated as time permits. Keeping in mind future extensibility and integration with other systems is necessary.
Prerequisites and Requirements
Students are expected to have a foundational understanding of web technologies, including HTML5 and CSS. Familiarity with C#, ASP.NET Core, and a front-end framework such as Angular or Blazor will be beneficial. Basic knowledge of RESTful APIs, authentication mechanisms, and software design patterns will help streamline the integration with Innovator and ensure that best practices are followed.
Technologies
The project will use a combination of server-side and client-side technologies, as well as Azure services for project management and continuous integration. The selection of specific technologies, particularly the front-end and back-end frameworks, will be made collaboratively with the students to best match their skills and project requirements.
Name | Purpose | Description |
---|---|---|
ASP.NET Core or Java | Backend | Server-side framework for implementing RESTful APIs in C# or Java |
Angular or Blazor | Frontend | Framework for building an interactive and responsive UI |
Innovator REST-API | Integration | Interface for loading diagrams, metadata, and saving review data |
SVG | UI | Vector graphics format for rendering Innovator diagrams |
Visual Studio 2022 or Eclipse and VS Code | Development Environment | IDE for coding, debugging, and testing the ASP.NET Core / Java backend and front-end application |
Azure DevOps (Boards, Repos, Pipelines) | Project Management & CI/CD | Used for backlog management, version control, and automated builds and tests |
TFS (Team Foundation Server) | Repository/Version Control | Centralized version control and integration with Azure DevOps processes |
Optional, time permitting:
- Testing frameworks (e.g., xUnit, Jasmine/Karma) for unit and integration testing
- Docker for containerization if required
Implementation Methodology
The project will be managed using SCRUM, ensuring transparent progress, regular feedback, and iterative improvements:
- Sprint: Fixed period to implement a set of selected tasks.
- Sprint Planning: Define and estimate tasks, assigning them to upcoming sprints.
- Daily Stand-Ups: Short meetings held two to four times a week to discuss progress, blockers, and next steps.
- Sprint Reviews: Demonstrate completed features and gather feedback.
- Retrospectives: Reflect on past sprints to improve collaboration, processes, and technical approaches.
The development team will use Azure DevOps Boards to manage the backlog and track the status of items.
Backlog Structure and Workflow
Work items are categorized into Features, User Stories, Tasks, and Bugs in Azure DevOps. Each backlog item progresses through clearly defined states.
Backlog Item Types:
- Feature: Represents a significant capability or section of the application.
- User Story: Describes functionality from the end user’s perspective, tied to acceptance criteria.
- Task: Represents a unit of work required to implement or support a user story or feature.
- Bug: Identifies and tracks issues or defects discovered during development and testing.
Workflow States:
- To Investigate: Item identified but not yet discussed or analyzed.
- To Groom: Item ready to be refined, estimated, and prioritized in the backlog.
- Ready: Well-defined and prioritized item, ready to be pulled into a sprint.
- More Info: Item requiring additional details or clarifications.
- Committed: Item currently in the active sprint and under development.
- To Test: Item completed from a development standpoint, awaiting testing.
- To Review: Item completed and tested, awaiting final review.
- Closed: Item fully completed and accepted.
Project Milestones
Key milestones that should be planned and implemented with the students include:
- Authentication and Authorization Setup
Users must securely log in and only authorized reviewers can perform diagram reviews. We will provide support to the students as needed and leverage existing authentication mechanisms to streamline this process. - Integration with Innovator REST API
Implement functionality to load diagrams (as SVG), retrieve related metadata, and store review results directly in Innovator. - Core Review Capabilities
Provide a user-friendly interface to view pending diagrams, approve or reject them, and leave comments describing improvement needs. - Optional Enhancements (Time Permitting)
- Gamification features (leaderboard, reviewer rankings)
- Quality metrics visualization to help identify improvement opportunities
The exact details and acceptance criteria of these milestones will be refined during the planning sessions with the students.
Location / Work Environment
The project work can be conducted entirely remotely. Communication, daily stand-ups, and sprint rituals will be hosted virtually via Microsoft Teams. In-person meetings can be arranged as necessary. All required software, licenses, and resources, including test environments and accounts, will be provided to the team.
Contact Person
A Solution Engineer & Project Supervisor will be provided.
As the sole contact person and the Solution Engineer responsible for guiding the project, he will support the team throughout the development lifecycle, assist with requirement clarifications, technical decisions, infrastructure setups, and ensure that SCRUM practices are followed. Regular feedback will be provided to support the team in creating a well-designed and effective application.
Miscellaneous
- Technology and necessary tools (e.g., software licenses, testing equipment) can be provided or borrowed as needed.
- The project is not subject to confidentiality.
- Remote work is facilitated via secure VPN access if necessary.
- In terms of intellectual property and copyright, all source code and deliverables created during the project remain with MID GmbH.
Cross-platform development with web technologies
INTRODUCTION
Together with the students, we, TIMETOACT Software & Consulting GmbH (in the following mentioned as TIMETOACT) would like to develop a web application to identify SaaS provider based on the URL whose website was accessed from the company network. The Web App name can be defined by the students.
GOAL
Problem statement: A risk analysis is performed on the basis of defined criteria.
Scope of the project is the development of a browser-based app solution to identify the provider of accessed websites for SaaS applications.
Reliable source systems in a company network must be identified for the data and their URL information imported into the app.
The mapping between the URL and the provider is based on a database to be created.
The result is a report with the identified providers and a risk assessment.
It should be possible to make the result available to other applications via an interface.
PREREQUISITES AND REQUIREMENTS
The students should have an affinity for web technologies. Basic knowledge of the programming languages JavaScript, CSS and HTML5 are a prerequisite for development. Furthermore, basic knowledge of software design patterns and database design is useful to better understand the solution architecture.
The project mandates the use of open-source technologies and frameworks throughout the software development lifecycle. The working environment and tooling can be Atlassian Jira and Confluence. Both tools can be provided by TIMETOACT.
TECHNOLOGIES
The project will utilize a range of modern web development and cloud-native technologies tailored to create an interactive and user friendly web application for IT asset management analytics.
This setup will enable efficient data collection, processing and dynamic results visualization.
Mandatory technologies
Name | Module | Description |
---|---|---|
REST | Application Programming Interface (API) | Mandatory interface architecture to be implemented for a Partner-API (business-to-business API) since relevant source and target systems (e. g. IT asset management tools such as Flexera One, ITSM or CMDB solutions). |
Optional technologies
Name | Module | Description |
---|---|---|
VueJS | Web Frontend | Optimal for developing the user interface, Vue.js facilitates building dynamic, responsive web applications. |
Vuetify | Web Interface | Leveraging Vuetify, a Vue.js UI library with Material Design components, enhances the user interface, making the app visually appealing and easy to navigate. |
TypeScript with Node.js | Server-side Logic | TypeScript, used along with Node.js, offers a scalable framework for backend logic, including handling questionnaire submissions, data processing, and analytics. TypeScript ensures code reliability and maintainability, which is crucial for complex logic involved in IT asset management assessments. |
D3.js | Data Visualization | Essential for presenting the questionnaire results, D3.js will be used to create interactive and sophisticated visualizations, offering insights into IT asset management efficiently. |
Microsoft Azure | Cloud Hosting | The choice of Microsoft Azure as the hosting platform guarantees a secure, scalable cloud environment for deploying the web application, ensuring high availability and performance. |
Azure DevOps | Continuous Integration/Deployment | Implementing Azure DevOps for CI/CD streamlines the development process, from code integration, testing, to deployment, facilitating continuous delivery with minimal manual intervention. |
MongoDB | Database | MongoDB's flexible document model is well-suited for storing questionnaire data and results, allowing for scalable storage solutions and easy retrieval of IT asset management information. |
OAuth 2.0 | Authentication | Implementing OAuth 2.0 ensures that only authorized users can access and interact with the app and safeguarding sensitive IT asset information. |
PROJECT ORGANIZATION AND IMPLEMENTATION
Project team roles:
- Project Manager
- Project and meeting coordinator
- Main reporter of project status
- Business and Data Analyst and Designer (incl. Report Design):
- Workflow and report design
- Specification of requirements
- Frontend Developer
- Software development of frontend
- Specification of requirements
- Backend and Database Developer
- Software development of backend and database
- Specification of requirements
- Test Manager and IT-Security Officer
- Quality assurance of software development
- Quality assurance of data integrity and IT-security standards while development
Non-functional requirements
Documentation is key and must be delivered:
- Project plan, meeting schedule and frequent project status
- Documentation of solution architecture and database design
- Documentation of functional requirements (e. g. user stories)
- Documentation of non-functional requirements for solution
- Code documentation mapped to functional requirements
- Mutual agreement on coding guideline (e.g., Google, Mozilla, etc.)
- Basic test documentation
The organizational project set-up can be determined by the students themselves.
TIMETOACT will provide the following technical setup:
- Atlassian Confluence Space for documentation
- Atlassian Jira Board for project and software development tracking
- GitHub as software code repository
Functional requirements and methodical approach
Development of a browser-based solution for recording, evaluating accessed websites/URLs and mapping to known provider in a database based on an individual logical model (scoring model with sufficient distinction of cases to display reasonable results).
The following working packages are relevant for the development:
Phase 1: Kickoff and requirements specification
- Definition of app architecture and data flow together with TIMETOACT (e. g. in an requirements workshop)
- Definition of the single work packages
Phase 2: Minimal Viable Product (MVP) implementation
- Software architecture implementation
- Permissions management basis (authentication for web-app and data security)
- Data creation, processing and updates
- Frontend/Web-GUI
Phase 3: Implementation of enhanced requirements
- Permissions management
- Interface / Import / Export
- Reporting logic
Further work packages can be determined together with TIMETOACT. A review of proposed work packages can also be done with TIMETOACT before the project start.
PROJECT MILESTONES
The following milestones should be planned and implemented with the students:
- Phase 1:
- Specification of customer requirements and acceptance by TIMETOACT
- Specification of data model and acceptance by TIMETOACT
- Phase 2:
- MVP and mockup for initial look and feel of solution
- Basic feature development
- Phase 3:
- Enhancement feature development
- Feature tests
- Feature launch and acceptance for productive usage by TIMETOACT
The specific requirements are determined collaboratively with the students.
LOCATION / WHERE TO WORK
Our office for a possible consultation is in downtown Leipzig. The project itself can be carried out completely remotely. For communication, we provide software such as Microsoft Teams free of charge. Team meetings are held on the university premises.
Contact Person
For the entire duration of the project, we provide contact persons for both students and lecturers.
MISC
- The project is subject to confidentiality.
- In terms of copyright, the source code written by the students as part of the project remains with TIMETOACT.
Cross-platform development with web technologies
Introduction
The Unite Services GmbH & Co. KG (hereinafter referred to as Unite or we, us, our) is the internal service provider for the B2B Procurement Platform of Unite, formerly Mercateo.
Together with the students, we want to redevelop the user interface of our administrative application access management, which is responsible for assigning and controlling user access to our various internal applications that control the behaviours of our customer-centric procurement platform.
This application is used by a small group of administrative users and is crucial to fulfil our compliance and data security requirements but currently has various shortcomings in terms of both technology and usability.
The entire product development process from conception to delivery is mapped in the project.
We provide appropriate collaboration tools such as our video conference software Microsoft Teams, our whiteboard software Miro, or our ticket and task managing software Jira free of charge.
Goal
The result of the project should be a deliverable release of a renewed administrative user interface deployed as a Docker container within our production infrastructure.
Next to the existing functionalities on assigning and controlling user access to application roles, the new application is intended to provide both a user-friendly web interface based on our corporate design system as well as auditing and reporting functions of permission assignments.
Prerequisites and Requirements
The students should have an affinity for web technologies.
Basic knowledge of the programming languages Java or TypeScript is a prerequisite for participation in the project. Basic knowledge of frameworks and tooling such as React, Vite, Cypress, Spring Boot, or Docker, would be an advantage.
Furthermore, basic knowledge of software design patterns is useful to understand architectural decisions.
Methodology
We work based on the agile methodology SCRUM with the following components being used in the project:
Component | Description |
---|---|
Sprint | Fixed period of two weeks in which a certain selection of tasks is implemented. |
Planning | Tasks and requirements are discussed, estimated and planned in sprints. |
Sync | Coordination meeting among the students for progress, open questions or problems. Based on the students’ availability, it will occur less frequent than the traditional Daily. |
Sprint Review | Joint appointment to present the completed tasks to interested parties. |
Retrospective | Review of past sprints and a joint appointment to improve implementation and organisation of the team. |
All project requirements and their implementation will be discussed and planned into so-called sprints during joint planning meetings (Planning). A deliverable software status should be achieved at the end of each sprint.
The duration of a sprint is set to two weeks by default.
The students organize themselves during a sprint, e.g. through regular coordination meetings (Sync), to review their progress and to discuss and solve open questions or problems. In our task and planning software Jira, the progress of the tasks is documented and evaluated.
Each task in the sprint goes through the following intermediate steps:
Step | Description |
---|---|
Backlog | Unplanned task that needs to be discussed and scheduled in the planning meeting. |
Open | Planned and estimated tasks in the active sprint. |
In progress | Tasks that are currently being implemented. |
Review | Completed tasks that need to be reviewed for acceptance. |
Finished | Fully completed and reviewed tasks. |
At the end of each sprint, a public sprint review is taking place to present the achievements to stakeholders and interested parties.
Retrospectives are used to review together the team’s performance on how well or badly the implementation went and to discuss opportunities for improvement.
Our contacts will support the students in adhering to the SCRUM guidelines.
Technologies
The project includes various web and server technologies. The programming languages are predominantly Java for the backend and TypeScript for the frontend.
The application is expected to be deployed as a Docker container in one of our existing environments either on-premises or within the cloud (AWS).
The following list of technologies is expected to be used in the project:
Name | Scope | Description |
---|---|---|
TypeScript | UI | Programming language, super set of JavaScript |
React | UI | JavaScript library for building UI components |
Apollo GraphQL | UI (Client), Backend (Server) | Composition layer on top of any kind of (Backend) API |
Java / Spring Boot | Backend | Framework to deliver web applications based on Java |
SQL database | Backend | Existing database to store permissions and audit trails |
Cypress | Testing | Test framework for modern web applications |
GitLab | SCM and CI | Source code repository and CI software |
Vite | Build and packaging | Build tool for modern web projects |
Docker / Docker Compose | Application container | Framework and Environment for Microservices |
Our source code management system GitLab helps the students to develop together on the project. With the support of code reviews (pull requests), the students independently ensure high code quality and learn from each other at the same time.
Within the CI (Continuous Integration) functionality of GitLab, pipelines are to be developed that automatically check the software versions for quality (linting), run relevant test suites, and build and package the software for deployment. Developers themselves must ensure that the main branch of the software is always deployable.
Project milestones
The following milestones should be planned and implemented with the students after initial onboarding with setting up the team and development environments:
- Decision on the system and software architecture based on the requirements engineering.
- Building mockup screens of the application frontend together with the design team.
- Implementing a prototype of the application frontend as a shippable deployable with static data.
- Implementing the backend service with connection to the existing backend database scheme.
- Implementing the connection between frontend and backend.
- Attaching the identity management system to import group definitions and to support administrative log- in via our SSO (Single-Sign-On) via SAML (Security Assertion Markup Language) integration.
- Implement audit-trails and reports for both access to the application as well as changes to the assignment of permissions.
The exact requirements of any features will be worked out together with the students.
Location / Where to work
Our company headquarter is located next to the Johannisplatz at Grimmaischer Steinweg 8, which is just a short walking distance from the Augustusplatz into the direction of the GRASSI museum of applied arts. While the project itself can be carried out completely remotely, spending at least one day per week as a team together on-site will boost collaboration and team spirit. We will be happy to provide the appropriate premises for collaborative work and assist in planning appointments.
Contact Persons
For the entire duration of the project, we provide the positions of a stakeholder, a project manager, a product owner (PO) and agile coach (AC).
Our developers will be happy to answer any technical questions you may have about implementation.
Misc
- Technology and work equipment such as software or laptops will be provided free of charge for the duration of the project. The use of private devices is not possible.
- The project is subject to confidentiality and will require the acceptance of internal policies.
- Remote work is possible via VPN access with multi-factor-authentication.
- Meeting rooms and individual workplaces in our office can be used with prior registration.
- In terms of copyright, the source code written by the students as part of the project remains with Unite.