Hi everyone! In this blog, I will be talking about my project "Revamp web application to aggregate and distribute IRC meeting minutes and logs" as an Outreachy intern with the Fedora Community. I will be sharing the project updates and tasks progress I have done till now. I am currently in week 7 of my Outreachy Internship and I must say it’s going great. Every day is a new learning experience for me with lots of new implementations, goals, and tasks. This keeps me motivated and afresh with the project.

Once the community bonding period was over, My mentor and I started working on a detailed timeline and road map. In the first week, I worked on the landing page of the Mote project and its design and UI. I was trying to implement a calendar from scratch in Vanilla JS. Thankfully my mentor recommended I use an existing customizable calendar plugin called fullcalendar.io. Documentation for this plugin is well maintained and has been extremely helpful as I started implementing the backend. I used the calendar to fetch data of all the meetings that happened in the last month. Once the calendar page loads, a function is called to fetch data and render UI.

However, it will display the recent meetings fetched in the calendar as events of that particular date. I made two views – week and month. In the week view, it will display all the meetings week-wise in the current month. We also worked on the today button which will become active in the week view once you navigate to the current date. On clicking the meeting, it will redirect to the meeting details page that shows the minute. I adjusted the aspect ratio to widen the navbar controls to occupy the width taken up by the container for the calendar. But as it varied and changed according to the screen size, I had to do window reloading and set up the width so that the scrollbar gets removed and the calendar width is the same in all the screens. I also used bootstrap theming and font awesome to change the colors of the month, week, today, arrow buttons, and the meetings block. I set it according to the matching theme of the Fedora. Also when the calendar was being loaded, the meetings fetched used to display very late to which my mentor suggested to first render the empty calendar and then use the indeterminate spinner that is rendered by default when the modal is loaded up to be replaced or removed when the contents have arrived.

After the calendar implementation, I worked on the search bar wherein the dropdown I had to display the list of meetings fetched. It calls the function from the backend as we type the characters and displays results in the dropdown. By default, we see 5 meetings in the dropdown along with a ‘show more’ button which opens to the modal of the list of meetings that happened with details like date, time, and channel name. Then, I did various changes and modifications to the implementation of the search bar. For the display of meetings list in the drop-down, I limited the suggestions to just the most recent five results with a button to show more buttons with giving information on when these meetings took place like date and exact time and in which channel these meetings are present. I disabled the browser-induced search suggestions. Then I pointed the results to the meetings available locally with the current deployment of Mote and not the meetbot-raw site. I also placed the search bar outside the calendar above the cart. I made the button a submit element, so it'll be automatic and used and these suggestions trigger automatically when typed and not when I click on the button only. The search now acclimatizes itself to the newly entered text so the trigger should be made whenever the text elements in the search bar change. Then I induced delay which is very small, like a few hundreds of milliseconds so that it is not perceptible to the user and this method is called debouncing. Then I requested the backend after 3 or 4 characters has been typed only to induce the search results, for this I counted the number of characters in the field and only made a request if the string length is more than 2 or 3 characters in the search string function.

Then I sorted the end results where the latest meeting will come first on the list and the meetings which have happened before will come after that. Also, the requested return now doesn't show the occurrences of the same meeting and is sorted by date. Then I moved the search bar to the navbar, as the last element there beside the About link. The way the search operates stays the same and I changed only the position because the calendar was moved on by a bit and hence in a default view, we would actually have to scroll down a bit to see the calendar in its entirety which was not looking good. Then I instructed users in the search bar placeholder (in Search meeting logs) and enter four or more characters to start searching for the meeting. The text I typed is "Enter four or more characters to search" which is to ensure that the people are not left to imagine if the search functionality is working properly or not when they end up entering only two or three characters.

I changed the highlighted color corresponding to Bootstrap's Primary Blue and then I picked a lighter tint of Fedorable Blue color for adding that. I also sorted the search results which turn up in the modal in the reverse chronological order of their occurrences and now the recent meetings turn up first and the older meetings follow after that. I also changed the font style and font size of the meeting's name and added another class of that so that it overrides the CSS properties and more letters get shown up and I also corrected the alignment of the search bar with text, logo, and button. I also made the search bar disappear as it is not center-aligned and does not look nice in the restricted width view by changing the position of the collapse button to get everything to work. I also added the spinner so that the user gets to know the meetings are being loaded on searching and then inserted the text as "No meetings found" if the user doesn't type appropriate results. Overall now the search bar fulfills all its core functionalities.

I’m halfway done with my internship and I have learned a lot throughout and improved my frontend and JS skills as well. I am really grateful to my mentors Akashdeep Dhar and Francois Andrieu for their constant motivation and support as well as the Outreachy organizers for this awesome opportunity.

Thanks for taking out the time to read my blog!
In this blog prompt, I will be writing about the Fedora community and the project on which I have been working.

Fedora creates an innovative, free, and open-source platform for hardware, clouds, and containers that enables software developers and community members to build tailored solutions for their users. It is a Linux distribution developed by the community-supported Fedora Project which is sponsored primarily by Red Hat, a subsidiary of IBM, with additional support from other companies. It is mainly used by enterprise-level users who also use the Red Hat Enterprise Linux or CentOS. Fedora provides a more user-friendly experience than RHEL or CentOS. Fedora is also used for different projects like Web Servers, Database Servers, Proxy, VMs.

I am an intern for the project “Revamp web application to aggregate and distribute IRC meeting minutes and logs”.

What kind of people participate in your community?

We have various kinds of people participating in the Fedora community. We have a design team who work on the UI and focus on developing the look of the website. There are also software developers and engineers of which most of them majorly works at Red Hat. We have quality testers, community managers and coordinators, and content/documentation writers too. The Fedora community is filled with lots of talented and amazing mentors and developers. They welcome new people amazingly and guide them voluntarily in a new direction and also help with with the project and resources which will be helpful. Moreover, the weekly meeting is an add-on where they give new suggestions and discuss new ideas for the betterment of the community.

What problem is your project trying to solve?

My project 'Mote' is a web application that is purposed to aggregate and distribute the minutes and logs for IRC/Matrix meetings of the Fedora Project community. It allows looking up meeting info with channel names, dates/times of occurrence, and lists recent meetings for quick access. The motive is to design a new developing look of the website and decide how the under-used top bar can be improved and to fix the backend code and add the scripts to build the server-side index for meeting channels, dates, and times.

How does your project fit into the larger community?

The project is for the whole Fedora community as it displays all the Fedora teams, channels and lists out the schedule of all the meetings with the name, date, and the details of all the meetings that happened till now with the agenda.

Why would people want to use your project?

The project will be very useful for the Fedora developers and managers and all the people associated with Fedora as it summarizes and briefs all the meetings of the channels and lists out the time and the detailed discussions of that particular meeting. It also gives a brief idea about all the teams present in Fedora Community.

What makes you most excited to work on your project?

I am having a great learning experience getting to code and working hands-on along with the implementation of the real-time project, I am getting to learn new things every day, and also from the mentors who guide me a lot. I have been participating and working on open-source projects since 2 years but the level of learning and experience I am getting through Outreachy is commendable. I am working on project development every day which is making me a lot capable to code and learning for my future endeavors. I am sure through this work I will get much learning and knowledge.

What new terms or concepts have you learned in the past month?

I have implemented a calendar plugin fullcalendar.io that I have customized a lot according to the need of the project and the mentors. I changed the colors, grid views, added custom buttons, learned about how to disable buttons which I did through vanilla JS and then how to adjust the scrollbar and cut out the extra space vertically. I learned about the header toolbar, aspect ratio, spinner loading so that it can render the calendar as soon as it loads the meetings displayed, bootstrap theming, bootstrap font awesome, window reloading, title range separator, button text all of these which I customized going through the docs of the plugin calendar. Apart from this, I also implemented a search bar which lists out the meetings in the result and in the dropdown it will show 5 meetings and a show more button which on openings shows more results and then opens a modal view which shows the date of the all meetings happened and then it opens to the modal showing the particular meeting name and the date which on redirecting will show all the meeting details.

What was confusing to you about the project? 

The confusing part was once when I select the meeting name in the search bar dropdown, I still need to select the date I am looking for of that meeting for which I had 2 approaches. I can either open a modal, with all the meetings with that name, listed by date, or I could use the calendar view for that purpose like either by highlighting all meetings that match my search in the calendar, or simply by hiding every other meeting, or/and making the calendar show you when the last meeting. I was a little confused on how to set the frequency of the last meetings.

Overall I learned a lot while implementing the calendar plugin for fetching the meetings according to the date so that it can be browsed quickly and the search bar where I had list meetings in the dropdown.
Hello everyone!


This is the second blog of my Outreachy series. It has been two weeks since my internship started with the Fedora Community and I’m really enjoying the learning process throughout the duration. This week we are encouraged to write on the blog prompt: “Everybody struggles” and to introduce an open-source vocabulary term that we are not aware of before.

So, coming down to a vocabulary term, let’s see what Pipelines are!

A CI/CD pipeline automates our software delivery process. The pipeline builds code, runs tests (CI), and safely deploys a new version of the application (CD).

Automated pipelines remove manual errors, provide standardized feedback loops to developers, and enable fast product iterations.

CI, short for Continuous Integration, is a software development practice in which all developers merge code changes in a central repository multiple times a day. CD stands for Continuous Delivery, which on top of Continuous Integration adds the practice of automating the entire software release process.

With CI, each change in code triggers an automated build-and-test sequence for the given project, providing feedback to the developer(s) who made the change. The entire CI feedback loop should run in less than 10 minutes.

Continuous Delivery includes infrastructure provisioning and deployment, which may be manual and consist of multiple stages. What’s important is that all these processes are fully automated, with each run fully logged and visible to the entire team.

A pipeline for a simple program
A pipeline can start very simple. Here’s an example of a Go project pipeline:

Compiles the code,
Checks code style, and
Runs automated tests in two parallel jobs

Elements of a CI/CD pipeline

A CI/CD pipeline may sound like overhead, but it isn’t. It’s essentially a runnable specification of the steps that any developer needs to perform to deliver a new version of a software product. In the absence of an automated pipeline, engineers would still need to perform these steps manually, and hence far less productively.

Deployment Pipeline

A Deployment pipeline is a process of taking code from version control and making it readily available to users of your application in an automated fashion. When a team of developers are working on projects or features they need a reliable and efficient way to build, test and deploy their work. Historically, this would have been a manual process involving lots of communication and a lot of human error.

Some months back I was just having a basic idea on these terms but now I have spent much time learning about python packaging, CI/CD pipelines, and building a container with docker file.

But I didn't lose patience and continued to learn in these two weeks about different concepts which will be helpful in my project in the near month like rpm packaging, CI/CD pipelines, and containers. I am researching and learning so that I get proficient in working out the issues related to these concepts and get good hands-on practice.

The internship period is going as a very good learning experience for me where I am being guided by my mentors who always correct me and guide me whenever I get stuck in any part. They always help me with my queries and doubts and have been very supportive throughout.

My belief is no one is born expertise and a perfect developer and coder. It all comes from our continuous learning, practice, sheer hard work, and utmost dedication. So never lose hope and keep learning and exploring. One day you will find your path with correct directions and goals.
Hello Everyone,

I am Subhangi Choudhary from India and I have graduated this year in Electronics Engineering. Though belonging from a different field I still had an interest in coding and Open Source development. It has always fascinated me and this is the reason that I have been participating in several open-source programs which have really helped me in gaining a lot of knowledge and experience. I have been selected as an Outreachy intern for the project “Revamp web application to aggregate and distribute IRC meeting minutes and logs” and I am really excited and grateful for this opportunity. This is going to be a great experience for me where I will get to work on a lot of things and simultaneously learn and acquire new skills which will prove very useful for me in my future career.

Core values that have always helped me are Passion and Hard work

I believe hard work is the first step towards smart work. Through hard work, I gain experience and it helps me to discover many new things. This experience enables me to think smartly to solve critical problems and achieve my dream. Also, I think there is no shortcut to success. Hard work is the only key to achieving it and thus teaches us discipline, dedication and determination. I believe if you have the determination and willpower to crack something you will definitely be in that place where you want to be. The famous quote "Where there is a will, there is a way" completely relates to this. Also, I kept hopes and confidence in myself to achieve what I wish to do. I think it is totally you and your mind frame who decide what you want and how far you want to go. Nothing can come in between your dreams until and unless you want that. It's all my faith and belief in myself that I was able to get this internship. I just kept doing my work without thinking if I will be selected or not and kept hope in myself.

What motivated me to apply to Outreachy?

I had heard Outreachy internship from one of my seniors who had cracked it and gave a seminar on this in my college when I was in my second year. It was then when I got to know about this amazing internship and believe me at that time only, I decided I will try for this with utmost dedication and learning. I got to know how Outreachy will be a great opportunity and a learning experience for me to excel in the IT industry and will be beneficial for my career. When I heard about this from my senior, I got really enthusiastic to know about it, as my senior told me Outreachy helps people who are from under-represented groups and is a life-changing experience for a contributor. I feel happy now that I am connected with such amazing mentors who are there to guide and motivate me at every step. This opportunity which I have got, I am really thankful to my parents, friends, and mentors whose support has helped me in reaching here on such a great platform. I always have shared my knowledge and experience with beginners and this is a great chance for me to prove myself capable and then help other people in getting to Outreachy. Looking forward to the best 3 months of my life.

Profile

SUBHANGI CHOUDHARY

January 2022

S M T W T F S
      1
2345678
9101112131415
16171819 202122
23242526272829
3031     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 13th, 2026 12:24 pm
Powered by Dreamwidth Studios