Like it! share it!

The holidays have come to an end a while ago, and so have our summer internships. Thus, it seems to be a perfect moment for a rundown. To put you in the picture, every summer, we organise internships in NeuroSYS, in different business areas. We set up the projects before recruitment, so we can pick candidates that will be the best fit.

Last year, we had a group of R&D interns who dealt with microorganism detection with deep learning methods and some frontend interns who worked on an application for company equipment management.

This year, all seven interns were working on one common project: a telemetric system for go-karts. They were divided into four teams: backend, mobile app, augmented reality, and frontend. So, we can let the cat out of the bag and say that three of them have been offered to stay with us for longer and started working in NeuroSYS as junior developers. We agree that they’ve earned it fair and square! 

telemetric system internships neurosys telemetric system 1

The go-kart system overview

Our interns’ telemetric system consists of a mobile app for participants, a HoloLens 2  augmented reality app for drivers, and an admin panel for go-kart track owners. As always, a solid backend stood behind every element. And the general idea for the system creation was as follows. 

When a group of friends meets on a go-kart track, they register in the mobile app. Then, the administrator opens a session for them to join as either participants or observers. The drivers can make use of augmented reality glasses to follow key parameters, such as current speed, acceleration and position, in front of their eyes. Real-time data tracking helps them to follow the competitors, make informed decisions, and achieve better results, not taking their eyes off the road.

The backend

The main function of the telemetric system consists of vehicle localization and data storage. Its backend enables managing users, sessions, and race participants. It also serves as a proxy between the frontend and the Sewio system that was incorporated into the project. Our team worked following the REST (RESTful API) architecture style with HTTP and WebSockets protocol.

Sewio RTLS

Sewio is a real-time location system (RTLS) for indoor positioning and tracking. It consists of receivers, known as anchors, and transmitters called tags. Tags mounted on go-karts send signals, and anchors (set up on the track ceiling) receive them and send them further to the server. This way, Sewio can calculate go-kart location, with a frequency of 100ms, acceleration, and speed in real-time. Measuring the precise distance between vehicles is crucial to register collisions, skids, or barrier crashes. 

telemetric system telemetric system backend

Backend tech stack 

NodeJS, TypeScript, PostgreSQL, NestJS, Knex.js

The mobile app 

Intern team number two has dealt with the mobile app that allows users to create and manage their accounts and sessions and, in result, see current speed or position in the ranking. Currently, it operates in four language versions: English, Polish, German, and Ukrainian.  

Atomic design

While working on the mobile app, our interns used the atomic design methodology. According to this approach, the interface was divided into five levels: atoms (the smallest components such as buttons), molecules (groups of atoms such as a sign-in form with a button), organisms (groups of molecules such as an advanced form that includes both a sign-in and sign-up form), templates (whole page structure), and pages (final app look with accurate content). Both design components and mockups were created from scratch, with the use of tools like Figma. 

Mobile app tech stack

React, React Native, React Navigation, React Native Reanimated, React Native Gesture Handler, TypeScript, i18next, Formik, Axios, Eslint

Unity AR 

The third team was building a HoloLens 2 application for go-kart drivers. Creating the head-up display (HUD) elements, the team was inspired by car racing games, such as F1 2019, Forza Horizon 5, Assetto Corsa, HotShot Racing, and WRC. Our interns’ HUD shows data such as speed, acceleration, race time, and the vehicle’s current position on the racetrack layout. 

The biggest challenge was to place the AR view in such a way that it’s clearly visible to the driver but doesn’t block the view. That’s why some parameters can be shown and hidden with head gestures. In addition, HUD had to be implemented in a way to be legible during a dynamic ride. The AR team achieved it with dynamic and smooth HUD positioning in a space in front of the steering wheel.

AR app tech stack

Unity, C#, Hololens2 and MRTK3 component library, Zenject dependency injection, RedBus signals; REST, JSON

The frontend

The fourth team built an administrator panel to manage participants and sessions. In the dashboard, the go-kart track owners and managers can add/filter/delete users, browse their details, and manage tags and anchors. 

Tech stack

React, Typescript, Storybook; libraries and tools: Material-UI, React-router-dom, React-redux, React-redux-toolkit, React-saga, React-query, i18next, Formik, Yup, Axios, Docker, Docker-compose, Postman, Git/Gitlab

How can the project be further developed? 

Summer internships are time-restrained, but the system is designed in a way that can be easily expanded. The features we find useful and would develop in the next stage of the project are: 

  • The history of each drive,
  • Recording of the whole ride,
  • Repeating key moments in the form of animated 3D scenes,
  • Marking the critical moments on the track map, such as collisions or overtaking other go-karts in a spectacular way,
  • Statistics on each user,
  • 3D visualisation of the track displayed in HoloLens, 
  • A ranking system, 
  • HUD improvements: warning of an approaching vehicle, recommended speed display, digital mirrors, 
  • Adding more tracks,
  • Races in augmented reality for training purposes. 

Our interns

Last but not least, the project wouldn’t take place without our hardworking interns picking their supervisors’ brains about the development process. Kudos go to: 

Backend team

Dawid Olszewski 
Marek Drąg
tutor: Szymon Bartczak, our Node.js Developer, and Rafał Sawicki, our Node.js Developer and the leader of the Node.js area in NeuroSYS

Mobile app team

Bartosz Dombrow – mobile app
Michał Ziółkowski – mobile app
tutor: Jakub Kossek, our Mobile Developer/Front-end Developer

Augmented reality team 

Tomasz Kruszyński
tutor: Michał Adamski, our Unity Developer, and in lieu of him, Bartosz Urban, Junior Software Developer

Frontend team

Jakub Pawlak
Bartłomiej Łukaszuk
tutor: Dawid Juszczak, our Front-end Developer 

Authors
marta_dunajko_content-marketing-manager
Marta Dunajko
Content Marketing Manager
icon
Done!
Thank you for your application!
icon
Let's get in touch!
We want to get to know you a little bit, but we need some help from your side. Let's start with filling gaps below.
Full name
Please provide us with your full name
Email
Please provide us your current Email
Telephone
Please provide us with your Phone number
Your LinkedIn profile
Please show us your professional social side :)
Link to your portfolio / GitHub
Please insert your Portfolio / GitHub URL correctly
Message
Nothing to say? Maybe just a little bit? Even "Hi" will work - thanks!
CV file
Please upload your CV
Select file
Please choose one of the following
I hereby authorize the processing of my personal data included in this form for the present recruitment-related purposes by NeuroSYS Sp. z o.o. (Rybacka 7 Street, 53-565 Wrocław) (in accordance with the General Data Protection Regulation (EU) 2016/679 of 27.04.2018 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data, as well as repealing Directive 95/46/EC (Data Protection Directive)). I acknowledge that submitting my personal data is voluntary, I have the right to access my data and rectify it.
Read and accept
I hereby authorize the processing of my personal data included in my job application for the needs of future recruitment processes by NeuroSYS Sp. z o.o. (Rybacka 7 Street, 53-565 Wrocław).
Read and accept