-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This project aims for us to take on the involvement of a software maintainer/evolver. We were required for the software comprehension and evolution curriculum unit to select one open-source project (at Github, GitLab, or a similar platform) with the final goal of contributing to the fix of two issues. Afterward, we must answer the following questions:
- How alive is the project?
- How important is it?
- What is it good for?
- What are the technologies involved (programming languages, libraries, desktop vs. web-based, etc.)?
- Is the project in a development phase or maintenance/evolution phase?
- Are there many issues to fix?
Moreover, answer other questions that might be relevant to this project. Lastly, we should provide a brief insight into our assessment of the "maintainability" status (cost/effort to add/fix features/faults) of the project based on your experience while tackling the issues. For that, we can use a 6-scaled rating (A to F) or a Likert scale (1 to 5) to score the quality level of knowledge artifacts (documentation, source code, community support, and others), detailing and explaining why you gave it that rating and suggesting concrete improvements on each artifact. So for this project, we developed two issues and a bonus issue (due to the simplicity of the second issue). To explain the process, we have made this wiki page. We divided this wiki section into four sections. The first section is this home page, and the remaining three pages are regarding the issues - page one for the first issue, and so on. For ease of navigation, the following link tree helps the reader navigate through this wiki:
The following sections of this home page answer the questions:
- How alive is the project?
- What is it good for?
- What are the technologies involved?
- Is the project in a development phase or maintenance/evolution phase?
We have also added the following sections because we find them interesting:
- Design
- Community
- Submit the fix
- Contributors
The first section is regarding the design of the web-page. The second section regards the community of project maintainers and the third section proves that we have submitted the fix. The last section is a link tree for the main contributors to the project.
The project started in July of 2021. In the early stages of development, it has seen an early spike in activity. However, now it shows signs of a gradual fade out (as of the writing of this report). The project has 54 stars on GitHub and a community of 59 contributors. It also has 20 open issues and roughly 124 closed ones, with 95 forks. Despite not being a massive project, the authors of this report considered it an exciting project, and it is a way to help others in need using our skillset and field of study.
The main goal of this project is to provide ways for donors to help families in the Antelope Valley via an easy-to-use web application that allows them to make donations and contact some partners.
The project's technology stack consists of React, Next.js, Tailwind CSS, and daisyUI Tailwind CSS Components. However, we used Selenium.js with Jest for the test framework to perform end-to-end tests of the application on Chrome. We did not improve the project technology stack for the other two issues. For package managers, the project used NPM and Yarn. In conclusion, this project uses:
We assume that the project is still in the development stage - because the main contributors did not yet implement some modules, and there are still some open issues. Nevertheless, the number of commits is declining. So we assume that the project is in the development phase, but it is slowing down - a common issue with open-source projects; sometimes, they can freeze for a while.
This web application has fascinating architecture. The webpage does not follow a traditional web architecture - it does not have a back-end server or front-end server. There is an embedded business logic on the front-end files. So this is an embedded web page. It means that the back-end logic and the front-end logic are embedded on the same server. It is a server-side application. The same thing if we used a simple Java Spring application to load an HTML page. The only dynamic component on the entire website is the payment API. Despite that, this is only a web application that loads text content, informing the community about their endorsing charitable causes.
Regarding the first issue, we only did tests; we did not fix anything. So in order to improve the design of the web page, we had solved the second and third issues, and we paid particular attention to how we made the plan.
Such as how they deal with hierarchy such as:
- How near do the titles come to the text?
- What is their distance from the text above them?
- Which elements/titles/text bodies are linked and which are not?"
We also tried to match the design to the existing one as requested. We had crucial attention to alignment and whitespace to make it pixel-perfect and consistent throughout anything.
Summing everything up, we do not have a highly complex architecture - as we noticed initially. This project is a simple web application to display information regarding the charity causes of the Margarita Humanitarian Foundation and enable the community to support some causes of their choice. So we do not possess a typical web architecture. However, this simplicity is acceptable because over-engineering the technology stack of this application is a big problem. It can complicate the design of a system without any apparent need, and it can jeopardize the web page without any apparent need. Sometimes it is just needed to follow the KISS rule. It is crucial to mention that they do not have much documentation. Furthermore, there are operational issues regarding that. It would be interesting for future work to document everything regarding this web application to help future contributors and the current maintainers better understand their work.
The core contributors also have a Discord server with some community members. However, there are two disclaimers. The first disclaimer is that the community comprises people worldwide, so there is no standard timetable on which the community is online. The second disclaimer is that they are "getting started,", so it is expected not to exist as much activity on the server.
We have submitted several pull requests to the project's GitHub, which the reader can find them there:
At the time of the writing of this report, they have not been yet approved and merged - maybe due to the recent inactivity of the main contributors; however, we hope they will be soon because we think that they are excellent additions to the project.