Grants:Programs/Wikimedia Community Fund/Rapid Fund/Comprehensive link checking tool (ID: 22451570)/Final Report

Comprehensive link checking tool
Rapid Fund Final Report

Report Status: Under review

Due date: 2024-07-30T00:00:00Z

Funding program: Rapid Fund

Report type: Final

Application

This is an automatically generated Meta-Wiki page. The page was copied from Fluxx, the grantmaking web service of Wikimedia Foundation where the user has submitted their midpoint report. Please do not make any changes to this page because all changes will be removed after the next update. Use the discussion page for your feedback. The page was created by CR-FluxxBot.

General information

edit
  • Applicant username: Plantaest
  • Organization name: N/A
  • Amount awarded: 4204.17
  • Amount spent: 4204.17 USD, 103500000

Part 1: Project and impact

edit

1. Describe the implemented activities and results achieved. Additionally, share which approaches were most effective in supporting you to achieve the results. (required)

My link checker tool project is named Feverfew (a type of chrysanthemum), and it has undergone a development process over 3 months to achieve a relatively complete version as it is now.

During these 3 months, I have worked on various tasks such as ideation, functionality determination, interface design, programming, testing, deployment, documentation, and promotion to communities.

I referred to important details in Dispenser’s original tool (Checklinks), as well as some similar software on GitHub, to finalize the functionalities for Feverfew. This pre-research helped define the project's direction and limited the chances of deviating and wasting time.

I designed a basic interface, which was gradually adjusted whenever I found something imperfect. Since this is a small project, I only needed paper and pen, without using complex design software like Figma, which saved time.

I used familiar technologies such as Java, TypeScript, Quarkus, and React to program the project. This ensured code quality and project progress, rather than choosing technologies I had never explored.

I promoted it to several communities like the Viettech User Group (a group I founded), Vietnamese Wikipedia, English Wikipedia, and also introduced it to a member of Spanish Wikipedia.

Overall, Feverfew has the key functionalities of a link checker tool, such as fetching page content, extracting links, calling links, machine learning classification, and displaying results with a modern, clean UI.

The source code of Feverfew has also been publicly released on GitHub, along with user documentation and some notes on deployment.

Although the project has relatively achieved the initial goals, being my first time working on a software project on the Toolforge platform, I faced quite a few challenges in understanding how to deploy on Toolforge. Additionally, changing the project's architecture for Toolforge’s safety reasons caused delays in the release schedule. Nevertheless, I made every effort to ensure the project was not overdue.

2. Documentation of your impact. Please use space below to share links that help tell your story, impact, and evaluation. (required)

Share links to:

  • Project page on Meta-Wiki or any other Wikimedia project
  • Dashboards and tools that you used to track contributions
  • Some photos or videos from your event. Remember to share access.

You can also share links to:

  • Important social media posts
  • Surveys and their results
  • Infographics and sound files
  • Examples of content edited on Wikimedia projects

Keeping my promise in the discussion about this grant with Jacqueline Chen, I have created project introduction pages on both English Wikipedia (en:User:Plantaest/Feverfew) and Vietnamese Wikipedia (vi:Thành viên:Plantaest/Feverfew). On these introduction pages, I have written a complete guide on how to use it, noted some important issues such as software errors or security, and introduced the technical architecture of the project.

The Feverfew project is located at this address: https://feverfew.toolforge.org/.

To track the number of checks, users can access the following page: https://feverfew.toolforge.org/check. This page helps list the uses of Feverfew for articles on Wikipedia. As of now, there have been over 100 checks from members of 3 Wikipedia communities, including English, Vietnamese, and Spanish Wikipedia.

I have promoted this project to communities in several areas such as:

Images related to Feverfew are placed in a category on Commons: c:Category:Feverfew.

I did not promote this project on Wikimedia Community Discord as initially planned due to concerns that it might not fit the style of that group.

Additionally, share the materials and resources that you used in the implementation of your project. (required)

For example:

  • Training materials and guides
  • Presentations and slides
  • Work processes and plans
  • Any other materials your team has created or adapted and can be shared with others

I have recorded some important points in the progress of the implementation on this page: en:User:Plantaest/Feverfew/Progress.

I have noted some deployment issues on this page: en:User:Plantaest/Feverfew/Notes.

The project's source code is hosted on GitHub at this address: https://github.com/plantaest/feverfew.

The project has also been proposed for integration with Translatewiki through a task on Phabricator: phab:T368810 (Add Feverfew to translatewiki.net).

3. To what extent do you agree with the following statements regarding the work carried out with this Rapid Fund? You can choose “not applicable” if your work does not relate to these goals. Required. Select one option per question. (required)

Our efforts during the Fund period have helped to...
A. Bring in participants from underrepresented groups Not applicable to your fund
B. Create a more inclusive and connected culture in our community Not applicable to your fund
C. Develop content about underrepresented topics/groups Not applicable to your fund
D. Develop content from underrepresented perspectives Not applicable to your fund
E. Encourage the retention of editors Agree
F. Encourage the retention of organizers Agree
G. Increased participants' feelings of belonging and connection to the movement Neither agree nor disagree
F. Other (optional)

Part 2: Learning

edit

4. In your application, you outlined some learning questions. What did you learn from these learning questions when you implemented your project? How do you hope to use this learnings in the future? You can recall these learning questions below. (required)

You can recall these learning questions below: Through this project, I hope to learn the following:

  • Understand the process of creating a complete open-source application to address issues for the Wikipedia community.
  • Learn how to deploy applications on Toolforge.
  • Deepen my programming knowledge.
  • Learn how to receive feedback from users and make adjustments to ensure the product achieves the highest quality.

With the goal "Understand the process of creating a complete open-source application to address issues for the Wikipedia community", I believe I have achieved it. From the development process of this project, I have drawn up a simple process for implementing similar projects. First, I need to ask the community for feedback on the issues they are facing. Next, I need to survey the solutions, and if there are no good solutions, I think it's necessary to create one to solve the problem. At this point, I use my IT skills to build the solution, continuously testing and adjusting to ensure it meets the community's needs. Finally, I deploy and release it to the communities.

With the goal "Learn how to deploy applications on Toolforge", I believe I have achieved it within the scope of this project. Since this project uses two web servers, Caddy and Quarkus, the deployment method I learned may only be suitable for this project. For projects using languages other than Java, there may be some differences, although the general process remains quite similar.

With the goal "Deepen my programming knowledge", I think I have relatively achieved it. I have explored interesting aspects of the Java language during the project, such as learning more about its concurrent framework. Additionally, applying the machine learning model in Java through ONNX Runtime is another new point I learned from this project. These experiences are very interesting to me, as I am a big fan of the Java programming language.

With the goal "Learn how to receive feedback from users and make adjustments to ensure the product achieves the highest quality", I think I have only achieved it at a basic level. Since the feedback was mostly just thank you notes, there wasn't much to adjust overall.

With what I have learned from this project, I hope future projects will apply the experiences I have gone through. This will help future projects have a more complete, faster, and higher quality development process.

5. Did anything unexpected or surprising happen when implementing your activities? This can include both positive and negative situations. What did you learn from those experiences? (required)

I hardly encountered any surprises while implementing this project, as I had made relatively complete plans from the beginning. However, there was one architectural change that caused the release to be delayed compared to the initial schedule.

This change was related to a technical aspect, which was my concern that if Feverfew created too many requests to websites, those websites might block Toolforge's IP. Since Toolforge is a shared server, I was worried that if blocking occurred, it would affect the tools of others also deployed on it. Therefore, I separated a small part of the code to deploy on AWS Lambda, taking advantage of the large number of IP addresses of Amazon servers, which would help keep Toolforge's IP from being exposed. This extended the project's development time compared to the original plan.

This was a memorable experience for me, but it was not negative, as I learned a lot from it, and overall, I still ensured the project was completed on time.

6. What is your plan to share your project learnings and results with other community members? If you have already done it, describe how. (required)

I have written quite a lot about this project on Wikipedia, including creating an introduction page on English Wikipedia and Vietnamese Wikipedia as mentioned above. I created a page to record some tasks in the progress of implementation, as well as wrote some notes on deployment.

On the project's source code page on GitHub, I also wrote a README page, outlining some basic information about the project.

I have answered this issue in detail in question 2.

I hope that with these shares, members of the communities can understand how to use the tool and can contribute to the project's source code if possible.

Part 3: Metrics

edit

7. Wikimedia Metrics results. (required)

In your application, you set some Wikimedia targets in numbers (Wikimedia metrics). In this section, you will describe the achieved results and provide links to the tools used.

Target Results Comments and tools used
Number of participants 10 8 To gather this data, I counted the number of users who responded in the discussions I posted in the communities.
Number of editors 1 1
Number of organizers 1 1
Wikimedia project Target Result - Number of created pages Result - Number of improved pages
Wikipedia 1000 0 100
Wikimedia Commons
Wikidata
Wiktionary
Wikisource
Wikimedia Incubator
Translatewiki
MediaWiki
Wikiquote
Wikivoyage
Wikibooks
Wikiversity
Wikinews
Wikispecies
Wikifunctions or Abstract Wikipedia

8. Other Metrics results.

In your proposal, you could also set Other Metrics targets. Please describe the achieved results and provide links to the tools used if you set Other Metrics in your application.

Other Metrics name Metrics Description Target Result Tools and comments
Working hours The number of working hours on this grant, including surveying, requirements analysis, development, debugging, deployment, community discussions, writing documents, testing, etc. In total, it is 90 days multiplied by 5 hours per day. 450 450 This is an estimate I made myself. I did not use WakaTime as planned due to privacy concerns, as my computer hosts various projects for different clients.

9. Did you have any difficulties collecting data to measure your results? (required)

No

9.1. Please state what difficulties you had. How do you hope to overcome these challenges in the future? Do you have any recommendations for the Foundation to support you in addressing these challenges? (required)


Part 4: Financial reporting

edit

10. Please state the total amount spent in your local currency. (required)

103500000

11. Please state the total amount spent in US dollars. (required)

4204.17

12. Report the funds spent in the currency of your fund. (required)

Upload the financial report

12.2. If you have not already done so in your financial spending report, please provide information on changes in the budget in relation to your original proposal. (optional)


13. Do you have any unspent funds from the Fund?

No

13.1. Please list the amount and currency you did not use and explain why.

N/A

13.2. What are you planning to do with the underspent funds?

N/A

13.3. Please provide details of hope to spend these funds.

N/A

14.1. Are you in compliance with the terms outlined in the fund agreement?

Yes Your response to the review feedback. 14.2. Are you in compliance with all applicable laws and regulations as outlined in the grant agreement?

Yes

14.3. Are you in compliance with provisions of the United States Internal Revenue Code (“Code”), and with relevant tax laws and regulations restricting the use of the Funds as outlined in the grant agreement? In summary, this is to confirm that the funds were used in alignment with the WMF mission and for charitable/nonprofit/educational purposes.

Yes

15. If you have additional recommendations or reflections that don’t fit into the above sections, please write them here. (optional)

Although the interface of Fluxx in the 'Reports' section shows that I received $4450, in reality, I received exactly $4,204.17 according to the 'Payments' section. I believe this is an input error by WMF staff, so I entered the amount $4,204.17 in question 11.

In the 'Financial document', I noted that I used $4,241.45, although I actually received only $4,204.17. Both amounts are equivalent to 103,500,000 VND, but recent complications due to inflation have caused a significant discrepancy in exchange rates between the two periods.

Review notes

edit

Review notes from Program Officer:

N/A

Applicant's response to the review feedback.

N/A