Weekly programmers report 30/10/2023
Tags: activestorage, bullet, dokku, docker
Published: 2023-10-30 13:25:34

## Hi! Happy Monday!
### We would love to invite you to our weekly report, where we unravel the solutions and technologies that have been instrumental in our continued growth.

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.

### **Mariusz**:
### What functionalities have been delivered?

The programmer has made several corrections in the code responsible for drawing the construction after the architecture change. These include usage of the `render?` method in the viewComponent being rendered after the condition is met, resigning from guard clauses in favor of case statements, and placing all strings in constants defined in a class serving as a constants' storehouse. He has also added a mechanism that calculates the price based on chosen construction and door dimensions. Furthermore, he resolved issues with select dimensions blockage and input blockage in the admin wizard. Lastly, Mariusz managed to finalize all his features, updated the first step in the salesperson's order position configuration, and wrote two scripts exporting data of sub-aspects and aspects of each group of doors.

### What problems have been solved?
Issues resolved include achieving a smoother functionality with viewComponent's `render?` method, enhancing code clarity with case statements approach, and eliminating hard-coded values in the JavaScript. Some problems concerning the blocking options of Selects were resolved by placing the blocking function in its own controller. A mistaken "bang" in checking the current price type was identified and corrected, which previously kept all inputs disabled.

### What technologies, tools or solutions have been used?

rspec, stimulus, stimulusReflex, csv

### **Mateusz**:

### What functionalities have been delivered?

1. Improved user listing by adding pagination and search function, and allowing users to be removed or edited on the list.
2. Explained and addressed issues related to `external_id` to the client.
3. Added search by `first_name` and `last_name` on the user list in the admin side.
4. Resolved duplication issues in industries.
5. Undertook some refactor of tests in `users_spec.rb`.
6. Fixed a 500 error on password reset.
7. Updated the link used to redirect users who get an email about their account migration from another platform.
8. Made changes to user import based on client feedback.
9. Modified weekly report generation for 2n things, based on Karolina's request.
10. Began moving report generation to the company account.
11. Uploaded a copy of the staging database to demo for client's usage.
12. Modified user import by assigning industries and company to user profile.
13. Added three email notifications for users, subject to text templates from client.
14. Started refactoring tests in `users_spec` in response to PM's approval.

### What problems have been solved?

1. Resolved server overload issue caused by the user list feature.
2. Addressed a 500 error in password reset.
3. Fixed issues found during user importing.
4. Transferred the staging database to demo for client's presentations, allowing staging to be modified.
5. Handling problems with random system shutdowns on manjaro.

###What technologies, tools or solutions have been used?

active_admin, bullet, rspec, csv, make.com, AI, make

### **Maciej**:

### What functionalities have been delivered?

Maciej has delivered the functionality of adding styling to a div to make it match the style on another webpage. Utilizing the `.from-wysiwyg` style, the application can now ensure each specified tag nested in an element with the `.from-wysiwyg` style will have this style applied. He also made progress with Shopify: he wrote to subscriptions and is now waiting for the necessary collaboration request from support. Additionally, he added alignment to the Trix component in the admin panel, allowing for better text format. Maciej has also managed to align the divs in the document's title.

### What problems have been solved?

Maciej faced and resolved the issue of waiting for support from Shopify when making more unconventional style changes to the store. Other more ready-to-use libraries were unresponsive to the changes he made. He was also able to solve the problem with justifying text, which was in bullet points, by creating a JavaScript in the stimulus controller that disabled sub-points with each click. Lastly, he managed to stop sending mails on staging in the shopify-api app.

### What technologies, tools or solutions have been used?

Maciej utilized a variety of technologies including Spina, CSS, Tailwind, Shopify, Trix, JavaScript, and HTML tags.

### **Karolina**:

### What functionalities have been delivered?

The infographic has been finished, an announcement for the November BRUG has been shared globally, and sponsor texts have been prepared. Some tests were done in several projects. In one of them, most of the checked functionalities have been approved, however, some issues still need to be closely examined. Other tasks included work on the AI report, which is already available on the blog and on 2n social media, and creating tickets for mobile view in the project platform.

### What problems have been solved?

Minor login issues on the project platform have been encountered and subsequently resolved.

### What technologies, tools or solutions have been used?

Clickup, Slack, Google Doc, Markdown

### **Krzysiek**:

### What functionalities have been delivered?

Version 1.0.9 of the app has been released, with updates from both Krzysiek and Maciek, including the extension of Trix. Mainly graphic improvements or minor corrections have been implemented. The major issue was with the fonts and also with the Forticlient, which significantly delayed the release.

### What problems have been solved?

The issue with fonts not being read on Windows has been resolved. The issue was present when two stylesheets were incorporated, one loading the other, normally compiled into one when the page is rendered. However, imports would remain as they were, not merging into an import section at the top of the final file. This usually isn't a problem unless you're on Windows. Therefore, the import statement was moved to the top of the file which is loaded first for compilation, and this solved the issue. The discovery of this solution demanded a significant amount of time.

### What technologies, tools or solutions have been used?

dokku, css, js, spina, tailwind, rails

### **Radek**:

### What functionalities have been delivered?

The creation of the validator was partially finished but not completed. No new functionality was added. Work continued on writing the validator for walking spaces. The only function delivered was a button for the admin panel.\

### What problems have been solved?

The day involved resolving a series of small issues. There were some challenges with deploying changes to staging and understanding the flow of it. Errors detected by colleague Karolina and a few self-found ones were fixed in collaboration with Kuba. It was discovered how to add custom Tailwind classes with lower priority that can be overwritten later. The Avo application was checked and confirmed it could be used in Polish. The absence of a visible avatar on staging was investigated and it turned out to be a problem with Dokku not having the option set to keep storage during deploys. There were problems with the application crashing on staging right after admin login, and a local Avo license warning. The issues were eventually resolved. Another problem solved was fixing a tab in the admin panel and modifying includes to stop Bullet from throwing warnings.

### What technologies, tools or solutions have been used?

rspec, rails, validator, tailwind, active storage, dokku, avo

### **Jakub**:

### What functionalities have been delivered?

- Improved minor elements in the login components and landing page, including introduction of classes to redundant items like buttons and inputs
- Adjusted login components according to prototype designs
- Tested changes in logging and start pages, removing discovered bugs
- Completed initial work on a hamburger type menu, pending modal incorporation
- Finished adjustments to the tailwindconfig branch and merged it.

### What problems have been solved?

- No specific problems indicated.

### What technologies, tools or solutions have been used?

- Tailwind
- Figma
- Git
- Stimulus
- Turbo

### **Arkadiusz**:

### What functionalities have been delivered?

New columns according to the ticket information have been added in the forms when generating reports, dynamic reports, and in pivot tables. Two tickets for production issues related to incorrect assignment of sales date were resolved. The status update for newly created apartments from the price list is now not affected when the 'do not update prices and statuses' checkbox is selected, which was not considered before in newly created apartments.

### What problems have been solved?

An incorrect use of the design pattern (causing the n+1 problem in several places) was identified and one function was adjusted to eliminate and slightly speed up this issue. Uncertainties regarding labels and dot templates/map templates have been communicated in the ticket and feedback from the client is awaited. With pivot tables, a refresher on using 'scenic' was needed. It was discovered that missing indices may be causing data retrieval problems in map reports and dynamic reports, some indices were added on staging and their effect is being evaluated.

### What technologies, tools or solutions have been used?

ActiveRecord, scenic, Benchmark, ActiveRecord::Fixtures, AjaxDatatable, pg_dump, EXPLAIN ANALYZE, pg_indexes

### **Szymon**:

### What functionalities have been delivered?

The creation of a service object was unsuccessful. After facing difficulty, the plan to create it was postponed for the next day. A folder for the services and the first file was created, but it’s unsure if it's functioning as expected. However, the entire planned functionalities were delivered subsequently. Point collection for article subscription was added including the ability to subscribe to articles. An email notification feature was implemented that informs whenever someone subscribes or unsubscribes. Lastly, corrections were made to a previous project, some changes were introduced and an error was fixed.

### What problems have been solved?

Adding and subtracting points, subscribing and unsubscribing from articles, and sending emails to users were the issues addressed.

### What technologies, tools or solutions have been used?

service object, ruby, js, tailwind, devise, mailer

### **Marcin**:

### What functionalities have been delivered?

Work has been done on a ticket concerning the history of orders for each item, which was previously displayed for a past three-day span, and was increased to a seven-day span recently. While there is a slight confusion about the particular order information that needs to be displayed, the functionality has been working for 4 years without complaints until a ticket reported an issue. Before committing any corrections to the code, clarifying questions have been asked under the ticket to understand what exactly needs to be fixed. In another task, updates were done to the content of an email. To do this, access to SendGrid was acquired and despite the presence of several email templates, the required one was missing. While awaiting access to MailChimp, more digging into the code discovered that EmailTemp records are used to generate email content templates with the Liquid gem.

### What problems have been solved?

No specific problems have been listed as solved yet.

### What technologies, tools or solutions have been used?

rails, docker-compose, ruby, pry, liquid, sendgrid.