Weekly programmers report 23/10/2023
Tags: rails, ruby, javascript
Published: 2023-10-23 14:57:16

## Hey everyone!
### It's that time of the week when we share our insights into the solutions and technologies we've been diligently 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.

### **Krzysiek**:

### What functionalities have been delivered?

- Assisted with tasks including organizing emails and discussing client briefings.
- Worked on setting up access and had an overview of how a production infrastructure update would be established. However, this was more complex than initially thought and was delegated solely to Marek.
- Reviewed code in the project and discussed features with Mariusz, including past failures and potential improvements.
- A ticket was moved to staging for final amendments to authorisation and template editing.
- Adjustments were made to the project server, where the port mapping from HTTP and HTTPS to 5000 was corrected as Puma was running at 3000.
- Demonstrated deployment process to team members and granted access rights to various projects.
- Began writing secondary documentation.
- Worked on several tickets mainly regarding bug fixes and refining yesterday's feature. Discovered unutilised user privilege switches.

### What problems have been solved?

- Assisted Mariusz in understanding certain aspects of various programming languages such as constructors, setters, and getters.
- Setup for a new laptop was completed alongside giving access to several projects for various team members.

### What technologies, tools or solutions have been used?
javascript, kubernetes, docker, ruby, spinacms, linux, turbo, hotwire, actionmailer, rails, notion

### **Karolina**:

### What functionalities have been delivered?

Karolina has created documentation that provides step-by-step instructions on how to add a document in the admin panel and how to enable maintenance mode on the website. She has also worked on an AI report which is now available as a blog post on the 2n website. In another project, she has created three additional test cases for the project, including ones about adding centers, creating trainings, and setting celebratory themes. Additionally, she posted about the October BRUG on Facebook.

###What problems have been solved?

Karolina has prepared documentation aimed at resolving concerns and doubts of a client regarding the project. This will guide the client on where to click and what to do so that everything works as it should.

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

Slack, GoogleDocs, Markdown, Clickup

### **Mateusz**:

### What functionalities have been delivered?

Mateusz fixed a bug preventing access to a non-existent user, merged a pull request that removed the username from the entire application and handled a code review involving regular expressions. He added `jersey_number` and position to user teams and ensured successful import and data storage. In discount coupons, he moved a field from subscription serializer to `team_serializer` and revised the tests. He also spent time working on teams/join endpoint, added new fields and wrote many tests. Mateusz also faced a challenge with _make.com_ where he had been sending article data in JSON format but managed to fix the issue by sending the data without JSON. Later on, he found a workaround for why the finished blog post wouldn't update, completed the integration of make with _dev.to_, made some changes to the user import feature, started work on emails, and began developing a standard format for standups. Next, he improved the look of the top menu, tested the production environment, developed a regular expression to eliminate special characters in `external_id` and prepared the homework for his evaluation with Mehdi and finally worked on deploying and testing the demo environment.

### What problems have been solved?

He was able to resolve the problem of the JSON parsing in make. The issue with the faulty deployment of the production environment via GitHub was also solved by resetting the git refs.

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

Make.com, rspec, docker. stripe. csv, mysql, git, dokku, vps, ubuntu, regex, grape

### **Szymon**:

### What functionalities have been delivered?

Szymon delivered functionalities such as creating his own application, creating new models, views, controllers, and working with gemfiles and databases. He learned how to work on a database, including adding items to tables and relating them to users. He started authentication with Devise, managed to log in, create an account, and is now working on improving Devise and adding things to the table from the browser level. With help, he managed to set up Tailwind, realized he was using an outdated form and exchanged it for the current standard. He also developed an article creator, edited basic Devise files, and implemented login, password changing, and account creation. He changed the database from SQLite3 to PostgreSQL and implemented corresponding functionalities. He added new articles and a page for creating articles.

### What problems have been solved?

Szymon resolved problems like creating his own application including new models, views, controllers, working with gemfile, routes.rb and databases. He solved a problem with entering things into the database from the terminal level and authentication with Devise. He managed to configure Tailwind CSS and refine the visual design of the entire program. He switched the database from SQLite3 to PostgreSQL, enabled article addition, user creation, and logout feature. He also implemented Tailwind into API however new problems appeared.

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

Devise, Ruby, SQLite3, Tailwind, PostgreSQL, JS

### **Jakub**:

###What functionalities have been delivered?

Improvements in login view and landing page were made. Learned to use git stash. Deployment procedures were also mastered and continued work on views. Configuration files were successfully implemented and fonts for desktop were adjusted. Improvements on repeated code in case of buttons are left for further work along with continuing view improvements.

### What problems have been solved?

Small error fixes, understanding git specifics, resolving issues with Tailwind config- required removal of tailwind-css-rails gem and references to it in procfile. Conflict resolution skills in Git were improved and code readability was increased by wrapping long lines of code and ensuring adherence to DRY principles.

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

Tailwind, git, ruby, docker, CSS

### **Radek**:

### What functionalities have been delivered?

Radek improved the appearance of the app and added a centering functionality for maps when the user is adding a marker. He also improved the format of displayed addresses and their responsiveness when searching via autocomplete. Changes were made to how the model for the walk was structured. Furthermore, Radek created a validator for creating a walk and adjusted the format of incoming coordinates from the front end.

### What problems have been solved?

Radek found and fixed an error in the admin panel and confirmed it didn't cause further issues. Initially, he addressed a problem of double markers being added, later realizing some were tripled; however, this was resolved the next day. The changes also ensured markers no longer multiply. Furthermore, Radek refined how everything would be retained in the database.

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

avo, tailwind, stimulus, leaflet, openrouteservice, activerecord, rspec, rails

### **Mariusz**:

### What functionalities have been delivered?

Mariusz successfully implemented changes to the door structure drawing architecture and introduced the Overall and Frame categories of the drawing batch. He also made considerable progress with the feature for calculating the price per construction and frame surface area. In addition, he added an option in the selectors for the door group dimensions to restrict the possible measurements based on the total height of the construction. He improved the calculations for the price per frame surface area and construction. Fixing a mistake that was made when calculating the height of the construction in the canvas drawing, he sent his work to the staging area for testing. Furthermore, Mariusz fixed a bug related to displaying attachments available for cloned relational objects of a product when the attachment has been deleted from another product (which is a clone). He also introduced a block on price inputs and radio buttons for selecting their type when the current step of the admin wizard deals with an aspect defined in the constants as `aspect_without_price`.

### What problems have been solved?

Problems with the implementation of getters and setters were solved, as the class variables built in the constructor should not have the same names as the getters and setters. A significant issue was found with the attachment display for cloned relational objects of a product, which was fixed by introducing an additional operation in the cloning service. Troubles associated with selecting the door group's dimensions which affects the total height of the construction were also addressed.

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

stimulus, rspec, StimulusReflex, Shrine, Tailwind

### **Arkadiusz**:

### What functionalities have been delivered?

The programmer has delivered several functionalities. Specifically, he has made it possible to input values into the table structure of sold items, including the minimum, maximum, and average price, as well as size. It is also possible to recalculate these values based on the price list. He added feature reset checkbox values in the sales section when creating a new historical version. A functionality has also been introduced to block the possibility of adding new phases in finished investments. While the application work on learning microservices progresses, initial pseudocode has been created to guide the development process.

### What problems have been solved?

Several issues were addressed. Integrating the checkbox functionality into the existing mechanism posed a challenge due to the NOT NULL constraint, thus a separate array was used. In-depth discussions were held on applying the Boolean on the checkbox and the select in the logic with the possibilities of NULL values. An issue with the change of sale dates in the new historical version of a unit was addressed. The problem was likely linked to the price list addition. The solution for the issue of adding new phases in finished investments resulted in being able to visually conclude investments. Finally, the proper connection of Tailwind to the application was managed with significant help in understanding dependencies, utilization of `button_to` and `link_to`, and log digging.

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

ActiveRecord, ActiveRecord::Migration, CoffeeScript, JS, haml, ActiveAdmin, Pundit, ssh, scp, Chipmunk, pry, devise, tailwindcss

### **Marcin**:

### What functionalities have been delivered?

The date of the offer's end in the restaurant has been quickly changed, which was just a text change. Additionally, the content of the return policy on the website under the help section and in the email confirming the order has been edited.

### What problems have been solved?

There was a problem with locating the content from the help section within the project. Once located, the old record has been hidden so it would not be deleted, with a new record added in the same place. An obstacle was also encountered when trying to alter the contents of the confirmation email - the text couldn't be found within the project to be updated. Access to SendGrid to modify the email's content was granted, but a two-step verification was required to log in. The code provided was no longer valid when it was attempted to be used for access, a further attempt to gain access will be made.

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

ruby, rails, docker-compose, sendgrid, mailchimp

### **Maciej**:

### What functionalities have been delivered?

Maciej successfully implemented functionalities related to Pundit (policy regarding the use of admin and user). The policy was carefully incorporated into the appropriate segments of the code. The issue concerning username change error was resolved. When a folder was deleted, it was impossible to rename it - however, this error was fixed as well. He also introduced an adjustment concerning layout changes and checkboxes. Lastly, he spent some time figuring out subscriptions, although more conceptual information is necessary on this aspect.

### What problems have been solved?

Maciej successfully solved problems with name changing, implemented policy into numerous segments in the code, modified the checkbox layout, and added a fix to the folder renaming issue.

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

Shopify, Spina, Pundit, RSpec, Stub