First 250 days of software dev - Part 19

5 min read

Day 181

Today I finished uploading the file, transmitting the file to the user, using a data structure that I assume is appropriate in the backend, in less time than I expected. I need to enable the user to search for different users and their own past chat content, so they can add people they haven't started a chat with yet. I was going to go straight to the topic, but then I wanted to look at algorithms related to search in the book of algorithms. When I looked, I just read the different types of problems and solutions there. And of course I thought about them. For example, there was the "Travelling salesman problem" that I came across while looking at graph algorithms. I want to think about it on Sunday and look at its applications. As far as I understood, there was no general solution method and I was interested. Tomorrow I will continue as normal, and by Monday I will try to finish searching for different users and messages, starting a conversation with a new user, etc.

Day 182

For now, I've only started working on searching for contacts and starting conversations. I'm not going to search for messages in past chats and show them to the user, because that part has a very different logic. Today I can say that I played with the front end a bit more. But it was more about thinking about what I was going to do rather than spending time here.

Day 183

I haven't finished the part I thought I would finish today (adding users) yet. My progress slowed down a bit because I got stuck in a few places. I will try to complete it tomorrow. I am working on both front and back end every day at these stages. One without the other doesn't make much sense.

Day 184

Today I completed the process of adding users (sending a friend request and whether it is accepted or not). There are some problems left on the front end side, but I will try to solve them tomorrow. When those problems are over, I will start creating groups.

Day 185

Today I completed the group creation logic, but there are still a few problems on the client side. Most of the problems are on the frontend side because the backend side is much simpler. I guess there will be no more problems with group creation until noon tomorrow. Then, as you said, I will create a public room/group where everyone joins the chat by default.

Day 186

Today, problems in creating groups and showing notifications were fixed. Afterwards, since the user's photo was given as static, "name, surname, profile photo, password" fields were defined in the user preferences section to make it dynamic. To change the password, the SSO server will be contacted again and the user will be directed there. But other operations will be completed on the Chat server. It is not completed yet. We will try to finish it tomorrow.

The most summarized version of what has been done so far:
  • The user registered in SSO logs in with the necessary information. He/she can log out from anywhere or log out only from the device-browser he/she is on.
  • When the user enters Chat, he/she automatically enters the general chat group.
  • The user can search for other users (browse registered users), send a friend request to anyone they want. When the person accepts, they can start talking.
  • The user can create groups and add friends.
  • The user can send many different types of files in chat. They can download what is sent.
  • If the user receives a friend request and is offline, the notification appears (also appears when online)
  • The user can change their status (busy, away, active). Offline status has not been written yet. This status will be given automatically, regardless of the user, if they are logged out for a certain period of time.
While new features are being added, problems from the past are being solved. Even though this work done as an apprentice work shows the level of the person (Buğra) (very amateurish), development will be achieved in this way. I hope so.

Day 187

Today, I wrote the file exchange as you said - in the file server format - and edited and completed it for both profile photos and files shared in chats. At the end of the day, I completed the requirements on this issue. After that editing, photo updating and instantly showing it to other users was also completed. I will try to complete the other user information update-changing parts tomorrow.

Day 188

I did almost everything I had in mind this week, yes it was a more relaxed week but I don't think it was empty or unproductive.

Today has been like reading a holy book. I read about programming, object-oriented and javascript. I had originally planned to complete the user information update part today, but I felt that I was using the same information or I was far from doing something more stimulating and exciting, so I turned to the theory part a little more. Not because I was running away or afraid of something, but because I was interested in the philosophy (under the hood) of the business, so I spent today learning and reading a little more different things.

Day 189

Today I completed the parts of updating the information about the profile. Then I tried to complete the operations that can be done on messages such as editing, deleting, copying messages, but it is left for tomorrow morning. When it is completed, I will try to do things like deleting users in groups, adding or removing admin, changing group name. There is no problem on the backend side, but the frontend side takes most of the time. Although I want to finish it as soon as possible, I guess I'm stalling. I should have thought object-oriented from the beginning, but I got a little confused because I said I would make it that way later. With this project, I actually understood a little better why people created frameworks like React. I understood more why there is so much emphasis on so many doctrines or ideas such as OOP, MVC, SOLId, etc. rather than frameworks. That's all for today.

Day 190

Yesterday the missing parts (some parts of message editing, deleting, copying) were completed. Today, we started working on what happens when a user clicks on a group name. Topics such as the list of people in the group, viewing the admins, leaving the group were entered. It is not finished yet. Again, the frontend part took more time. Tomorrow, readings will be made on the subject you mentioned and a report will be created on the related software.