Research

1. Nuitka

Nuitka is an open-source Python compiler that translates Python code into optimized C code, which can then be compiled into a binary executable. It is designed to generate high-performance binaries that can run on multiple platforms without requiring a Python interpreter to be installed on the target machine.

One of the main advantages of using Nuitka is that it can significantly improve the performance of Python code by generating optimized C code. This can result in faster execution times, reduced memory usage, and better performance overall. Additionally, since the compiled binary doesn't require a Python interpreter, it can be run on machines that don't have Python installed, which can be particularly useful for deploying Python applications on systems with limited resources or in production environments.

Another advantage of Nuitka is its compatibility with popular Python libraries and frameworks, such as NumPy, Pandas, and Django. Nuitka supports many of the standard Python features and syntax, as well as the most commonly used third-party libraries. This makes it easy to integrate Nuitka into existing Python projects and take advantage of its performance benefits without having to rewrite code from scratch.

2. MFC

We started with reviewing the work of the previous cohort, by studying their MFCs and how they functioned we were able to learn how to build upon and improve the existing architecture.

Microsoft Foundation Class (MFC) is a popular C++ object-oriented library used for developing desktop applications on the Windows operating system. MFC is a wrapper library that simplifies the use of the Win32 API by providing a more intuitive and high-level interface. Although MFC is not as streamlined as some higher-level frameworks like Qt or wxWidgets, it is essential in certain environments, such as government and healthcare institutions, where the priority is on backward compatibility and security. In fact, MFCs are required by the NHS for any third-party programs. Despite its perceived clunkiness, MFC remains a valuable tool for developers who need to create Windows desktop applications that are compatible with earlier versions of the operating system.

The previous version of the project had good functionality and legibility, but it lacked intuitiveness and accessibility. We received feedback from users that the tabbing order was inconsistent and out of order, which is a crucial feature for accessibility since some users rely on tabbing to navigate menus. To address this issue, we had to make changes to the MFCs used in the project to ensure that the tabbing order was consistent and logical. This required an understanding of how MFCs work and how to manipulate the information they process.

We also found that the design of the buttons needed improvement. The previous design was not intuitive and did not conform to industry standards. We used a trial and error approach to redesign the buttons, which involved several iterations. Through this process, we learned how to create a more intuitive design that conforms to industry standards while also being easily accessible. This involved not only improving the placement of the buttons but also their labelling to ensure that users can easily understand the functions they perform.

To gather information for these changes, we conducted surveys with users to identify pain points and areas of improvement. We also sought feedback from developers in our cohort, as our work was intended to provide workable templates that other teams could customise to meet their own needs. This feedback was essential to refining the design and creating templates that were flexible and easy to use.

3. Compiling MotionInput

Compiling projects for the Windows Store requires a solid grasp in using Nuitka and a comprehensive understanding of each team's project functionalities. Regular scheduling of surveys and meetings with each team is crucial to ensure that everyone is working collaboratively and no one falls behind. This communication ensures that any issues can be addressed and resolved promptly, leading to successful project deliveries. Thus, maintaining a harmonious work environment is essential for achieving the goal of compiling and delivering projects to the Windows Store.

4. Managing Github Repos

Managing the github repository of the projects is another one of our key requirements, and it requires continuous management to ensure its integrity, maintainability, and reliability. The management of GitHub repositories involves various activities such as creating and organising repositories, setting up teams, defining access controls, reviewing and merging pull requests, and maintaining branches.