Hey everyone!

It's time for our weekly report, highlighting the solutions and technologies we've been working on.

The content for this report was extracted from our internal standup meetings, and ChatGPT has provided clear and concise report text.
The automation of data aggregation is made possible through a custom Slack plugin integrated with make.com, which communicates with OpenAI on our behalf.

Maciej:

What functionalities have been delivered?

Two main functionalities have been delivered:
1. Changing the order of the cards within the navigation menu. This was accomplished by taking the children.sorted(:position) navigation code and transferring it to a component responsible for 4 cards, then providing an argument for one card.
2. Adding an eCRF link in the "other" category of the menu. Originally, it was understood that the eCRF link had to be added to the logo, but later on it was clarified that it should be in the "other" category.

What problems have been solved?

Two main problems have been resolved:
1. Addition of the eCRF link
2. Changing the card order in the navigation menu

What technologies, tools or solutions have been used?

rabbit, rails, spina, active_record, locale

Arkadiusz:

What functionalities have been delivered?

Arkadiusz expanded the file upload limit by changing the nginx configuration which now allows up to 25MB in body. This was applied to staging, the training platform and to production. He also added a price list export feature by using SimpleXLSX for writing to the file. After generating the file, he selected the data and wrote it to a tempfile, removed the original file and sent the tempfile through a custom action in the controller.
He was able to determine the cause of timeouts in production mode after enabling maintenance mode using the Turnout gem. He improved the service responsible for updating the map template by writing the missing tests and slightly changing the form objects for the models responsible for the colour and size of dots/markers on the map.

What problems have been solved?

Arkadiusz solved timeouts occurring on the production server after activating maintenance mode by analysing local logs of requests created in the admin panel. Due to visible lack of tests, several cases were not properly caught. Therefore, he had to dig into the old code and refactor it. As a result, he fixed issues related to dot colours and sizes which can be determined by columns on the map.

What technologies, tools or solutions have been used?

ActiveStorage, ActionController::Rendering, SimpleXLSX, dokku, nginx, ActiveRecord, CoffeeScript, jQuery, Stimulus, RSpec, Turnout, ActionCable, FactoryBot, Faker

Szymon:

What functionalities have been delivered?

The programmer added geolocation to the map so that it now displays our current location. He also slightly improved the appearance of the map. Additionally, he learned how to use the function navigator.geolocation.getCurrentPosition. Further, Szymon began building a new map-based task, learning how to build a webpage from the beginning and implement effective usage of Tailwind and Stimulus. Lastly, he managed to launch the map and start writing functionalities for it.

What problems have been solved?

Szymon successfully resolved issues related to displaying the current location on the map, building a webpage from scratch, and practical usage of Tailwind and Stimulus. He also tackled problems with adding and launching a map on the webpage.

What technologies, tools or solutions have been used?

tailwindcss, stimulus, leaflet, js

Marcin:

What functionalities have been delivered?

  • Added corrections on the How to Order page in wholesale and released it

  • Reviewed the ticket brief for adding a button that sends order data from Wholesale to Stock

  • Made progress with order data generation and reporting

  • Improved the display of new order reports

  • Added rendering of index to the reporting method

  • Calculated various new field values such as gross profit and operating profit

  • Summaries of orders including profits, costs and number of orders are now displayed below the order table

  • Order data can now be exported to Excel

  • Adjusted the export file for products in Wholesale, adding new necessary data

  • Finished code for generating new reports and deployed it

What problems have been solved?

No specific problems have been reported as solved in these reports.

What technologies, tools or solutions have been used?

rails, ruby, docker-compose, pry, postgresql, csv, docker, bullet, paperclip

Radek:

What functionalities have been delivered?

The map has been modified to display the relevant area. Autocomplete suggestions are now removed when no longer needed. Work has begun on keyboard navigation through the suggestion list. A tutorial on Stimulus basics was delivered. Keyboard navigation is now fully functional and all options can be selected. Similar to Google Maps, the suggestion list disappears when focus is lost on the search field. Search results now return more detailed locations.

What problems have been solved?

Previous struggles with map positioning calculations were unnecessary as an existing solution was found in Leaflet. This highlights the need to check for existing solutions before trying to invent something new. A long-standing issue with a syntax error in the tailwind.application.css file when launching the server was addressed, where two tailwind.config.js files were causing conflicts. The problem with choosing suggestions introduced in the previous report was resolved. A recurring issue with Tailwind configuration was also investigated.

What technologies, tools or solutions have been used?

stimulus, leaflet, openrouteservice, tailwind, rspec

Mariusz:

What functionalities have been delivered?

  • The component based on information in the current process type passed in DryEffects was adjusted to skip one type of sub_aspects in case of the occurrence of a specific sub_aspect_type.

  • Migration of columns to calculated values of total and frame area price was provided for OrderPosition.

  • The HoleDimensionsReflex test was rewritten.

  • Additional attributes overall_area_sqm_price and frame_area_sqm_price were added to the Product.

  • Inputs for entering the prices per m2 of surface in the first step of the admin wizard for the Lumo door group were implemented and connected to stimulus.

  • A multiplier for the calculated surface based on data from the salesman was included in the HoleDimensionsReflex and tests were supplemented.

  • More missing tests were written for the component to which fields for price per m2 were added.

  • The order position was updated to take one value instead of two, i.e., the final amount for the calculated surface of the structure and the frame multiplied by the multiplier assigned per m2 of the Product.

  • The price for surfaces was added to the summary of the order position and an attribute OrderPosition area_price was included in the FinalPriceComponent module with updated tests.

What problems have been solved?

  • Cut the previously written test from over 250 lines to over 160 using with_every_combination, rendered component in callback with process type from every_combination, and applied the right order of creating objects using let_it_be on some objects.

  • Faced some issues with administering prices to OrderPosition, this problem was solved.

  • Faced structural issues of admin wizard process while trying to update the fields in service UpdateProduct.

  • Final price calculation issue was resolved via consultation which resulted in changing the logic to have order position take one value instead of two.

What technologies, tools or solutions have been used?

Rspec, StimulusReflex, DryEffects, ActiveRecord, stimulus, Js

Jakub:

What functionalities have been delivered?

Jakub has been working on the landing page and has learnt about applying parameters such as margins and padding. He has also been introduced to Stimulus, which he will be using to create a hamburger menu. He managed to complete the landing page view and also worked on improving the readability of the Tailwind code. Moreover, Jakub has finished modifying the desktop views and tested the paths, even playing with the database to create schools/registries for registration purposes.

What problems have been solved?

Jakub encountered some difficulties with adjusting an image for desktop and mobile versions, but managed to solve this issue after spending some time on it. He also addressed a startup application error, also improving the readability of the code and working on finishing the main page. Making the Tailwind methods uniform for both desktop and mobile to increase code readability was another problem he dealt with, as well as an attempt to resolve the issue of having two tailwind.config.js configuration files.

What technologies, tools or solutions have been used?

Tailwindcss, Stimulus, js, css, rails, postgresql

Kuba:

What functionalities have been delivered?

New notifications, changes to emails, new dashboard in the admin panel.

What problems have been solved?

One of the dashboards displaying data from an external API was crashing due to an issue with a key being fetched from ENVs. Found out that a recent DevOps PR which altered the script loading the ENVs seemed to be the cause. Remembered that when initially setting up this particular API, a hack was needed to remove whitespace added during key loading to the private key. Awaiting completion of adjustments by DevOps, will then inspect if the hack can be removed and the overall situation. Continued advancing the main topic being worked on.

What technologies, tools or solutions have been used?

Rspec, Rails, JWT

Mateusz:

What functionalities have been delivered?

He successfully deployed the company's website integration with make.com on production. Also, he made adjustments to the external_id, where he returned external_id in the details serializer, changed the external id format, and updated 'global' settings in the users to default to true. Furthermore, he resolved the data import problem involving missing colleges for some users. Lastly, changes were introduced to the make.com integration on the 2n website as suggested by Marek.

What problems have been solved?

He managed to solve the problem with the import, but only locally, and plans to push to staging the next day. One user couldn't access their profile for unknown reasons. He also resolved a problem that arose during the test of the external_id and the import issue with NULL strings. In addition, he fixed the issue with generating the correct external_id for names containing multiple names or dot characters.

What technologies, tools or solutions have been used?

Rspec, sql. mysql, postgresql, csv